Department of Computer
Science
CMSC132:
Spring 2012
Project: Online Test System (Design)
Due Date: Friday Apr 20, 6:00pm
Assignment Type: Closed (See
Policy)
For this project you will implement the data manager of an online test system. The system allows for the definition of exams with three possible kinds of questions: true and false, multiple choice and fill-in-the-blanks questions. The system will grade submitted exams and generate some statistical information.
Any clarifications or corrections associated with this project will be available at Clarifications
The project's code distribution is available by checking out the project named OnlineTest. The code distribution provides you with the following:
For this project you will implement the data manager (model component of the MVC paradigm) for an online test system. The system allows for the definition of exams with three possible kinds of questions: true and false, multiple choice and fill-in-the-blanks questions. The system will grade submitted exams and generate some statistical information.
The functionality of the system you will implement is represented by the interface Manager. The interface represents the methods available to anyone trying to make use of the system. The javadoc documentation for the project can be found at javadoc. Your task for the design part of the project is to come up with a set of classes and interfaces that together provide the functionality defined by the Manager interface.
Access to the data manager functionality will be possible through a class named SystemManager that you must define. This class implements the Manager interface. Feel free to add any instance variables and private methods to this class. Public tests create an instance of the SystemManager class in order to test your system.
Your design should make use of object-oriented design concepts (e.g., generalization, specification, etc.) discussed in class. Keep in mind that having a large number of classes does not guarantee a better design grade. If you only implement the SystemManager class you will lose all the points associated with the design component of this project (even if the class provides all the expected functionality). We encourage you to discuss your design with your instructor or TA to make sure your design is a valid one.
Students in the honors section may need to complete this part. Talk to your instructor to verify if this is the case.
In addition to the above requirements, you must define a method called loadExamAnswers as part of your SystemManager class (notice you don't modify the Manager interface.) This method will load the students' answers provided for a particular exam. It is up to you to define the data file format (although it must be text file.) The method has one parameter that specifies the file with the students' answers.