CSc 050
Assignment 9 - Visual Basic Part IV
Due Mon, Nov. 14, 2005 (no lates)

Goals

In this last assignment, you will rewrite some of your code to work more concisely by using loops and control arrays. Before you start this assignment, make a copy of your fully-functional project just in case you need to restore to a working version of code.

Part 1: Add data to the tag property (2 pts.)
For each control element that deals with an item the user can purchase, use the tag property to hold the price of that item. For example, if you used checkboxes for each item, add the price of that item to the tag property of the checkbox. Do this for each checkbox. You'll use this in the next part.

Part 2: Make the Make Purchases button work with a loop (10 pts.)
Change the code in the Make Purchases button so that it works using a loop. This loop should allow you to abandon the long list of almost-identical IF statements you used in last week's assignment, and instead get the same job done with a much shorter amount of code. To do this, you may have to rename a set of control elements so that they become a control array. Then you will be able to use a loop to check the status of each element in the array. Extra credit alert: You will get 2 extra points if you can also use a loop to display an itemized list of what the user bought.

Part 3: Do some error checking (6 pts.)
Finally, add the following functionality to your code. First, if a user presses the Play button without first selecting an artist, a dialogue box should appear that says "You must pick an artist first!" Second, if a user has selected an artist but presses Play before choosing a music clip, a dialogue box should appear that says "You must select a sound clip!" (Hint: until a user selects an item from a ListBox, its ListIndex property will hold -1.) Third, if the user did not purchase any items, instead of the Make Purchases button simply showing a total of $0, a dialogue box should appear that says "You haven't bought anything!"

These kinds of checks are called error checking routines since they are used to provide appropriate feedback should a user accidentally (or deliberately) do something unexpected.

Finally, if you couldn't get everything to work from last week's assignment, be sure to get everything working before turning this assignment in. As always, you will lose points again for any problems that remain unfixed.

What to turn in

Turn in an electronic copy of your VB project on Blackboard and a copy of your code on paper. No lates will be accepted for this assignment.

Administrative statement

Homeworks are individual projects. I encourage you to talk to others about the general nature of the homework and ideas about how to pursue it. However, the technical work, the writing, and the inspiration behind these must be substantially your own. If any person besides you contributes in any way to the project, you must credit their work on your homework. Similarly, if you include information that you have gleaned from other published sources, you must cite them as references. Looking at, and/or copying, other people's homework or written work is inappropriate and will be considered cheating.
Back to Homework Index