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

Java入门第二季6.1 达达租车系统

慕虎5478068
关注TA
已关注
手记 1
粉丝 7
获赞 36

由于程序基本没有什么方法,故没有使用接口。直接用父类Car代表皮卡车,子类SeatCar和LoadCar分别代表客车和货车。

  • 首先是一个父类Car,表示能载货又能载客的车
public class Car {

    public int id;//序号
    public String name;//车名
    public int seat;//座位数
    public double load;//载重量
    public double price;//租金

    public Car(int id, String name, int seat, double load, double price) {
        this.id = id;
        this.name = name;
        this.seat = seat;
        this.load = load;
        this.price = price;
    }

    public String toString() {//重写toString方法以便返回信息
        return id + ".\t" + name + "\t" + seat + "\t" + load + "\t" + price;
    }

}
  • 货车类LoadCar
public class LoadCar extends Car {

    public LoadCar(int id, String name, double load, double price) {
        super(id, name, 0, load, price);//货车直接将载人数设为0
    }

    public String toString() {
        return id + ".\t" + name + "\t" + seat + "\t" + load + "\t" + price;
    }

}
  • 客车类SeatCar
public class SeatCar extends Car {

    public SeatCar(int id, String name, int seat, double price) {
        super(id, name, seat, 0, price);//客车直接将载货量设为0
    }

    public String toString() {
        return id + ".\t" + name + "\t" + seat + "\t" + load + "\t" + price;
    }
}
  • 测试程序
import java.util.Scanner;

public class Initial {

    public static void main(String[] args) {

        int totalSeat = 0;
        double totalLoad = 0;
        double totalPrice = 0;
        String loadCarList = "";// 利用字符串存储可载货车辆的列表
        String seatCarList = "";// 利用字符串存储可载人车辆的列表

        Car[] cars = new Car[5];

        // 此处运用多态原理,用父类的引用指向子类对象,可以放在同一个数组中方便遍历
        cars[0] = new SeatCar(1, "奥迪A4", 4, 500);
        cars[1] = new SeatCar(2, "马自达6", 4, 400);
        cars[2] = new Car(3, "皮卡雪6", 4, 2, 450);
        cars[3] = new LoadCar(4, "松花江", 4, 400);
        cars[4] = new LoadCar(5, "依维柯", 200, 1000);

        System.out.println("欢迎使用达达租车系统");
        System.out.println("您是否要租车:1是 0否");

        Scanner in = new Scanner(System.in);

        if (in.nextInt() == 1) {
            System.out.println("***************目前可租车型***************");
            System.out.println("序号\t汽车名称\t载人(人)\t载货(吨)\t租金(元/天)");
            for (Car c : cars) {// foreach遍历并输出可租车辆
                System.out.println(c);// 由于重写了toString()方法,此处直接输出toString()的返回值
            }

            System.out.println("请输入您要租车的数量:");
            int number = in.nextInt();
            for (int i = 0; i < number; i++) {
                System.out.println("请输入第" + (i + 1) + "辆车的序号:");
                int id = in.nextInt();
                totalSeat += cars[id - 1].seat;
                totalLoad += cars[id - 1].load;
                totalPrice += cars[id - 1].price;
                if (cars[id - 1].seat != 0) {
                    seatCarList = seatCarList + cars[id - 1].name + " ";
                }
                if (cars[id - 1].load != 0) {
                    loadCarList = loadCarList + cars[id - 1].name + " ";
                }

            }
            System.out.println("请输入租车天数:");
            int day = in.nextInt();

            System.out.println("\n*****您的账单*****");
            if (loadCarList == "") {// 防止输出空字符串的情况发生
                System.out.println("无可载货的车辆");
            } else {
                System.out.println("可载货的车辆有:" + loadCarList);
                System.out.println("总载货量:" + totalLoad);
            }
            if (seatCarList == "") {
                System.out.println("无可载人的车辆");
            } else {
                System.out.println("可载人的车辆有:" + seatCarList);
                System.out.println("总载人数:" + totalSeat);
            }
            System.out.println("总价格:" + day * totalPrice + '元');

        } else {
            System.out.println("感谢您的使用!");
        }
        in.close();
    }

}

  • 运行结果预览

达达租车系统运行结果

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

热门评论

for (Car a : cars) {
	// foreach遍历并输出可租车辆
	System.out.println(a);// 由于重写了toString()方法,此处直接输出toString()的返回值 
}

对于新新手来说,这个遍历真是让我烧脑了一个上午,我的eclipse可能是版本问题,一直报错,显示版本太低,调到1.7还是显示版本太低。

如果还没有学过遍历也不懂这个遍历是什么意思的童鞋,其实就是要一个for循环。

for(int j=0;j<cars.length;j++){
	System.out.println(cars[j]);
}

http://blog.csdn.net/u010398265/article/details/51208955

这个博主的总结我感觉写的挺好,不太懂的可以看下。

写的非常好,打了一边,感觉666,希望作者继续努力

for (Car a : cars) {
	// foreach遍历并输出可租车辆
	System.out.println(a);// 由于重写了toString()方法,此处直接输出toString()的返回值 
}

对于新新手来说,这个遍历真是让我烧脑了一个上午,我的eclipse可能是版本问题,一直报错,显示版本太低,调到1.7还是显示版本太低。

如果还没有学过遍历也不懂这个遍历是什么意思的童鞋,其实就是要一个for循环。

for(int j=0;j<cars.length;j++){
	System.out.println(cars[j]);
}

http://blog.csdn.net/u010398265/article/details/51208955

这个博主的总结我感觉写的挺好,不太懂的可以看下。

查看全部评论