ISM 3232 – Travis – Fall 2019 – Individual Assignment #4
Determine the most appropriate C# controls to use to accomplish the requirements of the program
Declare all necessary constants and variables with appropriate data types and scopes
Follow appropriate standardized naming conventions for constants, variables, and controls
Write code to accept input from the user, perform calculations, and convey output to theuser
Utilize appropriate decision structures to branch code execution as required by the progarm
Format output so that it displays appropriately for the situation involved (e.g., as currency).
Create custom message boxes that communicate with the user and respond appropriately
Properly utilize looping structures in your program code where necessary
Write custom methods for appropriate use in your program code
Read data in from an external
To output data to an external
To make appropriate use of a menu system to provide program
To create and utilize a class that displays a form in addition to the original project
Redford Film School is a once-a-year, two-week gathering of actors, producers, directors, and other individuals involved in amateur and independent filmmaking. The school is designed around a series of classes that are available for the participants to register to attend. Registrations are either telephoned into the school office or emailed to the school’s email address. Currently, all registrations are written down on paper forms by school personnel. Robert Newman, the school director, wishes to convert this paper-based registration system into a software program that will run on the computer in the school office. The requirements for an initial version of this software are described below.
There is to be a picture box at the top of the registration form displaying a graphic file related to theater or film. Beside this picture is to be a bordered label displaying the school name in a font style and size other than the
Below this picture box and label should be a control that allows the user to enter in the date the registration was recorded. The current date (from the computer’s system clock) should be displayed in this control by
On the form below this date control should be two groups of controls in group boxes labeled Registrant Information and Registration
Registrant Information – The first name, last name, email address, and date of birth are to be entered for the individ- ual registering for the camp. Also recorded (for market research purposes) for each registrant is what is called the status of the registrant. This will be specified via a combo box containing the following options (listed in this order): Actor, Producer, Director, Animator, Cinematographer, Drama Teacher, Light Technician, and Sound Technician. The data is to come from an array declared in the form load event that has the data values shown above in an initialization list. (Code in the form load event is to add the values from the array to the combo box list.) Other values not specified here are to be allowed to be entered by the user if desired. When the program begins, the combo box should not display any value until the user selects one from the list or types one
Registration Information – The type of classes that the registrant wishes to select from is to be specified using two radio buttons, labeled Live Action and Animation. Live Action should be selected by default at program startup. Each of these two class types has its own list of available classes. Any registrant can select either class type, but a registrant can only select classes from one of these two categories (see class lists below). The price per class is
$79.95 for Live Action type classes and $99.95 for Animation type classes.
A list box is to be used to display the names of the available classes. The label for this list box should include a note that a maximum of four classes is allowed for a registration. (Hint: This limit is subject to change in the future, so a constant should be used to handle this value.) The user selection of the Live Action or Animation class type determines which class names display in the list box. (Changing the class type radio button selection changes the class names that are displayed in the list box.) The names of the Live Action type classes and Animation type
classes that are available are to be read in from text files instead of being “hard coded” in the program. (The text files are described in more detail on the last page. These text files can be edited by Mr. Newman with Notepad if a change in the classes offered is desired in the future.) No classes should initially be selected in the list box. The classes should be displayed in alphabetical order (even though the options are not listed in that order in the text file).
The registration information to display on the form also includes three calculated values: the number of classes selected, the price per class for the type of class selected, and the total price of the registration. These values should display correctly at program startup and automatically update as described below for the UpdateTotals method.
Below the above two group boxes, there should be two radio buttons used to specify the payment type for the registration: Cash or Check. (These are the only two accepted forms of payment.) Cash should be selected as the default at program startup. Below these radio buttons, there is to be a check box labeled Email Receipt Requested. The user is to check this box if the registrant would like a copy of their registration information emailed to them. The check box should be unchecked by default at program
There is to be a menu bar (class lectures and text book Appendix B) on this order form with two top-level menus: File and Help. The File menu should have three menu items: Save, Clear, and Exit. The Help menu should have one menu item: About. There should be Access Keys for all of these menus and menu items. Shortcut Keys should be included for each of the four menu items. For the four menu items, ToolTips should be included to provide brief descriptions of each item’s
The Save menu item, when selected, should perform two significant actions: displaying a summary of the registra- tion information in a message box, and writing the registration summary information to RegistrationData.txt, a text file to be created by the program in the default bin\Debug subfolder of the project
The message box should have appropriate text in its title bar and should include an Information icon. The message box should display the following data, properly labeled, with one data item per line: a header line (e.g., Registration Summary); registration date; registrant name (first name, and last name on one line); email address; date of birth; status; classes selected (with each class name on a separate line); number of classes selected; price per class; total registration price; payment type (Cash or Check); email receipt requested (Yes or No).
For this Assignment, you can create an abbreviated output text file (reduced programming) that will include Registration Date and Registrant Name for each transaction. A blank line should be added to the end of each registration’s information to separate the registrations in the file. (Note that it is necessary to append all data that is written to the text file to any existing data there.)
After the registration data has been written to the text file, the form should be cleared and returned to its original startup state (ready for recording the next registration).
H owever, when the Save menu item is clicked, if the registrant’s first name or last name or email address has been
left blank, or if the date of birth entry is incomplete, the program should display an error message explaining that this specific information is required, instead of displaying the registration summary. This error message box should have appropriate title bar text and an Error icon. Also, when the Save menu item is clicked, if no classes have been selected or if more than four classes have been selected, the program should display an error message explaining that one to four class selections are required, instead of displaying the registration summary. This error message box should have appropriate title bar text and an Error icon.
The Clear menu item, when selected, should clear the form and return it to its original startup state (without saving).
The Exit menu item, when selected, should close the program. However, before closing the program, the user should be prompted with a confirmation message box asking, “Are you sure you wish to exit the program?” This message box should have Yes and No buttons. It should also have appropriate text in its title bar and should include a Question icon. Only if the user selects Yes should the program
The About menu item, when selected, should display a form that is an instance of a class that you have created. Name this new class AboutForm. The form should contain a PictureBox control that displays a graphic image related to theater or film (different from the graphic displayed on the original form), a label containing the copyright date (2019) for this project and your name as the programmer, and a Close button that, when clicked, closes the form. Include an Access Key and a ToolTip for this button. This form must be closed before the registration form can again be interacted with by the
Rename the original form from Form1 to RegistrationForm. (Hint: See class slides and p. 625 in the textbook for instructions.)
Three custom methods must be included in your code. One, named PopulateList, should be used to load data from the external text files into the classes list box (as described above). This method should initially be called from the form load event, and then called each time a class type radio button (Live Action or Animation) is selected (to load
the appropriate class names into the list box). The second custom method, named UpdateTotals, is to handle the task of updating the three controls on the form that display the number of classes selected, the price per class for the type of class selected, and the total price of the registration. (The total price is simply the price per class multiplied by the number of classes selected. There is no sales tax.) These three values will need to be updated any time the user changes the type of class selected (Live Action or Animation) or changes the classes selected in the list box. The third custom method, named ResetForm, will perform the form clearing and resetting actions required by use of the Save and Clear menu items described above.
Appropriate use of the Try-Catch structure should be made to handle any potential input/output
The tab order should be set correctly so that focus flows logically through the controls on the registration
You are to give meaningful names to all controls used on the forms, and all constants and variables used in your code. Follow standard C# naming conventions, as described in your
Use appropriate labels for your controls to clearly identify them, and use appropriate text in the title bar of both forms in the
The alignment, spacing, and sizing of all screen controls should be neat and professional in
When the program runs, the forms should display in the center of the
Data that represents currency values should be displayed with the correct currency
Data representing numeric values, including currency values, should be displayed right-aligned in controls, while text values (such as names) should be displayed left-aligned in
Use comments very liberally throughout your code, for each event handler and custom method, and each significant block
Include an initial four-line comment in your code for both form classes, before all other code, using the same format specified in the instructions for the previous assignments.
DescriptionIn this final assignment, the students will demonstrate their ability to apply two majorconstructs of the C programming language – Fu
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of