This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
start [2008/01/10 12:55] test |
start [2011/05/10 11:23] kel |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Welcome to the Edulists Wiki. | + | Multiple Choices Algorithm - by Mark Kelly |
- | A number of important links have been setup - wiki:vce_itapps_exam_2007 for instance | + | |
+ | Another in the Fun with Algorithms series | ||
+ | |||
+ | Stuff Pty Ltd sells stuff. The unit cost of the stuff varies according to the quantity ordered. Customers can order any number of items. Stuff Pty Ltd use this scale: | ||
+ | 1-9 items = $100 each | ||
+ | 10-19 items = $97 each | ||
+ | 20-29 items = $92 each | ||
+ | 30-39 items = $88 each | ||
+ | 40-49 items = $85 each | ||
+ | 50 or more = $82 each | ||
+ | |||
+ | Task: using pseudocode, create an algorithm to calculate the unit cost of the items at different quantities. Then calculate a total cost with 10% GST added. | ||
+ | Convert the pseudocode into code. | ||
+ | Create test data to fully test all aspects of the solution’s functionality. | ||
+ | Note: Input data need not be validated, and the interface can be very basic. | ||
+ | |||
+ | Sample VB2010 solution | ||
+ | Public Class Form1 | ||
+ | ' Multiple options algorithm | ||
+ | ' by M.Kelly 10 May 2011 | ||
+ | ' Version 1.0 | ||
+ | ' To Do Next: nil | ||
+ | |||
+ | Private Sub btnCalc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalc.Click | ||
+ | Dim Qty As Integer = CInt(txtQty.Text) | ||
+ | Dim inctax As Single = 0 'declare and initialise in one hit | ||
+ | ' deliberately lacks validation of qty | ||
+ | Select Case Qty | ||
+ | Case 1 To 9 | ||
+ | lblCostper.Text = 100 | ||
+ | Case 10 To 19 | ||
+ | lblCostper.Text = 97 | ||
+ | Case 20 To 29 | ||
+ | lblCostper.Text = 92 | ||
+ | Case 30 To 39 | ||
+ | lblCostper.Text = 88 | ||
+ | Case 40 To 49 | ||
+ | lblCostper.Text = 85 | ||
+ | Case Else | ||
+ | lblCostper.Text = 82 | ||
+ | End Select | ||
+ | |||
+ | lblSubtotal.Text = Qty * CInt(lblCostper.Text) 'using labels for output | ||
+ | |||
+ | 'inctax is here as a sample use of variables for calculations and | ||
+ | 'using labels just for display purposes. | ||
+ | 'Using variables mean less converting back & forth between text and number. | ||
+ | |||
+ | inctax = CInt(lblSubtotal.Text) * 1.1 'add GST | ||
+ | 'The final total is nicely formatted currency just to show how it's done. | ||
+ | 'Nice formatting is not needed in U3O2. | ||
+ | lblIncTax.Text = Format(inctax, "$#,####.#0") | ||
+ | End Sub | ||
+ | |||
+ | |||
+ | Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click | ||
+ | End | ||
+ | End Sub | ||
+ | |||
+ | End Class | ||
+ | |||
+ | |||
+ | |||
+ | Sample output | ||
+ | Perhaps more decorative that it needs to be for U3O2, but I can’t abide messy interfaces. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | --------------------------------------------------------------------------------------------- |