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

JAVA第二季(答答租车系统练习)

Bethebestver
关注TA
已关注
手记 1
粉丝 3
获赞 46
首先 创建类

首先创建一个父类

package com.imooc;
    //初始化四个值
public class Car {
    String name;//车辆名称
    int price;//租金
    int number;//人数/吨数
    int weight;//车型总量
}

创建一个货车类

package com.imooc;
//创建一个货车类
public class Cargo extends Car {
    Cargo(String name, int price, int weight) {
        this.name = name;// 要有一个名字
        this.price = price;// 要有价格
        this.weight = weight;// 要有载重量
    }
}

创建一个载人车辆的类

package com.imooc;

//创建一个载人车辆的类
public class MannedCar extends Car {
    MannedCar(String name, int price, int number) {
        this.name = name;// 要有一个名字
        this.price = price;// 要有价格
        this.number = number;// 要有载人数

    }

}

创建一个皮卡的类

package com.imooc;
//创建一个皮卡类
public class Pickup extends Car {
    Pickup(String name,int price ,int weight , int number){
        this.name = name;//要有名字
        this.price = price;//要有价格
        this.number = number;//不仅要有载人量
        this.weight = weight;//还要有载重量
    }
}

逻辑运行的类

    package com.imooc;

    import java.util.*;

    public class Test {

    Car cars[] = { new MannedCar("奥迪A4", 500, 4), new MannedCar("马自达", 400, 4), new Pickup("皮卡雪", 450, 2, 4),
            new MannedCar("金龙", 800, 20), new Cargo("松花江", 400, 4), new Cargo("依维柯", 1000, 20) };
    int count;// 计算数量
    int day;// 计算天数
    int money;// 计算价格
    // 定义一个大数组,原来是cars.length,一旦租车数量大于6就不行
    Car[] rent = new Car[100];
    static Scanner input = new Scanner(System.in);

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test hello = new Test();// 创建一个对象
        System.out.println("是否进入租车系统? 是:1   否:0");
        if (input.nextInt() == 0) {// 验证用户是否要进入租车系统,如果输入0,则结束退出
            input.close();
            System.exit(-1);
        }
        // 输出可以租借的车辆信息
        System.out.println("您可租车的类型及其价目表:");
        System.out.println("序号 汽车名称   租金            容量");
        System.out.println("1.  奥迪A4   500/天      载人:4人");
        System.out.println("2.  马自达       400/天      载人:4人");
        System.out.println("3.  皮卡雪       450/天      载人:4人,载货:2吨");
        System.out.println("4.  金龙           800/天     载人:20人");
        System.out.println("5.  松花江        500/天     载货:4吨");
        System.out.println("6.  依维柯        1000/天   载货:20吨");
        System.out.println("请输入您要租车额数量:");

        int rentNum = input.nextInt();// 记录要租车的数量

        for (int i = 0; i < rentNum; i++) {// 使用for循环来让用户选择车型
            System.out.println("您要租的第" + (i + 1) + "辆车的型号");
            int a = input.nextInt();// 记录每一辆车的型号类型

            while (a < 1 || a > 6) {// 判断用户输入的型号,是否在正常值的范围之内
                System.out.println("您输入的型号有误,请重新输入选择车型");
                int b = input.nextInt();// 记录用户重新输入的值
                a = b;// 将用户重新输入的值赋值给a
            }
            int p = hello.cars[a - 1].price;// 计算出用户输入的车型的价格
            hello.money += p;// 将每一辆的价格记录到类的money变量中
            hello.rent[i] = hello.cars[a - 1];// 将用户租用的车辆信息记录到rent数组当中

        }
        System.out.println("您要租车的天数:");
        int c = input.nextInt();// 记录需要租车的天数
        hello.money *= c;// 将用户选择的车辆金额, * 租用的天数

        System.out.println("您的租车账单为");
        int loadAmount = 0;// 载重量
        int passengerAmount = 0;// 载人量

        for (int i = 0; i < rentNum; i++) {// 使用循环,计算总的载人数量和载重量

            System.out.print(hello.rent[i].name + " ");
            loadAmount += hello.rent[i].weight;
            passengerAmount += hello.rent[i].number;
        }

        System.out.println("您的租车载人数量" + passengerAmount + "人");// 输出总载人数
        System.out.println("您的租车载货量" + loadAmount + "吨");// 输出总载重量
        System.out.println("您的租车总费用:" + hello.money);// 输出总的金额
    }

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

热门评论

说实话你写的不错,我也从你这边得到了很多灵感,不过有个地方我觉得可以改善一下,你说创建一个大数组Car[] rent = new Car[100];我觉得这个不是把长度定义为100就能解决的,因为你设定的流程是一辆一辆的选车,这样说实话效率不高,如果我租几百辆车呢?所以最好是先选择要租的车型,然后每种车型租几辆,这样数组长度就是可控的(不会超过cars.length),选车效率也会更高,在下拙见,看看就好

说实话你写的不错,我也从你这边得到了很多灵感,不过有个地方我觉得可以改善一下,你说创建一个大数组Car[] rent = new Car[100];我觉得这个不是把长度定义为100就能解决的,因为你设定的流程是一辆一辆的选车,这样说实话效率不高,如果我租几百辆车呢?所以最好是先选择要租的车型,然后每种车型租几辆,这样数组长度就是可控的(不会超过cars.length),选车效率也会更高,在下拙见,看看就好

input.nextInt() == 0) {// 验证用户是否要进入租车系统,如果输入0,则结束退出 input.close(); System.exit(-1);
这个判断存在问题 除了输入0其他的都可以进入系统 我认为可以改为!=判断

查看全部评论