为了账号安全,请及时绑定邮箱和手机立即绑定

哒哒租车系统,搞了好几个小时,求指教!

标签:
Java

由于英语水平有限部分地方用的拼音!(简单粗暴)
//总车类接口。

package com.catv.car_rental;
public interface Cars {}

//货车接口。

package com.catv.car_rental;
public interface HuoChe extends Cars{}

//客车接口。

package com.catv.car_rental;
public interface KeChe extends Cars {}

//客车类,get和set太长省略了。

package com.catv.car_rental;
public class HuoCar implements HuoChe {
    private int cargo;
    private String cname;
    private double price;
    public HuoCar(int cargo, String cname, double price) {
        this.cargo = cargo;
        this.cname = cname;
        this.price = price;
    }
        //get和set省略。
    @Override
    public String toString() {
        return cname + "\t价格:" + price + "元/天" + "\t载货:" + cargo + "吨";
    }
}

//客车类。

package com.catv.car_rental;
//创建客车类。
public class KeCars implements KeChe {
    // 定义成员变量。
    private int manned;// 载客量。
    private String cname;// 车辆名称。
    private double price;// 租车价格。
    // 构造函数。
    public KeCars(int manned, String cname, double price) {
        this.manned = manned;
        this.cname = cname;
        this.price = price;
    }
    // get和set略。
    @Override
    public String toString() {
        return cname + "\t价格:" + price + "元/天" + "\t载人:" + manned + "人";
    }
}

//皮卡类。

package com.catv.car_rental;

public class PickUpTruck implements HuoChe, KeChe {
    private String cname;
    private double price;
    private int cargo;
    private int manned;

    public PickUpTruck(String cname, double price, int cargo, int manned) {
        this.cname = cname;
        this.price = price;
        this.cargo = cargo;
        this.manned = manned;
    }
//get和set略。
    @Override
    public String toString() {
        return cname + "\t价格:" + price + "元/天" + "\t载人:" + manned + "人\t载货:" + cargo + "吨";
    }
}

//租车系统类。

package com.catv.car_rental;

import java.util.Scanner;

public class CarRental {

    private Cars[] cars = new Cars[] { new KeCars(4, "奥迪A4", 500), new KeCars(4, "马自达6", 400),
            new PickUpTruck("皮卡雪6", 450, 2, 4), new KeCars(20, "金龙", 800), new HuoCar(4, "松花江", 400),
            new HuoCar(20, "依维柯", 1000) };
    private int lease;
    private int num;
    private Cars[] newCars;

    public int getLease() {
        return lease;
    }

    public void setLease(int lease) {
        this.lease = lease;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
        newCars = new Cars[num];
    }

    public void addCars(int x) {
        for (int i = 0; i < newCars.length; i++) {
            if (newCars[i] == null) {
                newCars[i] = cars[x - 1];
                break;
            } else {
                continue;
            }
        }
    }

    public void welcome() {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);

        System.out.println("欢迎使用哒哒租车系统:\r\n您是否要租车:1是0否");
        if (sc.nextInt() != 1) {
            System.out.println("谢谢使用哒哒租车系统!");
            return;
        }

        System.out.println("您可租车的类型以及价目表:");
        getList();

        System.out.println("请输入您要租汽车的数量:");
        int y;
        while (true) {
            y = sc.nextInt();
            if (y <= 0 || y > 7) {
                System.out.println("请输入1-6的数字");
            } else {
                setNum(y);
                break;
            }
        }
        int count = 1;
        int x;
        while (true) {
            System.out.println("请输入第" + count + "辆车的序号:");
            x = sc.nextInt();
            if (x >0 && x < 7) {
                addCars(x);
                if (count == getNum()) {
                    break;
                }
                count++;
            } else {
                System.out.println("请输入1-6的序号");
                continue;
            }
        }
    }

    public void getNewCarsList() {

        double sumPrice = 0;
        int sumCargo = 0;
        int sumManned = 0;
        StringBuffer sb1 = new StringBuffer();// 载客车。
        StringBuffer sb2 = new StringBuffer();// 载货车。
        for (int i = 0; i < newCars.length; i++) {

            if (newCars[i] instanceof KeCars) {
                sumPrice = ((KeCars) newCars[i]).getPrice() + sumPrice;
            } else if (newCars[i] instanceof HuoCar) {
                sumPrice = ((HuoCar) newCars[i]).getPrice() + sumPrice;
            } else if (newCars[i] instanceof PickUpTruck) {
                sumPrice = ((PickUpTruck) newCars[i]).getPrice() + sumPrice;
            }

            if (newCars[i] instanceof KeChe) {
                if (newCars[i] instanceof KeCars) {
                    sb1.append(((KeCars) newCars[i]).getCname() + "\t");
                    sumManned = ((KeCars) newCars[i]).getManned() + sumManned;
                } else if (newCars[i] instanceof PickUpTruck) {
                    sb1.append(((PickUpTruck) newCars[i]).getCname() + "\t");
                    sb2.append(((PickUpTruck) newCars[i]).getCname() + "\t");
                    sumManned = ((PickUpTruck) newCars[i]).getManned() + sumManned;
                    sumCargo = ((PickUpTruck) newCars[i]).getCargo() + sumCargo;
                }

            } else if (newCars[i] instanceof HuoChe) {
                sb2.append(((HuoCar) newCars[i]).getCname() + "\t");
                sumCargo = ((HuoCar) newCars[i]).getCargo() + sumCargo;
            }
        }
        System.out.println("***可载人的车有:\r\n" + sb1 + "\t共载人:" + sumManned + "人");
        System.out.println("***可载货的车有:\r\n" + sb2 + "\t共载货:" + sumCargo + "吨");
        System.out.println("***租车总价格:" + sumPrice + "元");
    }

    public void getList() {
        System.out.println("序号\t汽车名称\t租金\t\t容量");
        for (int i = 0; i < cars.length; i++) {
            System.out.println((i + 1) + "\t" + cars[i].toString());
        }
    }

}

//测试类。

package com.catv.car_rental;

public class Test {

    public static void main(String[] args) {

        CarRental cr = new CarRental();
        //欢迎界面。
        cr.welcome();
        //打印租车清单。
        cr.getNewCarsList();
    }

}

//测试结果。
欢迎使用哒哒租车系统:
您是否要租车:1是0否
1
您可租车的类型以及价目表:
序号 汽车名称 租金 容量
1 奥迪A4 价格:500.0元/天 载人:4人
2 马自达6 价格:400.0元/天 载人:4人
3 皮卡雪6 价格:450.0元/天 载人:4人 载货:2吨
4 金龙 价格:800.0元/天 载人:20人
5 松花江 价格:400.0元/天 载货:4吨
6 依维柯 价格:1000.0元/天 载货:20吨
请输入您要租汽车的数量:
4
请输入第1辆车的序号:
3
请输入第2辆车的序号:
1
请输入第3辆车的序号:
5
请输入第4辆车的序号:
2
可载人的车有:
皮卡雪6 奥迪A4 马自达6 共载人:12人
可载货的车有:
皮卡雪6 松花江 共载货:6吨
***租车总价格:1750.0元

//选车哪里不太理想后续会完善,希望高手指正。

点击查看更多内容
7人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消