You have chosen to sponsor your bid up to a maximum amount of .
1. Create a new project in BlueJ called Assignment1. All classes for the assignment are to be
saved in this project.
2. Create the required classes for the project - there should be at least three (3) classes:
OzCharter, Flight and Passenger. You can have any number of additional classes you think
3. Class basics:
OzCharter – this class has a maximum of 3 flights, a company name, a company URL (web
address), and a counter for the number of flights that currently exist
Flight – a flight has a maximum of 4 passengers, a flight number (1 to 3), an origin, a
destination, a seat price, departure time and arrival time (as int), a counter for the number
of passengers currently booked on the flight
Passenger – a passenger has an id, name, email, gender, amount of money to spend (or
credit), an is adult status (true or false) a booked status (true if booked on a flight) and a
paid status (true if the flight has been paid for)
4. Constructors: all classes must have at least 1 constructor. The alternate constructor must
initialise the class attributes (done in the body of the constructor).
5. StartUp: when the program first starts, there should be 3 flights created in OzCharter, so
that passengers can view and select these.
The user of OzCharter must be able to:
- Add a passenger
- Search for a flight
- Search for a passenger
- View a list of all flights
- Book a passenger onto a flight
- Pay for a flight
- View a list of passengers on a flight
1. Add a passenger
Passengers are added to the system before they can book a flight. The program must be
able to add passengers to OzCharter, up to a maximum of 6 passengers. The passenger
ID’s are 1 up to 6, passenger 1 is added first, then passenger 2 etc.
2. Display all flights
When a user selects to view all flights, display a list of all flights that currently exist
(maximum of 3). Details should include flight number, origin and destination airport, number
of passengers currently booked on the flight, departure and arrival time, and the seat price.
3. Search for a flight
A user can search for a flight by flight number, origin airport or destination airport. If any
flight matches the criteria entered, display all details of the flight. If no matching flight was
found, display an error message.
4. Search for a passenger
A user can search for a passenger by ID or email address. If any passenger matches the
criteria entered, display all details of the passenger. If no matching passenger was found,
display an error message.
5. Book a flight
A user can book a passenger on a flight. The passenger must already be created in the
system and their booking status must be false (not already booked on a flight). If they are
not in the system, or already booked on a flight, then an error is displayed. The user must
enter the flight number. If the flight number exists and the flight is not full, the passenger is
added to the flight. The booked status of the passenger is set to true (passengers can only
be booked onto 1 flight) and the paid status of the passenger is set to false. The total
number of passengers booked on the flight is also incremented.
6. Pay for a flight
A user can pay for a flight. When payment is processed successfully the price of the flight is
deducted from the amount of money a passenger has, and the paid status of the passenger
is set to true. If the passenger does not have enough money, the paid status remains as
false and an error message is displayed.
7. View a list of passengers on a flight
When a user selects to view all passengers on a flight, display a list of all passengers
booked on the flight (maximum is 4). Details should include passenger ID, name, email and