ITECH1000 Programming 1 1617
Assignment 2
Overview
This is an individual assignment that requires you to design, develop and test a small Java program using object-oriented approaches.
Timelines and Expectations
Percentage Value of Task: 20%
Due: 16:00 Friday the 30th of September (week 11) Minimum time expectation: 20 hours
Learning Outcomes Assessed
The following course learning outcomes are assessed by completing this assessment:
• Identify and use the correct syntax of a common programming language
• Recall and use typical programming constructs to design and implement simple software solutions
• Reproduce and adapt commonly used basic algorithms
• Utilise pseudocode and/or algorithms as a major program design technique
• Write and implement a solution algorithm using basic programming constructs
• Demonstrate debugging and testing skills whilst writing code
• Develop self-reliance and judgement in adapting algorithms to diverse contexts
• Design and write program solutions to identified problems using accepted design constructs
ITECH1000 Programming 1 1617
Assessment Details
The Federation University Australia Olympic Games are about to commence! Your ticketing system has been developed and now it’s time to consider how the results of the competition will be recorded and reported.
Your task is to design, develop and test a small application for managing the results of this event.
Stage 1: Design
This stage requires you to prepare documentation that describes the function of the program and how it is to be tested. There is no coding or code testing involved in this stage. A document template has been provided for your use.
Requirements:
1) Read through Stage 2: Program Development to obtain details of the requirements of this program.
2) Write an algorithm that describes how the program will operate.
a. All program requirements must be included, even if you do not end up including all these requirements in your program code.
b. The algorithm must be structured logically so that the program would function correctly.
3) Prepare and document test cases that can be used to check that the program works correctly, once it has been coded. You do NOT need to actually run the test cases in this stage; this will occur in Stage 3: Testing.
a. All program requirements must be included, even if you do not end up including all these requirements in your program code.
b. Make sure the test cases include checking of data entered by the user to make sure that only valid data is accepted. If the user enters invalid data, the user should be informed of this and given another chance to enter the data. NB: As we have not covered exception handling, you may assume that the user will always enter the expected data type.
c. Test cases should be documented using a template like the one below. You may include extra information if you wish. At this stage, the Actual Result column will be left blank.
Test Case Expected Result Actual Result
The user opts to check for event records A report is displayed that, for each event, either states that there is no new record, or provides the name and result of the competitor who obtained the new record.
Stage 2: Program Development
Using the Design Documentation to assist you, develop a Java program that uses object-oriented coding approaches to record and report upon the results of events in the Federation University Olympic Games, implementing the requirements outlined in this section.
You must follow coding conventions, such as proper layout of code, using naming conventions and writing meaningful comments throughout your program.
Overview of the Program:
This section provides an overview of how the program works from the user’s perspective. You may change the appearance of the program provided you implement the same functionality.
1. When the program starts, it provides a short welcome message, and then automatically initialises the program. This initialisation includes creating the events, creating the participants and registering the participants in events. When initialisation is complete, a menu appears providing the user with options to enter results, view reports, view program credits or exit the program.
2. When the user selects the Enter results option, a second menu appears from which the user can individually select any of the events, or return to the previous menu.
a. Upon selecting any of the events, the user is prompted to enter the results for each user registered in that event.
b. When all results have been entered for the event, a message “Results entry complete” appears and the Enter Results menu is shown again so users may either select another event to score or return to the previous menu.
3. When the user chooses the View reports option, display a menu showing all the available reports option. This includes a report of the results for each individual event as well as a report that displays if any Olympic records have been set for any of the events. An additional option is provided to allow the user to return to the main menu.
a. The report showing the results for each of the events lists the result for each competitor, providing first the result, then the competitor’s name. After this list, the event medallists are shown. For some events, this requires finding the highest three scores; for other events, the lowest three scores are required. The View Reports menu is then redisplayed.
b. The report showing the Olympic records (if any) checks each of the events to see if there is a new record. If there is a new record, a message advises that there is a new record for that event, which competitor obtained it, and the new record result. If there is no record, then a message advises that no records have been set. The View Reports menu is then redisplayed.
4. When the user selects the option to View Program Credits, a message is displayed providing authorship information for this program. The main menu is then redisplayed.
5. When the user selects the option to exit the program, a message thanks the user for using the system, and the program terminates.
Technical Information:
This section provides technical implementation details required by the programmer to create the program.
Development of this program requires four classes: Event, Participant, University and Result as well as a Driver class to control the flow of the program.
Driver Class: Name this file using ID Your Student ID . This will contain a main() method to manage the flow of the program, and other methods as necessary to ensure the code is modularized and functions correctly.
Event Class: This represents an Event in the university games. Use the class diagram below as the basis for designing your class.
Participant Class: This represents a Participant in the university games. Use the class diagram below as the basis for designing your class.
University Class: This represents a University in the university games. Use the class diagram below as the basis for designing your class.
Result Class: This represents a single Participant competing in an event and the result they obtain for that event.
Initialising the Program:
Initialising the program requires the following steps:
1. Create a new Event for each of the four events. These are:
a. 100m hurdles
b. 400m freestyle
c. 10m diving
d. discus
The following attributes must be set when each event is created:
Event Name Maximum number of competitors Maximum number of competitors from one university Current Games Record Highest Score Wins?
100m hurdles 8 2 12.20 No
400m freestyle 8 2 3.56 No
10m diving 4 1 112.10 Yes
discus 4 1 69.89 Yes
2. Create a new University for each of the participating universities. These are:
a. Federation University Australia
b. Deakin University
c. Latrobe University
d. Monash University
Each university has a name only that must be set when the university is created.
3. Create new Participants to compete in the events. Each participant has an attribute that stores their university. You may choose the names for your own participants but one participant MUST have your own name and you may not use the name of any other student enrolled in ITECH1000.
a. Make sure you have enough participants to compete in each event. Each competitor may only compete once in any event, but may participate in multiple events.
4. Register the Participants to compete in the events. Registration occurs by creating new Results, which comprise a Participant and a result (score), and storing these Results in the results array. Each event should be full when registration is complete.
a. You will need to make sure that each participant is only registered once in any event.
b. There is a limit on the number of participants from a single university in each event. Make sure that this limit is not exceeded.
c. When all places in the event have been filled, no further registrations may be accepted.
The user should be advised with a message if any of these issues occur. Your event initialisation code must include attempted registrations that result in each of these issues. 5. Advise the user that initialisation is complete,
Running the Program:
1. Entering Results
a. Results for each event should be stored in the results array.
b. The user is to be prompted to enter the result for each competitor. This result is to be read as a double and stored in the results array by updating the Result instance for that participant.
c. You may assume that the user’s results entry is the correct data type (that is, a double). You do not need to check to make sure that the user does not enter nonnumerical characters.
d. If the user tries to enter results for an event that has already had results entered, the new results will overwrite the old results.
2. Viewing Reports
a. Results reports require reading information from the results array and presenting this information together in a readable format.
i. Displaying the medallist reports requires using a linear search to find the three best results. For some events, this is the three lowest results; for others it will be the three highest. Your code must cater for both situations.
ii. If results have not yet been entered for an event, the medallist report should not be displayed, Instead, a message should appear advising that the results are pending.
iii. If two or more competitors obtain the same result, then medallist placings will be granted based on the order competitors’ results were entered.
b. The report of all records requires using a linear search on the results array in each event to compare the best result with the current record. If the best result is better than the current record, the competitor with this result needs to be retrieved from the competitors array, and a message generated to advise there is a new record.
i. For events where competitors are aiming for the lowest possible score, you will need to ensure that records are not mistakenly reported for events that have not had any results entered. You may either assume that a best score of 0 for the event means that no results have been entered, or add a boolean attribute to the Event to record whether the results have been entered.
ii. The record will only be checked against the best scoring competitor for an event, even if the record is also broken by other competitors. If two or more competitors achieve the same score, then only the first of these competitors to have had results entered will be reported as the record breaker.
3. Viewing Program Credits
a. No special processing is required for this section. A simple display of the credit information is all that is needed.
4. Exit Program
a. The program should exit by reaching the end of the main() method. System.exit(int) should not be used.
Stage 3: Testing
Using a copy of the test cases developed in Stage 1: Design, test the program you have developed in Stage 2: Program Development. Document your results, including both failed and successful tests.
Note: Please do not leave out any failed tests. If your testing highlights that your program has not worked correctly, then the failed tests help to demonstrate that you have been testing your program properly.
To show that you have tested your program, include small (but readable) screen captures in your Actual Results as well as any explanatory comments. Microsoft Windows includes a Snipping Tool that is useful for taking captures of the relevant parts of the screen.
Submission
Your program code, design and testing documentation should be zipped into a single file and loaded into the Assignment Box provided in Moodle by the due date and time.
Marking Criteria/Rubric
Task Available Marks Student Mark
Stage 1: Design Documentation
Development of an algorithm describing how the program should function 1
• All requirements from the Assessment Details section included
• Logical structure
Documented test cases to validate program 1
• All requirements from the Assessment Details section included
• Data is validated to ensure user entries are appropriate and incorrect user entries are handled smoothly
Stage 2: Program Development
A Java program addressing the requirements outlined in the Assignment Details section, including appropriate use of classes, instances, loops, conditional statements, constants and variables:
Use of coding conventions throughout entire program, including readable and clear layout, following naming conventions and including meaningful and appropriate comments.
Initialisation of the program:
3
• Creation of Events, Universities and Participants
• Registration of Participants in Events, ensuring each participant is only registered once in an event, and each university is limited to the set number of participants. 3
Running Program
• Appropriate menus display until user chooses to exit or return to previous menu 1
• Entering of results for events 2
1
• Reports correctly display the results for each event
• Medallist positions are accurately displayed 2
• New records achieved are correctly reported 1
1
• Program Credits included
Coding Standards
• Code modularized, correctly using method calls and passing data between methods 1
1
• Object-oriented approaches have been implemented appropriately
Stage 3: Testing
2
Documented test results clearly showing all the testing that has been conducted and the results of this testing.
Total 20
Feedback
Assignments will be marked within 2 weeks of submission. Marks will be loaded in fdlGrades, and a completed marking sheet will be available via Moodle.
Plagiarism:
Plagiarism is the presentation of the expressed thought or work of another person as though it is one's own without properly acknowledging that person. You must not allow other students to copy your work and must take care to safeguard against this happening. More information about the plagiarism policy and procedure for the university can be found at http://federation.edu.au/students/learning-andstudy/online-help-with/plagiarism.
GET ANSWERS / LIVE CHAT