You are on page 1of 3

Assignment

Bus Ticket Management in


Hanoi City
Submission Deadline: 15 July 2023

LEARNING OUTCOME
This assignment gives you a real interesting problem to solve it by Java
programming using CLO1 – CLO9 based on the PRO192 syllabus. This aims
to help you to practice all Object-Oriented Programming skills which you will
have learnt over coming weeks. You can do it subsequently week by week
while you are studying due to their requirements are well ordered according
to your weekly learning.

PROBLEM SPECIFICATIONS
As your assignment this summer semester, your group of students is
required to develop a full program to meet the following specifications:
1. Design and implement classes of employees (normal employee, fare
controller, driver, route manager, director…). Each employee object
has its own respective properties and methods, such as: emp_ID,
name, day salary, work days, position…
2. Design and implement classes of sold tickets (normal ticket, student
ticket, senior citizen ticket, monthly ticket, daily ticket…). Each ticket
object has its own respective properties and methods, such as:
ticket_ID, type, route, price, one_way/ both_way,…
3. Assuming that the promotion rates of employee salary are as below:
o Rate of salary of fare controller is 10% higher than normal
employee.
o Rate of salary of driver is 50% higher than normal employee.
o Rate of salary of route manager is 100% higher than normal
employee.
o Rate of salary of director is 100% higher than route manager.
4. Assuming that the discount rate of bus ticket as below:
o Discount 30% for student ticket compare with normal ticket
o Discount 50% for senior citizen ticket compare with normal
ticket
o The price of monthly ticket is discounted 50% compare with
daily ticket (for all types of normal, student and senior citizen
ticket)

1
5. The designation of all classes of employees, tickets should implement
all techniques of Abstraction, Polymorphism, Encapsulation,
Abstraction and Inheritance in Java.
6. Input the list of employees and tickets by using the appropriate
Collection Framework in Java to store data. The input values depend
on your choice, but at least comprise of several figures as below:
o The details of each paid employee in the list of company: normal
employee, fare controller, driver, route manager, director…
o The details of each sold ticket: normal ticket, student ticket,
senior citizen ticket, monthly ticket, daily ticket…
o Program should have menu to input values by adding, updating,
removing an employee or ticket.
o Write the lists which are containing the inputted details of
employees and tickets into 2 separate files for list of employees
and list of tickets.
7. Reading data from files and use Array of Objects to make some
following requests:
o Showing the total amount of ticket revenues and total paid
salary for employees in the bus company in the respective list.
o Find out and show the detail of an employee which is matched
with an inputted name or an ID employee number inputted from
keyboard.
o Write to a text file the details of top 5 highest salary employees.
o Write to a binary file the details of top 5 lowest sold prices of
tickets.
o Display the employee who has the highest and the second lowest
salary in the list.
o Sorting the array of sold ticket price according to both of
increasing and decreasing orders and displaying them into
screen.
8. It is required you to make menu multiple choice to do the above
requirements in your program.
9. The evaluation of assignment is higher if your implementation applied
more and more Java and OOP techniques, such as: Abstract class,
Collections in Java, Handling Exception, Overrides…

SUBMISSION REQUIREMENTS

At the beginning of your program, include comments with the following


information formatted neatly, and reflecting accurate information for you.

2
/* Assignment
*/
/* Course: PRO192
*/
/* Student Names: Nguyen Van A, Tran Thi B,…
*/
/* Group ID: 2
*/
/* Date: June 15, 2023
*/
/*
*/
/* I declare that the attached assignment is our own work in
accordance with FPT University Academic Policy */

This assignment is worth 20% of your final mark.

Regardless of how long it takes you to complete this assignment, you still
need to submit a completed working version in order to pass this subject.

You might also like