IST 140 Intro to Visual Programming
Project 6-1 – Stormazon
Stormazon is a local storefront business/website that allows users to order their merchandise via kiosks throughout the nation. Customers can either have items shipped to them directly or they can pick-up their orders from a local retail outlet. As the lead programmer, it is your job to design the kiosk user interface. The business owner has a few requirements but has given you executive power in overall program design.
Project Objectives:
• Use of multiple forms • Use of void methods • Use of value-returning methods • Use of ListBox • Use of Radio Buttons and Check Boxes |
• Use of MenuStrip and context menus for navigation • Use of Access Specifiers • Use of arithmetic operators • Use of Currency Format • Use of ToolTips |
Example Category/Product/Price
Movies |
Video Games |
Music |
Back to the Future 29.99 Can’t Buy Me Love 24.99 Raiders of the Lost Ark 22.99 The Breakfast Club 20.99 |
Atari 2600 19.99 NES 14.99 SNES 12.99 Sega Genesis 10.99 |
Guns N Roses 9.99 Bon Jovi 4.99 Poison 2.99 Motley Crue .99 |
Requirements
• Comment your code!!! • Each category will have its own form to select products which are added to a ListBox (cart) on the startup form • Use a minimum of 5 forms (startup and 3 categories) • Forms must be appropriately named • The About form is Modeless, all other forms are Modal |
• Include a Context Menu listing at least 3 options • Use a methods to modulize code • Use any categories and items you want but stay with the price schedule used in the example • Use appropriate C# naming conventions for forms, labels, variables, etc. |
Specifications
- Startup Form (Figure 1)
- ListBox to hold every item the user selects from the category forms
- Remove button to remove a selected item from the listbox and update labels
- Labels
- Subtotal
- Tax
- Shipping
- Total
- Number of items in Cart
- Shipping Checkbox – if selected, shipping charges are applied to the total (shipping
IS NOT taxed)
- 1-3 items add $9
- 4-6 items add $6
- 7+ items is FREE SHIPPING
- MenuStrip (instead of buttons) to perform program operations – it should be responsive to keyboard shortcuts
- File
- Clear All Items
- Remove Item
- Exit
- Products
- Movies
- Video Games
- Music 3. Help
- About
- File
- Category Forms (Minimum 3)
- You choose the design, you choose the categories, and you choose the products
- Each Category form will have no less than three items to choose from. For example, a music category could have the CD’s Bon Jovi, GNR and Owl Poison. A Video Games category could have the NES, SNES and Atari systems, etc.
- When a user selects an item(s), the selected item(s) are added to the ListBox on the startup form and all labels (SubTotal, Tax, etc.) are robustly updated.
- You can decide how an item is selected, but you have to use a different selection method for each form (like image click, checkbox, radio button, listbox, etc.)
- About Form
- Needs an image of you
- Short blurb about yourself…one line is fine. Can be your major, hobby, favorite basket weaver…whatever
- Tax rate is .07
This project is about five concepts coming together: using multiple forms, sharing information between forms, using methods to simplify and modulize a program, using a listbox, and using menus instead of buttons. With that in mind, a good place to begin is with the startup form…
Startup Form
- Start with creating the menu structure in place of buttons
- All methods are contained in this form
- This for is the hub of the project
- Fields in this form are private and accessed through methods
Category Forms
- Minimum of 3 required
- Must add items to the StartUpform in different ways (radio buttons, item click, etc)
- Little code – they all call the same methods to add items and update labels
Fields you can use for this project double dblTax
const double DBL_TAXRATE = .07 double dblTotal int intItemCount
Methods you can use for this project
- Void method to add an item to the form o 1 parameter – item name
- Called by any category form to add a single item to the main form listbox o Will get the item price o Will add the item to the listbox o Will update labels
- Void method to calculate\update the subtotal, tax, total and item count variables o 1 parameter – the item cost o Update the item count o Update the subtotal o Update tax o Update total
- Void method to update the form labels o No-arg method o Update all the form labels
- Value returning method to get price of item o 1 parameter – item name
- Returns item price
- Void method to remove an item from the listbox o No-arg method o Get the selected item
- Remove the item
- Void method to handle shipping o No-arg method
- Check the status to the shipping checkbox o Figure out the shipping cost based on item count oUpdate shipping and total label