Question
Complete the implementations of various classes in a Flight Management System. Read the API for FlightManagementSystem carefully, the API of this lab is available under
Complete the implementations of various classes in a Flight Management System. Read the API for FlightManagementSystem carefully, the API of this lab is available under doc folder in the Java project folder (doc!index.html). Some example tests are given to you in the Tester class. You are required to write (at least three) additional tests to further ensure the correctness of your Flight Management implementations. We consider a database that stores information about passengers and flights. Each passenger record (e.g., String name, double TicketAmount, int flightID) can be uniquely identified by a String ID (e.g., e1), whereas each flight record (e.g., String airline and String flight for flight name and airline name, respectively ) can be uniquely identified by an integer id (e.g., 2000). You must implement all methods in the FlightManagementSystem by manipulating the two attributes passengers and flights, each of which declared as a HashMap. class FlightManagementSystem { HashMap flights; HashMap passengers; /* All methods must be implemented via flights and passengers */ } Override the compareTo and equal methods in the PassengerInfo class. Override the equals method in the FlightInfo class.For simplicity, you can assume that a passenger cannot be added in multiple flights. For this question, you are required to submit Java files such as FlightInfo, PassengerInfo, FlightManagementSystem, Tester in your Eclipse project. Note that the exception classes are available in the project folder.
package fms; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap;
public class FlightManagementSystem { /* * Each entry in a 'passengers' map contains * a unique ID (this is different from the flightID defined in the passenger class), and its associated information object. */ private HashMap passengers;
/* * Each entry in a 'flights' map contains * a unique id (this is different from the flightID defined in the passenger class) and its associated information object. */ private HashMap flights;
/** * Initialize an empty database. */ public FlightManagementSystem() { }
/** * Add a new passenger entry. * @param id - id of the passenger * @param info - information object of the passenger * @throws IdAlreadyExistsExceptoin if 'id' is an existing passenger id */ public void addPassenger(String id, PassengerInfo info) throws IdAlreadyExistsExceptoin { passengers.put(id , info) } }
/** * Remove an existing passenger entry. * @param id - id of the passenger * @throws IdNotFoundException if 'id' is not an existing passenger id */ public void removePassenger(String id) throws IdNotFoundException { }
/** * Add a new flight entry. * @param id id of the flight * @param info information object of the flight * @throws IdAlreadyExistsExceptoin if 'id' is an existing flight id */ public void addFlight(Integer id, FlightInfo info) throws IdAlreadyExistsExceptoin { }
/** * Remove an existing flight entry. * @param id id of some flight * @throws IdNotFoundException if 'id' is not an existing flight */ public void removeFlight(Integer id) throws IdNotFoundException { }
/** * Change the flight of passenger with id 'eid' to a new flight with id 'did'. * * You can assume that 'did' denotes a flight different from * the current flight of the passenger denoted by 'eid'. * @param eid id of some passenger * @param did id of some flight * @throws IdNotFoundException if either eid is a non-existing passenger id or did is a non-existing flight id. */ public void changeFlight(String eid, Integer did) throws IdNotFoundException { }
/** * Retrieve the name of passenger with id 'id'. * @param id id of some passenger * @return name of the passenger with id 'id' * @throws IdNotFoundException if 'id' is not an existing passenger id */ public String getPassengerName(String id) throws IdNotFoundException { }
/** * Retrieve the names of all passengers of the flight with id 'id'. * If 'id' a non-existing flight id, then return an empty list. * @param id id of some flight * @return List of names of passengers whose flight has id 'id' */ public ArrayList getPassengerNames(Integer id) { }
/** * Retrieve passengers flight information object. * @param id id of some passenger * @return The information object of the passengers flight * @throws IdNotFoundException if 'id' is not an existing passenger id */ public FlightInfo getFlightInfo(String id) throws IdNotFoundException { }
/** * Retrieve a list, sorted in increasing order, * the information objects of all stored passengers. * * Hints: * 1. Override the 'compareTo' method in PassengerInfo class. * 2. Look up the Arrays.sort method in Java API. * @return A sorted list of information objects of all passengers. */ public PassengerInfo[] getSortedPassengerInfo() { }
/** * Retrieve the average ticket paid by all passengers in flight with id 'id'. * @param id id of some flight * @return average ticket paid by all passengers in a flight with id 'id' * @throws IdNotFoundException if id is not an existing flight id */ public double getAverageTicketAmount(Integer id) throws IdNotFoundException { }
}
package fms;
public class IdAlreadyExistsExceptoin extends Exception { public IdAlreadyExistsExceptoin(String s) { super(s); } }
package fms;
public class IdNotFoundException extends Exception { public IdNotFoundException(String s) { super(s); } }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started