基于控制台的航班信息系统

package com.zhiyou100;

public class Flight {

    //航班编号
    private String flightNo;
    //目的地
    private String address;
    //起飞日期
    private String flyDate;

    //空参构造方法
    public Flight() {
    }

    //全参构造
    public Flight(String flightNo, String address, String flyDate) {
        this.flightNo = flightNo;
        this.address = address;
        this.flyDate = flyDate;
    }

    // alt+insert  快捷键
    public String getFlightNo() {
        return flightNo;
    }

    public void setFlightNo(String flightNo) {
        this.flightNo = flightNo;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getFlyDate() {
        return flyDate;
    }

    public void setFlyDate(String flyDate) {
        this.flyDate = flyDate;
    }
    //重写toString方法

    @Override
    public String toString() {
        return "Flight{" +
                "flightNo='" + flightNo + '\'' +
                ", address='" + address + '\'' +
                ", flyDate='" + flyDate + '\'' +
                '}';
    }
}

package com.zhiyou100;

// 航班信息系统主启动类

import java.util.Scanner;

public class FlySystem {
    public static void main(String[] args) {
        //进行输出"欢迎使用航班信息管理系统"
        System.out.println("******************欢迎使用航班信息管理系统********************");
        //构建一个Scanner类对象
        Scanner sc = new Scanner(System.in);
        //构建一个容器存储航班信息 使用数组容器 数据类型使用Flight类型
        Flight[] arr = {new Flight("001", "Beijing", "2010-1-1"),
                new Flight("002", "Shanghai", "2011-2-20")
                , new Flight("003", "Guangzhou", "2011-2-24")};

        //构建一个可持续访问的管理系统
        while (true) {
            //进行输出"请选择操作"(1.列出所有航班,2.按起飞时间查询,3.按目的地查询,4.删除航班,5.更新航班
            // ,6退出系统):)
            System.out.println("请选择操作(1.列出所有航班,2.按起飞时间查询,3.按目的地查询,4.删除航班,5.更新航班,6.退出系统):");
            //输出需要操作的数字
            int inputNum = sc.nextInt();
            //根据输入的数字进行情形判断
            switch (inputNum) {
                case 1:
                    //拼接表头
                    System.out.println("编号\t航班号\t目的地\t起飞日期");
                    //遍历arr航班容器
                    for (int i = 0; i < arr.length; i++) {
                        //输出对象中的属性值
                        System.out.println((i + 1) + "\t" + arr[i].getFlightNo() + "\t" + arr[i].getAddress() + "\t" + arr[i].getFlyDate());
                    }
                    break;

                case 2:
                    //输入"起飞时间"
                    System.out.print("请输入日期:");
                    String time = sc.next();
                    //根据time值判断arr容器中哪些信息需要输出到控制台
                    //遍历arr容器
                    //表头输出
                    System.out.println("编号\t航班号\t目的地\t起飞日期");
                    for (int i = 0; i < arr.length; i++) {

                        //判断输入的time值与arr容器中的date值作比较
                        if (arr[i].getFlyDate().equals(time)) {
                            //表面当前的航班信息符合输入的日期值
                            System.out.println((i + 1) + "\t" + arr[i].getFlightNo() + "\t" + arr[i].getAddress() + "\t" + arr[i].getFlyDate());
                        }

                    }
                    break;

                case 3:
                    //输入"目的地"
                    System.out.print("请输入目的地:");
                    String dst = sc.next();//destination
                    System.out.println("编号\t航班号\t目的地\t起飞日期");
                    //根据dst值判断
                    for (int i = 0; i < arr.length; i++) {
                        if (arr[i].getAddress().equals(dst)) {
                            System.out.println((i + 1) + "\t" + arr[i].getFlightNo() + "\t" + arr[i].getAddress() + "\t" + arr[i].getFlyDate());

                        }

                    }

                    break;
                //情形4 删除对应的航班信息 数组的长度不变 创建新的数组容器(arr.length-1)存储删除之后的航班信息
                //需要赋值给arr数组变量 替换覆盖
                case 4:
                    //输入"需要删除的航班编号"
                    System.out.print("请输入需要删除的航班编号:");
                    String num = sc.next();
                    //构建一个空的数组容器,长度为arr.length-1
                    if (arr.length == 1) {
                        //初始化数组容器长度
                        Flight[] arrNew = new Flight[3];
                    }
                    //遍历arr容器
                    boolean isReplace = false;//定义一个开关
                    //数组索引越界
                    int index = 0;
                    for (int i = 0; i < arr.length; i++) {
                        if (arr[i].getFlightNo().equals(num)) {
                            isReplace = true;
                            index = i;
                        }
                    }
                    //判断是否需要替换
                    if (isReplace == true) {
                        Flight[] arrNew = new Flight[arr.length - 1];//3---2
                        //再次遍历arr数组
                        int count = 0;
                        for (int i = 0; i < arr.length; i++) {
                            //判断index == i    3   0 1 2
                            if (index == i) {
                                continue;
                            } else {
                                // 0 1
                                arrNew[count] = arr[i];
                                count++;
                            }
                        }
                        System.out.println("删除成功!");
                        arr = arrNew;
                    }
                    break;

                case 5:
                    //根据航班号修改对应的航班信息
                    System.out.print("请输入需要修改的航班对应的航班号:");
                    String id = sc.next();
                    boolean isUpdate = false;
                    for (int i = 0; i < arr.length; i++) {
                        if (arr[i].getFlightNo().equals(id)) {
                            isUpdate = true;
                            //请输入航班信息
                            System.out.println("请输入目的地");
                            String address = sc.next();
                            System.out.println("请输入起飞日期");
                            String date = sc.next();
                            arr[i].setAddress(address);
                            arr[i].setFlyDate(date);
                        }
                    }
                    if(isUpdate){
                        System.out.println("修改成功");
                    }else{
                        System.out.println("没有该航班号");
                    }
                    break;
                case 6:
                    System.out.println("退出系统!");
                    //程序结束
                    System.out.println("欢迎下次使用!");
                    return;
                default:
                    System.out.println("输入的数值不符合要求!请重新输入!");
                    break;



            }
        }



    }
}

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# OOP(机试) 本程序总结文章:http://blog.qiji.tech/?p=10344 - - - ## 程序基本要求 一、项目名称: Air Infomation Programming 基于控制台航班信息程序,简称AIP 二、具体要求如下: (1)显示航班信息程序主菜单,如图-1所示,包括: * 1)列出所有航班 * 2)按起飞时间查询 * 3)按目的地查询 * 4)删除航班 * 5)更新航班 * 6)退出系统 (2)列出所有航班:查出所有航班的信息,以列表形式显示,包括:编号,航班号,目的地,起飞日期。 (3)按起飞时间查询:输入起飞时间(格式如2011-2-25),查出所有这一天的航班。 (4)按目的地查询:输入目的地,查出所有飞往此地的航班。 (5)删除航班:删除指定编号的航班。 (6)更新航班:更新指定编号的航班。 (7)退出系统。 三、类的设计 需要定义如下类 * 航班信息实体类(AirInfo) * 航班编号(id) * 航班号(flight_number) * 目的地(destination) * 起飞日期(flight_date) * 航班信息管理类AirInfoManager类 * 程序入口类TestAirInfo类 四、具体要求及推荐实现步骤 1. 创建实体类AirInfo,属性私有化,根据业务提供需要的构造方法和setter/getter方法。 1. 创建航班管理AirInfoManager类,在类中提供列出所有航班的方法,按起飞时间查询的方法、按目的地查询的方法、删除航班的方法、更新航班的方法、退出程序的方法。 2. 创建TestAirInfo类,启动和运行程序。 3. 航班的信息用ArrayList(或数组)保存。 4. 要求代码规范,命名正确。 - - -

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值