手记

我写的Java入门第二季那个答答租车系统(感谢慕友提的意见,改了一下)

感谢两位慕友提的意见,加了一点进去,但还是感觉对这个程序的完善没有做好,由于自己的水平有限,所以只能做到这个地步了

//Car父类(加了一个返回车名的方法)

public class Car{
    private String type;
    private float rentmoney;
    public Car(String type, float rentmoney) {
        this.type = type;
        this.rentmoney = rentmoney;
    }

    public float Sum(int day) {
        return day * this.rentmoney;
    }

    public String ReturnType() {
        return this.type+" ";
    }
}

//Truck类(特有属性 载货量burden,所以加了一个返回这个载货量的方法)

public class Truck extends Car{
    private float burden;
    public Truck(String type, float rentmoney, float burden) {
        super(type, rentmoney);
        this.burden=burden;
    }

    public float ReturnBurden() {
        return this.burden;
    }

}

//Bus类(特有属性 载客量 busload,加了个返回这个属性的方法)

public class Bus extends Car{
    private int busload;
    public Bus(String type, float rentmoney, int busload) {
        super(type, rentmoney);
        this.busload=busload;
    }

    public int ReturnBusload() {
        return this.busload;
    }
}

//PickUp类(特有属性 载客量,载货量,也加了返回这两个属性的方法)

public class PickUp extends Car{
    private int busload;
    private float burden;
    public PickUp(String type, float rentmoney, int busload, float burden) {
        super(type, rentmoney);
        this.busload=busload;
        this.burden=burden; 
    }

    public int ReturnBusload() {
        return this.busload;
    } 

    public float ReturnBurden() {
        return this.burden;
    }
}

//包含主函数的测试类(

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int num=0, per=0, flag=0;
        float sum=0, huo=0;
        String person="", huowu="", choice="", se="";
        System.out.println("欢迎使用答答租车系统!");
        System.out.println("租车请输入1 输入其它字符将退出程序");
        Scanner input=new Scanner(System.in);
        choice=input.next();
        if ("1".equals(choice)) {
            System.out.println("以下是所有你可租的车辆:");
            System.out.println("序号   汽车名称   租金\t       容量");
            System.out.println("1.   奥迪A4     500元/天\t     载人:4人");
            System.out.println("2.   马自达6    400元/天\t     载人:4人");
            System.out.println("3.   皮卡雪6    450元/天\t     载人:4人  载货:2吨");
            System.out.println("4.   金龙            800元/天\t     载人:20人");
            System.out.println("5.   松花江        400元/天\t     载货:4吨");
            System.out.println("6.   依维柯        1000元/天     载货:20吨");
            System.out.println("请输入您要租汽车的数量:(仅能输入整数!)");
            num=input.nextInt();
            for (int i=0; i<num; i++) {
                System.out.println("请输入第"+(i+1)+"辆车的序号:");
                se=input.next();
                switch(se) {
                case "1":
                    Bus bus=new Bus("奥迪A4", 500, 4); 
                    sum += bus.Sum(1);
                    per += bus.ReturnBusload();
                    person +=  bus.ReturnType();
                    break;
                case "2":
                    Bus bus1=new Bus("马自达6", 400, 4); 
                    sum += bus1.Sum(1);
                    per += bus1.ReturnBusload();
                    person += bus1.ReturnType();
                    break;
                case "3":
                    PickUp pika=new PickUp("皮卡雪", 450, 4, 2); 
                    per += pika.ReturnBusload();
                    huo += pika.ReturnBurden();
                    sum += pika.Sum(1);
                    person += pika.ReturnType();
                    huowu += pika.ReturnType();
                    break;
                case "4":
                    Bus bus2=new Bus("金龙", 800, 20);
                    per += bus2.ReturnBusload();
                    sum += bus2.Sum(1);
                    person += bus2.ReturnType();
                    break;
                case "5":
                    Truck truck=new Truck("松花江", 400, 4); 
                    huo += truck.ReturnBurden();
                    sum += truck.Sum(1);
                    huowu += truck.ReturnType();
                    break;
                case "6":
                    Truck truck1=new Truck("依维柯", 1000, 20); 
                    sum += truck1.Sum(1);
                    huo += truck1.ReturnBurden();
                    huowu += truck1.ReturnType();
                    break;
                default:
                    flag++;
                    System.out.println("很抱歉,您本次的输入有误,系统将默认这次序号为空,请下次注意");
                    continue;
                }   
            }
            System.out.println("请输入租车天数:");
            int day=input.nextInt();
            sum *= day;
            System.out.println("您的账单:");
            if (flag!=0)
                System.out.println("注:由于您有"+flag+"次输入有误,故只显示您输入正确的订单");
            System.out.println("***可载人的车有:");
            if (per == 0)
                System.out.println();
            else 
                System.out.println(person+" 共载人:"+per+"人");
            System.out.println("***载货的车有:");
            if (huo == 0)
                System.out.println();
            else 
                System.out.println(huowu+"共载货:"+huo+"吨");
            System.out.println("***租车总价格:"+sum+"元");
        }
        System.out.println("感谢您的使用!");
        input.close();
    }

}

主要是动了测试类那里,但动的不多,不好意思

2人推荐
随时随地看视频
慕课网APP

热门评论

可以加一点错误处理,万一我进界面输入2,3,4,或者是字母,这就很尴尬了……输入0还可以弹界面出来。

还可以多用用英文,注意驼峰命名。

其实完成得很不错。赞一个!!希望你成为大神!

你能告诉我这个程序真的做完了吗?没有任何错误处理的程序真的靠谱吗

这是输出界面,输出效果是差不多的http://img.mukewang.com/5790a8af00012e6a06040695.jpg

查看全部评论