加载中...

项目一火箭管理系统

项目一

写一个火箭系统,实现增删查改内容

题目如下


欢迎进入导弹管理系统*


*请输入相应编号选择功能


1.新增导弹信息

2.导弹信息展示

3.导弹入库

4.导弹出库

5.废弃过时导弹

6.退出系统


实现思路:

写三个类,火箭类、火箭系统,火箭测试类

一、火箭类

设置导弹类型,导弹名,导弹生产国家,导弹射程,导弹数量,(补充导弹添加时间)

将上述对象进行私有封装,用set,get进行调取,无参一个?构造函数(设定date值)

public class Missile {
    private String missileModel;
    private String missileName;
    private String missileCountries;
    private int missileRange;
    private int missileNum;
    private Date date;

    public Missile() {

    }

    public Missile(String missileModel, String missileName, String missileCountries, int missileRange, int missileNum, Date date) {
        this.missileModel = missileModel;
        this.missileName = missileName;
        this.missileCountries = missileCountries;
        this.missileRange = missileRange;
        this.missileNum = missileNum;
        this.date = new Date();
    }

    public String getMissileModel() {
        return missileModel;
    }

    public void setMissileModel(String missileModel) {
        this.missileModel = missileModel;
    }

    public String getMissileName() {
        return missileName;
    }

    public void setMissileName(String missileName) {
        this.missileName = missileName;
    }

    public String getMissileCountries() {
        return missileCountries;
    }

    public void setMissileCountries(String missileCountries) {
        this.missileCountries = missileCountries;
    }

    public int getMissileRange() {
        return missileRange;
    }

    public void setMissileRange(int missileRange) {
        this.missileRange = missileRange;
    }

    public int getMissileNum() {
        return missileNum;
    }

    public void setMissileNum(int missileNum) {
        this.missileNum = missileNum;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}

火箭系统类

创建一个火箭数组

封装一下

设置键盘输入值

date值(还没看懂)

 Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh-MM-ss");

写一个新增火箭方法

新增火箭set将数据存入missile

但是在新增火箭时要查看数组是否是空的,如果是空的,就把missile的对象全部放进数组。

public void addMissile() {
        Missile missile = new Missile();
        System.out.println("请输入导弹型号");
        missile.setMissileModel(scanner.next());
        System.out.println("请输入导弹名称");
        missile.setMissileName(scanner.next());
        System.out.println("请输入导弹生产国家");
        missile.setMissileCountries(scanner.next());
        System.out.println("请输入导弹射程");
        missile.setMissileRange(scanner.nextInt());
        System.out.println("请输入导弹初始入库数量");
        missile.setMissileNum(scanner.nextInt());
        missile.setDate(new Date());

        /**
         * 遍历导弹库查看有没有空的导弹
         */
        for (int i = 0; i < missiles.length; i++) {
            if (missiles[i] == null) {
                missiles[i] = missile;
                System.out.println("添加成功");
                return;
            }

        }
        System.out.println("没有火箭了");
    }

火箭入库方法

设定型号和数量

循环将数组的火箭类型和键盘输入做对比

相同的话输入键盘的值。,这个值为火箭库的值和输入num的和

 public void storage() {
        Missile missile = new Missile();
        System.out.println("请输入要入库型号");
        String type = scanner.next();
        System.out.println("请输入入库数量");
        int num = scanner.nextInt();
        for (int i = 0; i < missiles.length; i++) {
            if (missiles[i].getMissileModel().equals(type)) {
                missiles[i].setMissileNum(missiles[i].getMissileNum() + num);
                System.out.println("导弹型号为" + missiles[i].getMissileModel() + "入库成功,入库数量为" + num + sdf.format(date));
                return;
            }
        }
        System.out.println("输入失败");
    }

火箭出库方法

初始化一个属性

设定一个键盘输入

循环条件,将数组火箭类型和键盘输入类型进行对比,如果相等&&数组的数量大于键盘输入的值

number等于火箭库的数量减去输入的数量,就把这个值set赋给number

else 将火箭库num赋为0,输出剩余所有导弹。意思是如果要求出库,但是库存数量少于要求数量,继续输出所有库存。

 public void outMissile() {
        Missile missile = new Missile();
        System.out.println("请输入要出库型号");
        String type = scanner.next();
        System.out.println("请输入出库数量");
        int num = scanner.nextInt();
        int number = 0;
        for (int i = 0; i < missiles.length; i++) {
            if (missiles[i].getMissileModel().equals(type) && missiles[i].getMissileNum() > num) {
                number = missiles[i].getMissileNum() - num;
                missiles[i].setMissileNum(number);
                System.out.println("导弹型号为" + missiles[i].getMissileModel() + "出库成功,出库数量为" + num + ",更新时间为" + sdf.format(date));
                return;
            } else {
                missiles[i].setMissileNum(0);
                System.out.println("导弹型号为" + missiles[i].getMissileModel() + "剩余数量不足,出库数量为" + missiles[i].getMissileNum()+",更新时间为"+sdf.format(date));
            }
            menu();
        }

        System.out.println("输入失败");
    }

删除火箭方法

如果数组不为空键盘输入等于火箭库存的值

判断是否确认废弃,如果值不为空且输入相等火箭库类型

yes执行数组火箭清空

  public void deleteMissile() {
        System.out.println("请输入火箭编号");
        String missileNo = scanner.next();
        for (int i = 0; i < missiles.length; i++) {
            if (missiles[i] != null && missiles[i].getMissileModel().equals(missileNo)) {
                System.out.println("确定要废弃吗当前导弹是" + missiles[i].getMissileCountries() + "射程为" + missiles[i].getMissileRange() + "且库里余量还有" + missiles[i].getMissileNum() + "\t" + "输入yes继续,输入其他返回主界面");
                String missileYes = scanner.next();
                if (missileYes.equals("yes")) {
                    missiles[i] = null;
                    System.out.println("废弃" + missileNo + "成功");
                }
                menu();
                return;
            }

        }
        System.out.println("火箭输入错误");
    }

火箭信息展示

如果数组不为空,则展示

 public void showInfo() {
        System.out.println("型号" + "\t\t\t" + "名称" + "\t\t\t\t\t" + "生产国家" + "\t\t" + "射程(km)" + "\t\t" + "初始入库数量" + "\t\t" + "最新更改时间");
        for (int i = 0; i < missiles.length; i++) {

            if (missiles[i] != null) {
                System.out.println(missiles[i].getMissileModel() + "\t\t" + missiles[i].getMissileName() + "\t\t" + missiles[i].getMissileCountries() + "\t\t\t\t" + missiles[i].getMissileNum() + "\t\t" + missiles[i].getMissileRange() + "\t\t\t" + sdf.format(missiles[i].getDate()));
            }
        }
    }

火箭菜单

菜单类方法调用

  public void menu() {
        boolean isExit = false;

        while (!isExit) {
            System.out.println("*********************************");
            System.out.println("************欢迎进入导弹系统********");
            System.out.println("1.新增导弹信息");
            System.out.println("2.导弹信息展示");
            System.out.println("3.导弹入库");
            System.out.println("4.导弹出库");
            System.out.println("5.放弃过时导弹");
            System.out.println("6.退出系统");
            int choose = scanner.nextInt();
            switch (choose) {
                case 1: {
                    addMissile();
                    break;
                }
                case 2: {
                    showInfo();
                    break;
                }
                case 3: {
                    storage();
                    break;

                }
                case 4: {
                    outMissile();
                    break;

                }
                case 5: {
                    deleteMissile();
                    break;
                }
                case 6: {
                    isExit = true;
                    break;
                }
                default: {
                    System.out.println("输入有误!");
                }
            }
        }

火箭测试类

设定数组容量

数组对象

调用missileManangeSystem.menu();

public class MissileManangeSystemDemo {
    public static void main(String[] args) {
        Missile[] missiles = new Missile[100];
        MissileManangeSystem missileManangeSystem = new MissileManangeSystem(missiles);
        missileManangeSystem.menu();
    }
}
posted @ 2022-09-28 15:19  说句话吧  阅读(40)  评论(0)    收藏  举报