Java项目练习——车辆优购系统

“该系统一共分为三步”

第一:先写一个Car类,定义车辆属性

package com.stx.exercise.projectone.test;

import java.util.Date;

/**
 * @program: StxHomework
 * @ClassName: Car
 * @description: 车辆信息
 * @author: LuoCheng
 * @create: 2024-03-23 11:39
 */
public class Car {

    /**
     * 1.定义car的属性
     * name,brand,price,amount,energyType
     * 2.构造出有参函数和无参函数
     * 3.创建set,get方法
     */
    private String name;
    private String brand;
    private double price;
    private int amount;
    private String energyType;
    private Date time;

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public Car(String name, String brand, double price, int amount, String energyType, Date time) {
        this.name = name;
        this.brand = brand;
        this.price = price;
        this.amount = amount;
        this.energyType = energyType;
        this.time = time;
    }

    public Car() {
    }

    public String getName() {
        return name;

    }

    //重写toString方法
    @Override
    public String toString() {
        return "Car{" +
                "name='" + name + '\'' +
                ", brand='" + brand + '\'' +
                ", price=" + price +
                ", amount=" + amount +
                ", energyType='" + energyType + '\'' +
                '}';
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }

    public String getEnergyType() {
        return energyType;
    }

    public void setEnergyType(String energyType) {
        this.energyType = energyType;
    }
}


第二:车辆系统管理(VehicleManagementSystem)

package com.stx.exercise.projectone.test;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Scanner;

/**
 * @program: StxHomework
 * @ClassName: VehicleManagementSystem
 * @description: 车辆优购系统
 * @author: LuoCheng
 * @create: 2024-03-23 11:33
 */
public class VehicleManagementSystem {
    //定义数组对象,设置初始化值为5
    Car[] cars = new Car[5];

    Scanner scanner = new Scanner(System.in);

    SimpleDateFormat sdf = new SimpleDateFormat();

    /**
     * 创建menu()方法
     * 作为主页,菜单栏
     */
    public void menu() {

        boolean isExit = false;
        //进入菜单循环
        while (!isExit) {
            System.out.println("*********************************");
            System.out.println("******欢迎来到《车辆优购系统》******");
            System.out.println("*********************************");
            System.out.println("1.新增车辆信息" + "\t" + "2.修改车辆信息" + "\t" + "3.删除车辆信息");
            System.out.println("4.车辆推荐" + "\t" + "5.退出系统");
            System.out.println("*********************************");
            //键盘录入,进入对应的选项
            int choose = scanner.nextInt();
            switch (choose) {
                case 1:
                    addVehicle();
                    break;
                case 2:
                    updateVehicle();
                    break;
                case 3:
                    deleteVehicle();
                    break;
                case 4:
                    recommendVehicle();
                    break;
                case 5:
                    System.exit(0);
                    break;
                default:
                    System.out.println("已经退出系统");
            }

        }

    }

    /**
     * 创建addVehicle()方法
     * 新增车辆信息
     */
    public void addVehicle() {
        Car car = new Car();
        System.out.println("请输入车辆的名称");
        car.setName(scanner.next());
        System.out.println("请输入车辆的品牌");
        car.setBrand(scanner.next());

        //判断输入的是否是double类型或者int类型
        boolean isTrueScannerDouble = false;
        while(!isTrueScannerDouble){
            System.out.println("请输入车辆的价格(万元)");
            if(scanner.hasNextDouble()){
                car.setPrice(scanner.nextDouble());
                isTrueScannerDouble = true;
            }else{
                System.out.println("输入的不是有效数字,请重新输入");
                //清楚缓冲区
                scanner.next();
            }
        }
        scanner.nextLine();
        //判断输入的是否是double类型或者int类型
        boolean isTrueScannerInt = false;
        while(!isTrueScannerInt){
            System.out.println("请输入车辆的销量");
            if(scanner.hasNextInt()){
                car.setAmount(scanner.nextInt());
                isTrueScannerInt = true;
            }else{
                System.out.println("输入的不是有效数字,请重新输入");
                //清楚缓冲区
                scanner.next();
            }
        }
        //判断是否是三种类型之一
        boolean a = false;
        while (!a) {
            System.out.println("请输入车辆的能源类型(燃油车,电车,混动车)");
            String carType = scanner.next();
            //判断输入的能源类型,必须是燃油车、电车、混动车,否则重新录入
            if (carType.equals("燃油车") || carType.equals("电车") || carType.equals("混动车")) {
                a = true;
                car.setEnergyType(carType);
                car.setTime(new Date());
            } else {
                System.out.println("输入错误");
            }
        }

        //查询车辆是否有空余的空间,添加车辆信息
        for (int i = 0; i < cars.length; i++) {
            if (cars[i] == null) {
                cars[i] = car;
                break;
            }
        }
        //显示车辆信息
        showInfo();


    }

    /**
     * 创建updateVehicle()方法
     * 修改(更新)车辆信息
     */
    public void updateVehicle() {

        //判断是否为空,为空就返回主页
        for (int i = 0; i < cars.length; i++) {
            if (cars[0] == null) {
                System.out.println("系统中没有数据,返回主页");
                return;
            }
        }
        System.out.println("请输入要修改车辆信息的车辆名称");
        String name1 = scanner.next();
        for (int i = 0; i < cars.length; i++) {
            if (cars[i].getName().equals(name1)) {
                boolean a = false;
                //进入循环,可以进行多次修改
                while (!a) {
                    System.out.println("********请选择要修改的内容********");
                    System.out.println("1.修改车辆的名称" + "2.修改车辆的品牌" + "3.修改车辆的价格" +
                            "4.修改车辆的销量" + "5.修改车辆的能源类型" + "6.退出修改");
                    int choose = scanner.nextInt();
                    //选择修改的内容
                    switch (choose) {
                        case 1:
                            System.out.println("请输入车辆的名称");
                            cars[i].setName(scanner.next());
                            System.out.println("修改成功");
                            break;
                        case 2:
                            System.out.println("请输入车辆的品牌");
                            cars[i].setBrand(scanner.next());
                            break;
                        case 3:
                            System.out.println("请输入车辆的价格");
                            cars[i].setPrice(scanner.nextDouble());
                            break;
                        case 4:
                            System.out.println("请输入车辆的销量");
                            cars[i].setAmount(scanner.nextInt());
                            break;
                        case 5:
                            System.out.println("请输入车辆的能源类型");
                            cars[i].setEnergyType(scanner.next());
                            break;
                        case 6:
                            a = true;
                            System.out.println("退出修改");
                            break;
                        default:
                            System.out.println("输入错误");
                    }

                }


            } else {
                System.out.println("系统中没有该车辆的信息");
            }
            break;
        }
        //显示当前的车辆信息
        showInfo();


    }

    /**
     * 创建deleteVehicle()方法
     * 删除车辆信息
     */
    public void deleteVehicle() {
        //判断是否为空,为空就返回主页
        for (int i = 0; i < cars.length; i++) {
            if (cars[0] == null) {
                System.out.println("系统中没有数据,返回主页");
                return;
            }
        }
        //提示输入要修改车辆信息的车辆名称
        System.out.println("请输入要修改车辆信息的车辆名称");
        String name2 = scanner.next();
        //循环遍历,查看是否有该车辆的信息
        for (int i = 0; i < cars.length; i++) {
            //如果找到,就删除该信息
            if (cars[i].getName().equals(name2)) {
                cars[i] = null;
                break;
            } else {
                System.out.println("系统中没有该车辆的信息");
            }
        }
        //显示当前的车辆信息
        showInfo();
    }

    /**
     * 创建recommendVehicle()方法
     * 根据车辆的销量来  推荐车辆信息
     */
    public void recommendVehicle() {
        //判断是否为空,为空就返回主页
        for (int i = 0; i < cars.length; i++) {
            if (cars[0] == null) {
                System.out.println("系统中没有数据,返回主页");
                return;
            }
        }
        //定义最大销量为0
        int max = 0;
        Car car1 = null;
        //遍历判断,如果系统中没有车辆信息,就跳出本次循环
        for (int i = 0; i < cars.length; i++) {
            if (cars[i] == null) {
                continue;
            }
            //遍历查找销量最大值,赋值给max
            if (max < cars[i].getAmount()) {
                max = cars[i].getAmount();
            }
        }
        //将查询到的信息的数组位置赋给  car1
        for (int j = 0; j < cars.length; j++) {
            //查询与max符合的数组信息
            if (cars[j].getAmount() == max) {
                car1 = cars[j];
                break;
            }
        }

        //将car1的数据作为推荐车辆信息展示出来
        System.out.println("车辆的名称" + "\t" + "车辆的品牌" + "\t" + "车辆的价格(万元)" + "\t" +
                "车辆的销量" + "\t" + "车辆的能源类型" + "\t" + "更新时间");
        System.out.println(car1.getName() + "  \t" + "  \t" + car1.getBrand() + "  \t" + "  \t" + car1.getPrice() + "    \t" + "    \t" +
                car1.getAmount() + "  \t" + "  \t" + car1.getEnergyType() + "  \t" + "  \t" + sdf.format(car1.getTime()));
    }

    /**
     * 创建showInfo()方法
     * 展示当前车辆信息
     */
    public void showInfo() {

        System.out.println("车辆的名称" + "\t" + "车辆的品牌" + "\t" + "车辆的价格(万元)" + "\t" +
                "车辆的销量" + "\t" + "车辆的能源类型" + "\t" + "更新时间");
        //对象数组进行循环遍历
        for (int i = 0; i < cars.length; i++) {
            //将不为null值的数据展示出来
            if (cars[i] != null) {

                System.out.println(cars[i].getName() + "  \t" + "  \t" + cars[i].getBrand() + "  \t" + "  \t" +
                        cars[i].getPrice() + "  \t" + "  \t" + "  \t" + cars[i].getAmount() + "  \t" + "  \t" +
                        cars[i].getEnergyType() + "  \t" + "  \t" + sdf.format(cars[i].getTime()));
            }

        }

    }


}


第三:测试运行(SystemDemo)

package com.stx.exercise.projectone.test;

/**
 * @program: StxHomework
 * @ClassName: SystemDemo
 * @description: 车辆优购系统测试
 * @author: LuoCheng
 * @create: 2024-03-23 11:44
 */
public class SystemDemo {

    public static void main(String[] args) {

        //构建无参对象
        VehicleManagementSystem vehicleManagementSystem = new VehicleManagementSystem();
        //调用车辆优购系统的菜单栏,进入系统
        vehicleManagementSystem.menu();
    }
}
  • 32
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值