Reference no: EM132387136
Programming Fundamentals - RMIT University
Assignment 2A: Timetabling and Enrolment System
Objective
The main objective of this assignment is to familiarize you with object oriented design, programming, testing and refactoring. This assignment is better suited to those who have some previous programming experience and are interested in the OO design aspects.
Requirements
You are required to write a menu driven program that will use the existing courses, staffs and venues described in section two. In the first phase, the menu driven program caters mainly to staff and admin needs by allowing course offerings, lessons (lectures or tutorials) to be added as well as assigning a specific staff to a lesson. It should also allow printing venue, course offering and staff timetables. In the second phase, student specific menu options should be provided such as enrolling, withdrawing from course offerings and registering, deregistering from tutorials and printing student timetables.
Assignment 2B: Vehicle Management System
Overview
This is a more prescriptive and incremental assignment suitable for those preferring clear guidance (instead of being open ended designs). You are required to complete Part A before proceeding to Part B, and similarly Part B before Part C.
Part A: Develop a simple Vehicle class with three states ‘A' (available), ‘S' (servicing) and 'H' (hired) and methods. Your class must implement the required interface and test it with the data provided. In the second part the Vehicle class must be used for developing a simple application. (assignment to be demonstrated in week 8 to your lab assistant)
Part B: Extend to PremiumVehicle implementing the overridden methods (which introduce additional conditions for state transitions). You are also required to develop a menu-driven application where both Vehicle and PremiumVehicle objects are stored in a common array, which must be manipulated in a polymorphic way when appropriate.
In part C you are required to extend the menu-driven application developed in section B incorporating file and exception handling. The customer details must also be included allowing specific discounts. All Vehicle and subclass objects must be written to a file when program exits and restored back when program commences. The methods should be made to throw appropriate exceptions when operation cannot be performed
Part C: (Covers All chapters)
Vehicle Hire System
Overview
You are required to extend the program written in assignments 3 and 4, to manage all the common operations, taking into consideration discounts applicable to different types of customers. Customers are classified into two main categories, individual customers and corporate customers with discounts computed differently. Hence you are required to write an abstract class named Customer with subclasses ICustomer and CCustomer.
You are also required to enhance the Vehicle and PremiumVehicle class developed in the assignments 3 and 4. Exceptions must be thrown when an attempt is made to hire or complete a hire incorrectly (You can use the standard exception class or create your own exception class). The final part requires you to write a class named ManageHiring that uses Customer (and its subclasses), and Vehicle (and it subclass) objects to facilitate the common operations. It also requires you to read and write Vehicle and Customer objects to text files, to allow persistence. (You are free to use array or any generic classes for storing the elements)
Attachment:- Programming Fundamentals.rar