Object Oriented Programming project Using Java | M251 course


This TMA covers the first 7 sessions of M251. It is required to do the following:


·       Create a Java project using your IDE and name it using your name and your student ID

·       Implement all the required classes in the default package




A new airways company wants to make a simple application to keep track of flights and passengers.

In this TMA, it is required to help the head of the company implement the required application.




After a quick meeting with the head of the company, you got the following information:

·       It is required to store the whole data in one collection

·       Each flight has a number, a pilot and a specific date. In addition, passengers could be added or removed within a given limit for the maximum number of passengers who could be in the same flight. Furthermore, there are other attributes (add at least 3 attributes from your choice). Of course, flight number is unique within the same date.

·       Each pilot has a unique ID, a name and other attributes (add at least 2 attributes from your choice).

·       Each passenger has a unique passport number, a name and other attributes (add at least 2 attributes from your choice but one of them should be common with pilots).


Moreover, you have been informed that the following operations happen frequently:

·       Offering a new flight

·       Adding a passenger to a specified flight

·       Removing a passenger from a specified flight

·       Retrieving the average number of passengers per flight of a specified date

·       Displaying all available flights in a format similar to the following: date1: flightNo1 flightNo2 flightNo3

date2: flightNo1 flightNo2 flightNo3

where dates and flights are sorted in ascending order

·       Saving all the data into a text file



Q1: There are common attributes and methods between passengers and pilots. What is the best choice for designing and writing the codes of these two classes? Explain your answer.

Q2: Draw a simple class diagram showing only relationships between the classes.



After analysing the given requirements, implement the required application:

·       with Object Oriented Programming style

·       following the rules of good programming style (e.g. adding comments, etc.)

·       using only the material covered in M251 (and its prerequisites)



·       For each class, it is required to implement constructors, setters, getters, toString() method, and any other necessary method

·       If the user tries to do an operation that could violate the state of objects, the operation should be ignored and the application should display an error message (e.g. adding a passenger to the same flight twice, etc.)

·       Checking equality of any 2 objects should be done via the equals() method

·       There is a class that will do the main job of as follows:

o   It has one collection to store the whole data (all flights)

o   It has static methods, one for each operation happens frequently

o   For each adding or removing operation, a message should be displayed to the user to explain the status of the operation (i.e. if it was successful or not)



After implementing the required classes, design and implement a testing class to test them as follows:

  • Create at least 7 flights in at least 3 different dates and add them to the collection that stores the whole data then add and remove some passengers from them.
  • Try to violate the state of the objects and show that your code prevents all violations.
  • Show that the other operations that happen frequently are working fine
  • At the end, the whole data should be saved into a text file and this file should be saved automatically inside the folder contains your Java project

All Answers

total answers (0)

This question belongs to these collections

Similar questions

need a help?

find thousands of online teachers now