-1

这是我必须做的,我已经做过的

在与公司负责人快速会面后,您得到了以下信息:

  • 需要将整个数据存储在一个集合中

  • 每个航班都有编号、飞行员和特定日期。此外,可以在给定的限制内添加或删除乘客,以达到同一航班的最大乘客数量。此外,还有其他属性(从您的选择中添加至少 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();
    }
}
4

1 回答 1

0

我是来学习的,但我有时间限制,所以在使用当地时间的情况下,我不想使用我仍然不明白的代码,所以我只是继续我所做的,这有点糟糕我每次都必须制作一个新对象,但这还不错,我完成了主要方法。

在这里(当然这不是最后一个版本,因为我添加了更多变量和命令,但我只是想在我完全完成之前给你最终草案。

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 MainClass {
    public static void main(String[] args) {
        //    public Flight(int number, Date date, int maxPassengers, int minPassengers, String airline, String food) {
    Date d = new Date("11/12/2020");
        Pilot h = new Pilot("qw2563", "zaid", "epxerianced", "main pilot");
        Pilot h1 = new Pilot("qw2563", "zaid", "epxerianced", "main pilot");
        Pilot h2 = new Pilot("qw2563", "zaid", "epxerianced", "main pilot");

        Flight f = new Flight(1, d, 50, 5, "saudi air", "complimentary",h);
        
        Passenger one = new Passenger("23546785", "ahmad", "B+", "adult");
        Airport hq = new Airport();
        hq.addFlight(f);
        f.addPassenger(one);
        f.addPassenger(one);
        
        
        
        
        
        

       
    }
    
}
于 2021-11-09T12:34:13.323 回答