Coursework: Java program Implementation and Design Report
Module title: Object Oriented Programming in Java and UML (COMP41620)
Name of the assignment setter: Dr. Sardar Jaf
Submission deadline: 14:00; 26/11/2018.
Method of submission: DUO.
Total weight: 55%.
Outline
The assignment for this module is to implement a train ticket system in Java. You are asked to build a
system to allow users to create various objects to contain information about different parts of the system.
The objects should interact with each other to achieve the correct functionality of the system. There are
several Java classes to be written for this assignment.The system should include the Java classes for Customer,
CustomerList, journey, Booking, BookingList, etc. Customer class should be used to create Customer objects.
The CustomerList class should hold a set of Customer objects. The Journey class should be used for creating
journey objects with specific information about journeys (see Tasks section for details). Users should be able
to create a booking via the Booking class. The booking object should have appropriate collection type to map
journey(s) to customer(s). The BookingList class should include several methods to retrieve information about
bookings. Users should be able to retrieve information about bookings, customers, journey details etc. from
the BookingList. See the Tasks section below for specific details about each class.
Tasks
Customer: Define a Java class to do the following: (4%)
1. A method to register a customer with the following details: (1%)
– firstname, surname, username (e.g., email address) and password.
2. Different methods to return a customer’s firstname, surname, username and password. (1%)
3. Different methods to change a customer’s firstname, surname, username and password. (1%)
4. The class should include error checking (e.g., email validation) and well documented by comments.
(1%)
CustomerList: Define a Java class to do the following: (6%)
1. A method to add customer objects that are created from the Customer class to a collection. (1%)
2. A method to remove a customer from the collection by giving the customer’s surname. This operation
must inform program users if there are two or more customers with the same surname (2%)
3. A method to count the number of customers in the system. (1%)
4. A method to return a customer’s detail by using the customer’s username. (1%)
5. The class should include error checking and well documented by comments. (1%)
Journey: Define a Java class to do the following: (4%)
1. This class should allow users to create a journey with the following details: (1%)
– Randomly generated journey ID by using appropriate Java methods
– The user should provide number of available seats, journey price, journey duration, journey date,
journey from and journey to.
2. Different methods to set the following journey details: (1%)
– Number of available seats, journey price, journey duration, journey date, journey from and
journey to.
3. Different methods to return the following journey details: (1%)
1
– number of available seats, journey price, journey duration, journey date, journey from and journey
to.
4. The class should include error checking and well documented by comments. (1%)
? Booking: Define a Java class to do the following: (5%)
1. A Method to create a booking object to contain journey and customer objects. (1%)
2. A method to record the current date a journey is booked (i.e., the date and time of the booking.
(1%)
3. This class should automatically update the number of available seats in the Journey class once a
journey is booked. (2%)
4. The class should include error checking and well documented by comments. (1%)
? BookingList: Define a Java class to do the following: (10%)
1. A method to utilise a Java collection to store several booking objects. (1%)
2. A method to search through the collection and return a journey by journey to, journey from, journey
date or price. (1%)
3. A method to remove a booking from the collection. (1%)
4. A method to count and return the total number of bookings a user currently has by utilising the
information stored in the collection. (1%)
5. A method to return a list of bookings that are placed by three or fewer people. (3%)
6. A method to return the firstname and surname of a customer for a booking specified by the booking
date. This method should make use of the appropriate methods in the Customer class. (2%)
7. The class should include error checking and well documented by comments. (1%)
Extras: Extend your program to include the following features: (16%)
– Allow details of customers and journeys to be saved to a file or MySQL database so that a customer
may edit and use the records over many sessions. (4%)
– Create a graphical user interface window for customers to use the program. Customers must be
authenticated before they can use the system. For this task, you can manually create a few customer
accounts (with firstname, surname and password etc.) and store their details in a file or database.
(3%)
– Allow customers to update the details of the following via a graphical user interface:
Booking: Modify a booking journey to and from. (3%)
Customers: Assuming you have created a few customers with authentication details for the
previous task. All authenticated customers to modify their firstname, surname, and password.
(3%)
– Java API usage: You should use Java Exception, Collection and other appropriate Java libraries for
your system. (3%)
Submission mode
Project Implementation: you will electronically submit your working implementation plus instructions for
running it. A full documentation of program, with relevant links to a javadoc description of the classes,
should be submitted in HTML format.(45%)
Project Report: you will electronically submit a commentary on your implementation, written in Microsoft
word. Relevant UML diagrams should be included. Any discussion of the performance of your code
should be included here. The report length should be approximately 1000 words. The report and the
implementation should be submitted by 14.00 on Friday 26th November 2018. (10%)
2
Bench Test: a short written test of basic Java skills and API material will be set at 11.00am on Monday
12th November. It will be a closed-book test which will last two hours. Short structured answers will be
required. (45%)
The Java files (source code and compiled files) with the documentation should be in a zip file. The report
should be in Microsoft word.
Assessment weightings
Assessing Implementation Report Bench Test Total
Java programming implementation 45% 45% 90%
Design Report 10% 10%
Total 45% 10% 45% 100%
版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。