继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Java小项目 -- 答答租车系统(已自测通过)

慕粉1640318436
关注TA
已关注
手记 1
粉丝 0
获赞 4

/**
 * 汽车抽象类
 * 
 * @author Administrator
 *
 */
public abstract class Auto {
    private String name;
    private double price;

    public Auto(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public double getPrice() {
        return price;
    }

    @Override
    public String toString() {
        return name + "\t" + price + "\t";
    }

}

/**载客汽车类
 * @author Administrator
 *
 */
public class PassengerCar extends Auto {
    private int passengerCapacity;

    public PassengerCar(String name, double price, int passengerCapacity) {
        super(name, price);
        this.passengerCapacity = passengerCapacity;
    }

    public int getPassengerCapacity() {
        return passengerCapacity;
    }

    @Override
    public String toString() {
        return super.toString()+ "载客:"+passengerCapacity+"人" ;
    }

    public static void main(String[] args) {
        Auto PassengerCar=new PassengerCar("路虎",100,5);
        System.out.println(PassengerCar.getName());
        //System.out.println(PassengerCar.getBusload());//Error,由动态绑定机制决定

        PassengerCar bus2=new PassengerCar("路虎2",100,5);
        System.out.println(bus2.getName());
        System.out.println(bus2.getPassengerCapacity());
        System.out.println(bus2.toString());
    }

}

/**卡车类
 * @author Administrator
 *
 */
public class Truck extends Auto{
    private double cargoCapacity;

    public Truck(String name, double price, double cargoCapacity) {
        super(name, price);
        this.cargoCapacity = cargoCapacity;
    }

    public double getCargoCapacity() {
        return cargoCapacity;
    }

    @Override
    public String toString() {
        return super.toString() + "载货:"+cargoCapacity + "吨";
    }

}

/**
 * 皮卡类(载货载客汽车)
 * 
 * @author Administrator
 *
 */
public class PickUp extends Auto {
    private int passengerCapacity;
    private double cargoCapacity;

    public PickUp(String name, double price, int passengerCapacity, double cargoCapacity) {
        super(name, price);
        this.passengerCapacity = passengerCapacity;
        this.cargoCapacity = cargoCapacity;
    }

    public int getPassengerCapacity() {
        return passengerCapacity;
    }

    public double getCargoCapacity() {
        return cargoCapacity;
    }

    @Override
    public String toString() {
        return super.toString() + "载客:" + passengerCapacity + "人 " + "载货:" + cargoCapacity + "人";
    }

}
import java.util.ArrayList;
import java.util.Scanner;

/**
 * 租车系统
 * 
 * @author Administrator
 *
 */

public class CarRentingSystem {
    private ArrayList<Auto> auto = new ArrayList<Auto>();// 汽车数据

    /**
     * 初始化汽车数据
     */
    public void initAuto() {
        auto.add(new PassengerCar("奥迪A6", 500, 4));
        auto.add(new PassengerCar("马自达6", 400, 4));
        auto.add(new PickUp("皮卡雪6", 450, 4, 2));
        auto.add(new PassengerCar("金龙", 800, 20));
        auto.add(new Truck("松花江", 300, 3));
        auto.add(new Truck("依维柯", 1000, 20));
    }

    /**
     * 显示汽车信息
     */
    public void displayAuto() {
        System.out.println("您可租的汽车信息:");
        System.out.println("序号\t车型\t租金\t容量");
        // 遍历汽车数据
        for (int i = 0; i < auto.size(); i++)
            System.out.println(i + 1 + "\t" + auto.get(i).toString());
    }

    /**
     * 选车的方法
     * 
     * @param in
     *            标准输入流
     * @return 选中车辆的序号
     */
    public int[] selectAuto(Scanner in) {
        System.out.println("请输入您要租汽车的数量:");
        int carRentNum = in.nextInt();// 租车数目
        int[] carRenOrders = new int[carRentNum];// 租车序号
        for (int i = 0; i < carRentNum; i++) {// 记录车辆序号
            System.out.println("请输入第" + (i + 1) + "辆车的序号:");
            carRenOrders[i] = in.nextInt();
        }
        return carRenOrders;
    }

    /**
     * 租车信息统计
     * 
     * @param carRenOrders
     *            选中车辆的序号
     * @param carRentDays
     *            租车天数
     */
    public void countUp(int[] carRenOrders, int carRentDays) {
        int totalPrice = 0;
        int totalPassengerCapacity = 0;
        int totalCargoCapacity = 0;
        String passengerCarList = "";
        String cargoCarList = "";

        for (int i = 0; i < carRenOrders.length; i++) {// 遍历每一辆选中的车
            Auto a = auto.get(i);
            if (a instanceof PassengerCar) {// 判断汽车类型
                totalPassengerCapacity += ((PassengerCar) a).getPassengerCapacity();
                passengerCarList += " " + a.getName();
            }
            if (a instanceof Truck) {
                totalCargoCapacity += ((Truck) a).getCargoCapacity();
                cargoCarList += " " + a.getName();
            }
            if (a instanceof PickUp) {
                totalPassengerCapacity += ((PickUp) a).getPassengerCapacity();
                totalCargoCapacity += ((PickUp) a).getCargoCapacity();
                cargoCarList += " " + a.getName();
                passengerCarList += " " + a.getName();
            }
            totalPrice += a.getPrice();
        }

        System.out.println("您的账单:");
        System.out.println("***可载客的汽车有:");
        System.out.println(passengerCarList + " 共载客:" + totalPassengerCapacity + "人");
        System.out.println("***可载货的汽车有:");
        System.out.println(cargoCarList + " 共载货:" + totalCargoCapacity + "吨");
        System.out.println("***租车总价格:" + totalPrice * carRentDays + "元");
    }

    public static void main(String[] args) {
        CarRentingSystem crs = new CarRentingSystem();
        crs.initAuto();// 初始化汽车数据
        while (true) {
            System.out.println("欢迎使用哒哒租车系统!");
            System.out.println("您是否要租车?1是 0否");
            Scanner in = new Scanner(System.in);
            if (in.nextInt() == 0)
                continue;
            else {// 需要租车
                crs.displayAuto();// 显示待租汽车信息
                int[] carRenOrders = crs.selectAuto(in);// 选车
                System.out.println("请输入租车天数:");// 租车天数
                int carRentDays = in.nextInt();
                crs.countUp(carRenOrders, carRentDays);// 租车信息统计
            }
        }
    }

}

欢迎使用哒哒租车系统!
您是否要租车?1是 0否
1
您可租的汽车信息:
序号 车型 租金 容量
1 奥迪A6 500.0 载客:4人
2 马自达6 400.0 载客:4人
3 皮卡雪6 450.0 载客:4人 载货:2.0人
4 金龙 800.0 载客:20人
5 松花江 300.0 载货:3.0吨
6 依维柯 1000.0 载货:20.0吨
请输入您要租汽车的数量:
3
请输入第1辆车的序号:
1
请输入第2辆车的序号:
3
请输入第3辆车的序号:
5
请输入租车天数:
1
您的账单:
可载客的汽车有:
奥迪A6 马自达6 皮卡雪6 共载客:12人
可载货的汽车有:
皮卡雪6 共载货:2吨
***租车总价格:1350元
欢迎使用哒哒租车系统!
您是否要租车?1是 0否
0
欢迎使用哒哒租车系统!
您是否要租车?1是 0否

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP