User Tools

Site Tools


start

This is an old revision of the document!


Multiple Choices Algorithm - by Mark Kelly

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.

<can't insert image!>

:-(


start.1305026686.txt.gz · Last modified: 2011/05/10 11:24 by kel