In this project you are required to write a competition management system. The software must provide the following menu items:
1. Enter Competition Information
2. Add Competitor
3. Evaluate Competitor
4. Evaluate Competitors
5. Delete Competitor
6. Delete All Competitors
7. Display Winners
Each one of the above commands must perform the necessary steps to perform the required task. The description of each command is as follows:
1) Enter Competition Information: This command must ask the user to enter information about the Competition’s name, number of prizes, monetary value of each prize, and evaluation criteria (i.e., how many points for each criterion).
2) Add Competitor: This command asks the user to enter information about the competitor’s name, age, and the title of the project or work that is being submitted in the competition.
3) Evaluate Competitor: This command asks the user to evaluate a particular competitor. Each competitor has a unique ID. The evaluation should be according to the competition’s criteria.
4) Evaluate Competitors: This command is similar to command 3, except that every competitor is evaluated in sequence.
5) Delete Competitor: This command asks the user to enter the competitors ID and deletes the competitor from the list of competitors.
6) Delete All Competitors: This command deletes all competitors from the list.
7) Display Winners: This command displays the result of the competition. The competitors names and ID’s are listed starting from the person with the highest points.
8) Quit: This command simply displays a good bye message and ends the program.
You must make sure that your program does not crash at all. No matter what the user enters, your program should never crash. Your program must deal with errors that may come up during data entry or display. You will be graded based on how good is your program with respect to the following criteria:
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
1. Program compiles and all commands are well coded and work flawlessly
2. Output is well organized
3. Errors are well handled
4. Program is well documented, i.e., it contains good comments
5. No copying from other groups
Your program must print a menu from which the user is supposed to select a command to perform.
Extra credit: If your program saves everything to file(s) upon exit, you will get extra credit. Saving data upon exit must work properly. That means the competition name, competitors, etc must all be properly saved and if the program is run again, all these data should be read into the program automatically.