这是我必须做的,我已经做过的
在与公司负责人快速会面后,您得到了以下信息:
需要将整个数据存储在一个集合中
每个航班都有编号、飞行员和特定日期。此外,可以在给定的限制内添加或删除乘客,以达到同一航班的最大乘客数量。此外,还有其他属性(从您的选择中添加至少 3 个属性)。当然,航班号在同一日期内是唯一的。
每个飞行员都有一个唯一的 ID、姓名和其他属性(至少添加 2 个您选择的属性)。
每位乘客都有一个唯一的护照号码、姓名和其他属性(从您的选择中添加至少 2 个属性,但其中一个应该与飞行员通用)。
此外,您已获悉以下操作经常发生:
提供新航班
将乘客添加到指定航班
从指定航班中删除乘客 检索指定日期每个航班的平均乘客人数
以类似于以下的格式显示所有可用航班: date1: flightNo1 flightNo2 flightNo3 … date2: flightNo1 flightNo2 flightNo3 … … 其中日期和航班按升序排序
将所有数据保存到文本文件中
这就是所做的
我正在开始测试课,当我开始时,由于某种原因我无法获得日期,所以我尝试了一种糟糕的方式,我认为我不正确
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
public class Testclass {
public static void main(String[] args) {
Date date1 = new Date("11/12/2020");
Flights a = new Flight(1, date1, 50, 5, "saudi air", "complimentary");
}
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Flight {
final List<Passenger> passengers = new ArrayList<>();
int number;
Pilot pilot;
Date date;
int maxPassengers;
int minPassengers;
String airline;
String food;
public Flight() {
}
public Flight(int number, Date date, int maxPassengers, int minPassengers, String airline, String food) {
this.number = number;
this.date = date;
this.maxPassengers = maxPassengers;
this.minPassengers = minPassengers;
this.airline = airline;
this.food = food;
}
public List<Passenger> getPassengers() {
return passengers;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public Pilot getPilot() {
return pilot;
}
public void setPilot(Pilot pilot) {
if (!pilotExistance(pilot)) {
this.pilot = pilot;
System.out.println("Pilot has been added.");
}
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public int getMaxPassengers() {
return maxPassengers;
}
public void setMaxPassengers(int maxPassengers) {
this.maxPassengers = maxPassengers;
}
public int getMinPassengers() {
return minPassengers;
}
public void setMinPassengers(int minPassengers) {
this.minPassengers = minPassengers;
}
public String getAirline() {
return airline;
}
public void setAirline(String airline) {
this.airline = airline;
}
public String getFood() {
return food;
}
public void setFood(String food) {
this.food = food;
}
public boolean pilotExistance(Pilot newPilot) {
boolean pilotExist = false;
for (Flight flight : Airport.flights) {
if (flight.getPilot() != null && flight.getPilot().getId().equals(newPilot.getId())) {
pilotExist = true;
System.out.println("Pilot id: " + newPilot.getId() + " pilots in plane of flight number: " + flight.getNumber());
break;
}
}
return pilotExist;
}
public boolean passengerExistance(Passenger newPassenger) {
boolean passengerExist = false;
for (Flight flight : Airport.flights) {
final List<Passenger> passengers = flight.getPassengers();
for (Passenger passenger : passengers) {
if (passenger.passportNumber.equals(newPassenger.passportNumber)) {
passengerExist = true;
System.out.println("Passenger with passport number: " + newPassenger.getPassportNumber() + " are on the flight with the flgit number: " + flight.getNumber());
break;
}
}
if (passengerExist) {
break;
}
}
return passengerExist;
}
public void addPassenger(Passenger passenger) {
if (passengers.size() < maxPassengers) {
if (!passengerExistance(passenger)) {
passengers.add(passenger);
System.out.println(" Included.");
}
} else {
System.out.println("The Max number of passengers has already been reached.");
}
}
public void removePassenger(Passenger passenger) {
if (passengers.size() > minPassengers) {
if (passengerExistance(passenger)) {
passengers.remove(passenger);
System.out.println("Passnger has been taken out of flight.");
} else {
System.out.println("Passnger with passport number: " + passenger.getPassportNumber() + " doesn't exist.");
}
} else {
System.out.println("The lowest amount of passengers have been reached.");
}
}
public void passengersInformation() {
if (passengers.isEmpty()) {
System.out.println("There are no passengers.");
} else {
for (Passenger passenger : passengers) {
System.out.println(passenger.toString());
}
}
}
@Override
public String toString() {
return "Number: " + number + ", Pilot: " + pilot != null ? pilot.toString() : "No pilot yet" + ", Date: " + date + ", airline: " + airline + ", food: " + food + ", Number of passengers: " + passengers.size();
}
}
public class Passenger {
String passportNumber;
String name;
String bloodtype;
String agecatagory;
public Passenger() {
}
public Passenger(String id, String name, String bloodtype, String agecatagory) {
this.passportNumber = id;
this.name = name;
this.bloodtype = bloodtype;
this.agecatagory = agecatagory;
}
public String getPassportNumber() {
return passportNumber;
}
public void setPassportNumber(String passportNumber) {
this.passportNumber = passportNumber;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBloodtype() {
return bloodtype;
}
public void setBloodtype(String bloodtype) {
this.bloodtype = bloodtype;
}
public String getAgecatagory() {
return agecatagory;
}
public void setAgecatagory(String agecatagory) {
this.agecatagory = agecatagory;
}
@Override
public String toString() {
return "Passport Number: " + passportNumber + ", Name: " + name + ", Bloodtype: " + bloodtype + ", Age catagory: " + agecatagory;
}
}
public class Pilot {
String id;
String name;
String experiancelevel;
String pilotcatagory;
public Pilot() {
}
public Pilot(String id, String name, String experiancelevel, String pilotcatagory) {
this.id = id;
this.name = name;
this.experiancelevel = experiancelevel;
this.pilotcatagory = pilotcatagory;
}
public String getId() {
return id;
}
//This function to get pilot id
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getExperiancelevel() {
return experiancelevel;
}
public void setExperiancelevel(String experiancelevel) {
this.experiancelevel = experiancelevel;
}
public String getPilotcatagory() {
return pilotcatagory;
}
public void setPilotcatagory(String pilotcatagory) {
this.pilotcatagory = pilotcatagory;
}
@Override
public String toString() {
return "Id: " + id + ", Name: " + name + ", Experiance level: " + experiancelevel + ", Pilot catagory: " + pilotcatagory;
}
}
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
public class Airport {
public static final List<Flight> flights = new ArrayList<>();
public Airport() {
}
public List<Flight> getFlights() {
return flights;
}
public boolean flightExistance(Flight newFlight) {
boolean flightExist = false;
if (!flights.isEmpty()) {
for (Flight flight : flights) {
if (flight.date.equals(newFlight.date) && flight.number == newFlight.number) {
flightExist = true;
break;
}
}
}
return flightExist;
}
public void addFlight(Flight flight) {
if (!flightExistance(flight)) {
flights.add(flight);
System.out.println("Flight Included.");
} else {
System.out.println("Number of flight: " + flight.getNumber() + " already in place.");
}
}
public void averageNumberOfPassengersPerFlight(Date date) {
int passengersCount = 0;
int flightsCount = 0;
double average = 0.0;
for (Flight flight : flights) {
if (flight.getDate().equals(date)) {
flightsCount++;
passengersCount += flight.getPassengers().size();
}
}
System.out.println("Total number of passengers in the flight: " + passengersCount);
if (passengersCount > 0 && flightsCount > 0) {
average = passengersCount / flightsCount;
System.out.println("Average number of passengers per flight for the specific date(" + date + "): " + average);
} else {
System.out.println("Average number of passengers per flight for the specific date(" + date + "): " + 0.0);
}
}
public void display() {
final List<Date> dates = new ArrayList<>();
for (Flight flight : flights) {
if (!dates.contains(flight.getDate())) {
dates.add(flight.getDate());
}
}
Collections.sort(dates);
for (Date date : dates) {
System.out.print(date + ": ");
final List<Integer> numbers = new ArrayList<>();
for (Flight flight : flights) {
if (flight.getDate().equals(date)) {
numbers.add(flight.getNumber());
}
}
Collections.sort(numbers);
for (int number : numbers) {
System.out.print("flightNo." + number + " ");
}
System.out.println("---------");
}
}
public void saveInTextFile(String filePath) {
try {
final FileWriter writer = new FileWriter(filePath);
for (Flight flight : flights) {
writer.write(flight.toString());
writer.write("\n");
writer.write("---------");
}
writer.close();
System.out.println("Saved successfully");
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
@Override
public String toString() {
return "Number of flights: " + flights.size();
}
}