This homework assignment will utilize Windows Forms. Fantastic Sue’s is a hair salon that provides haircuts along with other hair services. Sue has hired you to create a walk-in registration application to track appointment information. The business wants to know which services are most profitable and also which ones are not being requested. Your task is to create a form that allows customers to select all services they wish to purchase for their appointment/visit and see there bill and pay. In the background you will create an Appointment class that will track the requested services for each individual appointment. Services offered and pricing are as follows:
- Adults $13
- Children (under 10) & Senior (over 65) $11
- Style $45
- Perm $72
- Bang, Neck, or Beard Trim $6.50
- Shampoo $4
- Open the Visual Studio application. From the menu bar select: “File/New/Project”.
- The “New Project” window should now be displayed. From the Project Types expand the Visual C# project type and select Windows. From the Templates selections, select: Windows Forms Application.
- In the “Name” field enter: FantasticSues. Set the “Location” directory (default will be C:\Users\YourUserName\Documents\Visual Studio Year\Projects). Leave the Solution Name setting as shown below. It should default to the same name as the name of the project. Recheck your entries and click the OK button to create the project.
- Using the form designer, build a single windows form that will allow the user to select the services from the table at the top of this document along with the customer’s name, phone number, and bill. Below are some requirements in regards to the services:
- Customer’s name – must accept the customer’s name
- Phone # - accept customer’s phone number. Must validate a correct phone number was entered. Phone numbers contain 3 digit area code, 3 digit prefix, and 4 digit postfix.
- Haircut selection – must be either Adult or Child/Senior, but cannot be both. Use RadioButtons for this selection
- All other services can be purchase in combination with a haircut or by themselves. Use CheckBoxes for these selections
- Total Bill – subtotal of all services selected. Bill must update instantly when a service is selected or unselected (e.g. if only Shampoo is checked, then the bill will show $4.00. If it is unchecked then Bill will immediately update to $0.00 assuming no other services are selected). Dollar amounts must be formatted using $ and 2 decimal point values.
- Your program must have an Event finalizing the appointment and payment. Assume this event triggers the collection of money either from a Salon employee or an external credit card system. When this event occurs your program must save an Appointment object containing all data entered for the appointment (see bullet list in step 4). Must update form display per requirements stated below in step 8.
- Create an Appointment class per the below preliminary/incomplete UML Class. You must have the below elements in your program. Since all data is private you must add properties and methods to populate an appointment object (must use at least 1 of each method/property).
- The application must save a minimum of 5 appointments to demonstrate the ability to track multiple appointments. Create an array or list object to store appointment objects within your Form.
- Display on the form the name of each customer that has added an appointment. Must also display the total number of appointments that have been entered.
- Ensure your application handles all events listed in the above requirements and follows all coding standards. Must follow data protection rules by making all variables private. Only properties or methods can be public.
Submit a .zip file of the entire project folder using the submission link in Assignments on the course website. Using the file explorer go to where you saved your project and Right-Click on the project folder and select ‘Send To’ then ‘Compressed (zipped) folder’. See the “submitting zip file assignments” on Blackboard under Course Videos for a tutorial. Rubric below:
Don’t forget about the MessageBox class. Try the following code in any of your event handler methods (like a button click):
MessageBox.Show("Error!!! Then tell the user what the error is here");