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

答答系统_12/20_V1.0.0

WORLD_CONNECTED
关注TA
已关注
手记 1
粉丝 13
获赞 7

首先Car大类

package com.dada;

public abstract class Car {

    public final float price;
    public final short canSavePerosonNumber;
    public final float canSaveCargoNumber;
    public final String carName;
    public final int carId;

    public Car (float price,float canSaveCargoNumber , short canSavePersonNumber , String carName , int carId){
        this.price = price;
        this.canSaveCargoNumber = canSaveCargoNumber;
        this.canSavePerosonNumber = canSavePersonNumber;
        this.carName = carName;
        this.carId = carId;
    }

    public float getPrice() {
        return price;
    }

    public short getCanSavePerosonNumber() {
        return canSavePerosonNumber;
    }

    public float getCanSaveCargoNumber() {
        return canSaveCargoNumber;
    }

    public String getCarName() {
        return carName;
    }

    public int getCarId() {
        return carId;
    }

}

然后再写三个Car子类(HuoCar:货车;MiniCar:小车;PiCar:皮卡)
PiCar

package com.dada;

public class PiCar extends Car {
    public final short carType;

    public PiCar(float price, float canSaveCargoNumber,
            short canSavePersonNumber, String carName, int carId) {
        super(price, canSaveCargoNumber, canSavePersonNumber, carName, carId);      
        this.carType = 1;
    }

    public short getCarType() {
        return carType;
    }
}

MiniCar

package com.dada;

public class MiniCar extends Car{

    public final short carType;

    public MiniCar(float price, float canSaveCargoNumber,
            short canSavePersonNumber, String carName, int carId) {
        super(price, canSaveCargoNumber, canSavePersonNumber, carName, carId);      
        this.carType = 2;
    }

    public short getCarType() {
        return carType;
    }   
}

HuoCar

package com.dada;

public class HuoCar extends Car {
    public final short carType;

    public HuoCar(float price, float canSaveCargoNumber,
            short canSavePersonNumber, String carName, int carId) {
        super(price, canSaveCargoNumber, canSavePersonNumber, carName, carId);

        this.carType = 3;
    }

    public short getCarType() {
        return carType;
    }

}

然后是写Main方法

package com.dada;

import java.util.*;

public class Main {
    public static Car[] carList;

    /**
     * @param args
     */
    public static void main(String[] args) {
        //Initialize
        carList = new Car[10];      
        for (int i = 0; i<10;i++){
            Random rand = new Random();
            int type = rand.nextInt(3);
            Car car = null;
            switch (type) {
            case 0:{
                car = new PiCar(103.2f,10.0f,(short)3,"皮卡"+i,i);
                break;}
            case 1:{
                car = new MiniCar(123.0f,0.0f,(short)3,"小车"+i,i);
                break;}
            case 2:{
                car = new HuoCar(100.2f,10000.0f,(short)0,"货车"+i,i);
                break;}
            default:{
                car = new HuoCar(100.2f,30000.0f,(short)3,"错误的车"+i,i);
                break;}
            }
            carList[i] = car;
        }       
        //Initialize-END

        System.out.println("欢迎使用达达租车系统");
        System.out.println("您是否要组车:1是 0否");
        Scanner scan = new Scanner(System.in);
        int canIn = scan.nextInt();
        if (canIn == 1){
            //打印所有数据
            System.out.println("序号\t汽车名称\t租金\t\t容量");
            for (int i = 0; i < carList.length; i++) {
                Car content = carList[i];
                System.out.println(i+1+".\t"
                        +content.carName+"\t"
                        +content.price+"元/天\t"
                        +(content.canSavePerosonNumber>0?"载人:"+content.canSavePerosonNumber+"人  ":"")
                        +(content.canSaveCargoNumber>0.0f?"载货:"+content.canSaveCargoNumber/1000.0f+"吨":""));
            }
            System.out.println("请输入您要租汽车的数量:");
            Scanner carNumberScan = new Scanner(System.in);
            int carNumber = carNumberScan.nextInt();
            if (carNumber > 0) {
                Car[] carSelected = new Car[carNumber];
                float[] carSelectedTime = new float[carNumber];
                for (int i = 0; i < carSelected.length; i++) {
                    System.out.println("请输入第"+(i+1)+"车的序号");
                    Scanner selectedCar = new Scanner(System.in);
                    int selectedCarNumber = selectedCar.nextInt()-1;
                    if (selectedCarNumber >= carList.length || selectedCarNumber<0) {
                        System.out.println("您输入的车辆序号不存在");
                        i--;
                        continue;
                    }else{
                        Car selected = carSelected[i] = carList[selectedCarNumber];                     
                        System.out.println("输入车辆"+selected.carName+"租用的时间(单位为天)");
                        Scanner selectedTime = new Scanner(System.in);
                        float selectedCarTime = selectedTime.nextFloat();
                        if (selectedCarTime>0) {
                            carSelectedTime[i] = selectedCarTime;
                            //展示:
                            Car isSelectedCar = carSelected[i]; 
                            System.out.println("已为您保存:"+isSelectedCar.carName+"   天数为:"+selectedCarTime);
                        }else{
                            System.out.println("您输入的时间小于等于0天,已自动为您去除该车辆");
                            i--;
                            continue;
                        }
                    }
                }
                //展示:
                System.out.println("您的账单:");
                float allPrice = 0.0f;      
                int allPersonNumber = 0;
                float allCargoNumber = 0.0f;
                String canSavePersonString = "";
                String canSaveCargoString = "";
                //总金额、获取车辆类别对应的数量
                for (int i = 0; i < carSelected.length; i++) {
                    Car selected = carSelected[i];
                    allPrice +=selected.price;
                    if (selected.canSaveCargoNumber>0) {
                        canSaveCargoString += selected.carName+"    ";
                        allCargoNumber += selected.canSaveCargoNumber;
                    }
                    if (selected.canSavePerosonNumber>0) {
                        canSavePersonString += selected.carName+"    ";
                        allPersonNumber += selected.canSavePerosonNumber;
                    }
                }
                System.out.println("***可载人的车有:");
                System.out.println(canSavePersonString+"共载人:"+allPersonNumber+"人");
                System.out.println("***可载货的车有:");
                System.out.println(canSaveCargoString+"共载货:"+(allCargoNumber/1000.0f)+"吨");
                System.out.println("***组车总价格:"+allPrice+"元");           

            }else{
                System.out.println("谢谢您浏览");                
            }

        }else{
            System.out.println("欢迎再来");
        }
    }
}

运行效果(图片):
图片描述

运行效果(文本):

欢迎使用达达租车系统
您是否要组车:1是 0否
1
序号  汽车名称    租金      容量
1.  皮卡0 103.2元/天    载人:3人  载货:0.01吨
2.  小车1 123.0元/天    载人:3人  
3.  皮卡2 103.2元/天    载人:3人  载货:0.01吨
4.  皮卡3 103.2元/天    载人:3人  载货:0.01吨
5.  皮卡4 103.2元/天    载人:3人  载货:0.01吨
6.  皮卡5 103.2元/天    载人:3人  载货:0.01吨
7.  小车6 123.0元/天    载人:3人  
8.  皮卡7 103.2元/天    载人:3人  载货:0.01吨
9.  货车8 100.2元/天    载货:10.0吨
10. 皮卡9 103.2元/天    载人:3人  载货:0.01吨
请输入您要租汽车的数量:
5
请输入第1车的序号
1
输入车辆皮卡0租用的时间(单位为天)
1
已为您保存:皮卡0   天数为:1.0
请输入第2车的序号
2
输入车辆小车1租用的时间(单位为天)
3
已为您保存:小车1   天数为:3.0
请输入第3车的序号
3
输入车辆皮卡2租用的时间(单位为天)
33
已为您保存:皮卡2   天数为:33.0
请输入第4车的序号
4
输入车辆皮卡3租用的时间(单位为天)
4
已为您保存:皮卡3   天数为:4.0
请输入第5车的序号
5
输入车辆皮卡4租用的时间(单位为天)
5
已为您保存:皮卡4   天数为:5.0
您的账单:
***可载人的车有:
皮卡0    小车1    皮卡2    皮卡3    皮卡4    共载人:15人
***可载货的车有:
皮卡0    皮卡2    皮卡3    皮卡4    共载货:0.04吨
***组车总价格:535.8元
打开App,阅读手记
5人推荐
发表评论
随时随地看视频慕课网APP

热门评论

HuoCar 类错了吧?

1、CAR类下面没有抽象函数,那么为什么将CAR类定义成抽象类,?

2、CAR类下面的属性为什么加final关键字,这样它的属性就变成常量了,只能赋值一次,可是在调用构造函数时,会多次赋值,这样就矛盾了吧,这里我不太明白,麻烦请指点下。且常量命名应该全部用大写。

3、CAR类属性并没有PRIVATE关键字,为什么要用get函数?

4、HUOCAR类的代码传错了,传成MAIN函数了。

5、 MAIN函数下content.canSavePerosonNumber>0? 这句代码里的>0?是什么意思啊?

我比较关注第二条和第五条,麻烦请解释下。

有问题在这里说,我会来看的

查看全部评论