Due Date: Wednesday 29 May 2019, at 10.00 am
Delays caused by computer downtime cannot be accepted as a valid reason for a late
submission without penalty. Students must plan their work to allow for both scheduled
and unscheduled downtime. Penalties are applied to late assignments (accepted up to 5
days after the due date only). See the university policy for details.
Individual Assignment: This is an individual assignment. You are not permitted to
work as a group when writing this assignment.
Copying, Plagiarism: Plagiarism is the submission of somebody else’s work in a manner
that gives the impression that the work is your own. The Department of Computer
Science and Information Technology treats academic misconduct seriously. When it is
detected, penalties are strictly imposed. Refer to the unit guide for further information
and strategies you can use to avoid a charge of academic misconduct. All submissions will
be electronically checked for plagiarism.
Objectives: The general aims of this assignment are:
• To analyze a problem in an object-oriented manner, and then design and implement
an object-oriented solution that conforms to given specifications
• To practise using inheritance in Java
• To practise file input and output in Java
• To make implementations more robust through mechanisms such as exception handling.
Submission Details: Instructions on how to submit electronic copies of your source code
files from your latcs8 account and a marking scheme overview are given at the end. If
you have not been able to complete a program that compiles and executes containing all
functionality, then you should submit a program that compiles and executes with as much
functionality as you have completed. (You may comment out code that does not compile.)
Deployment Platform: While you are free to develop the code for this assignment on
any operating system, your solution must run on the latcs8 system. We should be able to
compile your classes with the simple command javac *.java, and execute your programs
with a simple command, e.g. java QuizMenu.
For students at Sydney and Dandenong campuses: Please follow your lecturer’s
instructions regarding assignment submission and deployment platform.
As described in the handout for Part 1, the overall aim of the assignment is to develop a
menu-driven program to administer a quiz test.
In Part 1, you have implemented the classes to represent the quiz questions and answers.
You have also written programs to test these classes. In particular, you have written a
program to read a number of questions from a text file, administer the questions, obtain
the answers, and print out the answers.
Building on the work that you have done for Part 1, in this Part 2, you are required to do
the tasks described below.
Besides the information given in the tasks below, please refer to Part 1 of the Assignment
for any other information you may need.
Modify the classes QuizQuestion and QuizAnswer and their subclasses to use ArrayList
instead of array whenever you need to maintain a collection.
Test your classes with the provided BasicTester program.
(For Tasks 2, 3 and 4, you must also use ArrayList whenever you need to maintain
This task does not required you to do any exception handling. (That will done in Tasks
3 and 4).
Write a menu program called QuizMenu. The program displays the menu with the options
R: Read question details from a text file
A: Administer the quiz test
F: Administer the quiz test with option to quit
D: Display the answers on the screen
W: Write the answers to a text file
Please select an option:
Other than the minimum required for the program to compile, no exception handling is
required for this task.