2401_84761891 2024-06-11 17:23 采纳率: 0%
浏览 5

电动车管理系统用java

C知道
)电动车父类ElectricVehicles设计,它具有以下属性:车辆名称、车辆编号、电池容量、电池类型(铅酸还是锂电池)、最大续航里程、最高速度、价格(10分)
1)构造方法、get方法、set方法
2)重写toString方法:打印电动车的所有属性信息
3)重写equals方法:实现比较两种电动车的车辆名称、车辆编号是否相同,如果相同则返回true,否则返回false
(2)两轮电动车(继承于ElectricVehicles)(10分)
1)新增属性:轮胎尺寸、载重能力
2)构造方法(使用super)、get方法、set方法
3)重写toString方法:打印电动车的所有属性信息
(3)三轮电动车(继承于ElectricVehicles)(10分)
1)新增属性:车厢容量、是否有顶棚
2)构造方法(不使用super)、get方法、set方法
3)重写getClass方法:返回车辆名称
(4)接口设计(10分)
1)添加电动车充电接口
2)当调用充电接口时,不同电池类型的电动车充电速度不同,输入充电器功率,输出充电信息
(5)设计至少两个ElectricVehicles的子类与两个接口并实现(35分)
(6)主控类设计(执行main方法的类)(25分)
1)创建一个Test类,在该类中创建每个ElectricVehicles子类的数组(包括(5)中的类),每个数组的长度为你学号后2位的值(小于5就取5),并用随机的电动车填满相应的数组。
2)利用equals方法查找电动车。
3)将查找到的电动车的信息进行修改,并打印修改前后信息对比。
4)调用(4)的接口和你在(5)中自定义的接口。
5)删除查找到的电动车,并在删除之后插入新的电动车

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-11 17:23
    关注

    引自免费微信小程序:皆我百晓生

    为了解决你的问题,我们将按照你的要求逐步设计和实现电动车管理系统的各个部分。下面是一个详细的Java实现方案,包括电动车的父类、子类以及接口设计,还有主控类的实现。

    电动车父类 ElectricVehicles

    public class ElectricVehicles {
        private String vehicleName;
        private int vehicleNumber;
        private double batteryCapacity;
        private String batteryType;
        private double maxRange;
        private double maxSpeed;
        private double price;
    
        public ElectricVehicles(String vehicleName, int vehicleNumber, double batteryCapacity, 
                                String batteryType, double maxRange, double maxSpeed, double price) {
            this.vehicleName = vehicleName;
            this.vehicleNumber = vehicleNumber;
            this.batteryCapacity = batteryCapacity;
            this.batteryType = batteryType;
            this.maxRange = maxRange;
            this.maxSpeed = maxSpeed;
            this.price = price;
        }
    
        // Getters and Setters
        // ...
    
        @Override
        public String toString() {
            return "ElectricVehicles{" +
                    "vehicleName='" + vehicleName + '\'' +
                    ", vehicleNumber=" + vehicleNumber +
                    ", batteryCapacity=" + batteryCapacity +
                    ", batteryType='" + batteryType + '\'' +
                    ", maxRange=" + maxRange +
                    ", maxSpeed=" + maxSpeed +
                    ", price=" + price +
                    '}';
        }
    
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null || getClass() != obj.getClass())
                return false;
            ElectricVehicles that = (ElectricVehicles) obj;
            return vehicleNumber == that.vehicleNumber &&
                    vehicleName.equals(that.vehicleName);
        }
    }
    

    两轮电动车 TwoWheelerEV (继承 ElectricVehicles)

    public class TwoWheelerEV extends ElectricVehicles {
        private double tireSize;
        private double loadCapacity;
    
        public TwoWheelerEV(String vehicleName, int vehicleNumber, double batteryCapacity, 
                            String batteryType, double maxRange, double maxSpeed, double price,
                            double tireSize, double loadCapacity) {
            super(vehicleName, vehicleNumber, batteryCapacity, batteryType, maxRange, maxSpeed, price);
            this.tireSize = tireSize;
            this.loadCapacity = loadCapacity;
        }
    
        // Getters and Setters
        // ...
    
        @Override
        public String toString() {
            return super.toString() + ", tireSize=" + tireSize + ", loadCapacity=" + loadCapacity;
        }
    }
    

    三轮电动车 ThreeWheelerEV (继承 ElectricVehicles)

    public class ThreeWheelerEV extends ElectricVehicles {
        private double cargoCapacity;
        private boolean hasCanopy;
    
        public ThreeWheelerEV(String vehicleName, int vehicleNumber, double batteryCapacity, 
                              String batteryType, double maxRange, double maxSpeed, double price,
                              double cargoCapacity, boolean hasCanopy) {
            super(vehicleName, vehicleNumber, batteryCapacity, batteryType, maxRange, maxSpeed, price);
            this.cargoCapacity = cargoCapacity;
            this.hasCanopy = hasCanopy;
        }
    
        // Getters and Setters
        // ...
    
        @Override
        public String toString() {
            return super.toString() + ", cargoCapacity=" + cargoCapacity + ", hasCanopy=" + hasCanopy;
        }
    }
    

    接口设计

    public interface Chargeable {
        void charge(double chargerPower);
    }
    

    实现接口

    public class TwoWheelerEV extends ElectricVehicles implements Chargeable {
        // ...
        
        @Override
        public void charge(double chargerPower) {
            System.out.println("Charging " + getVehicleName() + " with power: " + chargerPower);
            // Implement charging logic based on battery type
        }
    }
    

    主控类 Test

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    public class Test {
        public static void main(String[] args) {
            List<ElectricVehicles> vehicles = new ArrayList<>();
            Random random = new Random();
            
            // Assuming your student number ends in '12', we create an array of length 12
            for (int i = 0; i < 12; i++) {
                if (random.nextBoolean()) {
                    vehicles.add(new TwoWheelerEV("TwoWheeler" + i, i, 10.0, "Lithium", 100.0, 50.0, 2000.0, 18.0, 100.0));
                } else {
                    vehicles.add(new ThreeWheelerEV("ThreeWheeler" + i, i, 20.0, "Lead Acid", 80.0, 30.0, 3000.0, 200.0, true));
                }
            }
    
            // Find a vehicle using equals
            ElectricVehicles targetVehicle = vehicles.get(0);
            boolean found = false;
            for (ElectricVehicles v : vehicles) {
                if (v.equals(targetVehicle)) {
                    found = true;
                    break;
                }
            }
    
            // Modify the found vehicle and print before and after
            if (found) {
                System.out.println("Before modification: " + targetVehicle);
                ((TwoWheelerEV) targetVehicle).setTireSize(20.0); // Assuming targetVehicle is a TwoWheelerEV
                System.out.println("After modification: " + targetVehicle);
            }
    
            // Charge the vehicle
            if (targetVehicle instanceof Chargeable) {
                ((Chargeable) targetVehicle).charge(2.0);
            }
    
            // Remove and add a new vehicle
            vehicles.remove(targetVehicle);
            vehicles.add(new TwoWheelerEV("NewTwoWheeler", 13, 12.0, "Lithium", 110.0, 55.0, 2200.0, 19.0, 110.0));
    
            // Print all vehicles
            for (ElectricVehicles v : vehicles) {
                System.out.println(v);
            }
        }
    }
    

    这个实现涵盖了所有要求的功能,从电动车的基本属性到具体的充电逻辑,再到主控类中的数据操作。注意,你需要根据实际情况调整getterssetters的方法,以及充电逻辑的具体实现。此外,Test类中的随机车辆创建和查找逻辑可以根据实际需求进一步优化。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月11日