手记

答答租车系统(Java入门第二季练习)

抽象父类Car,包含四个属性(price价格,burden载货量,busload载客量,name车名),一个描述车的属性的抽象方法。
其中,货车类(Truck类,载货量),客车类(Coach类,载客量),皮卡类(Pickup类,载货载人)三个类继承抽象父类Car。
抽象父类代码:

package com.car;

public abstract class Car {

    private int price;//车的价格
    private int burden;//载货量
    private int busload;//载客量
    private String name;//车名

    //定义一个描述车的属性抽象方法
    public abstract void CarAttribute();

    public void setPrice(int Price){
        this.price = Price;
    }
    public int getPrice(){
        return price;
    }

    public int getBurden() {
        return burden;
    }

    public void setBurden(int burden) {
        this.burden = burden;
    }

    public int getBusload() {
        return busload;
    }

    public void setBusload(int busload) {
        this.busload = busload;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

皮卡车类:

package com.car;

/*
 * 皮卡车*/
public class Pickup extends Car{

    public Pickup(String name, int price, int burden, int busload){

        this.setName(name);
        this.setPrice(price);
        this.setBurden(burden);
        this.setBusload(busload);

    }
    @Override
    public void CarAttribute() {
        // TODO 自动生成的方法存根
        System.out.println(getName() + "\t" + getPrice()+ "元/天" + "\t载货量:" + 
        getBurden() + "吨,载人量:" + getBusload() + "人");
    }
}

货车类:

package com.car;
/*
 * 货车*/
public class Truck extends Car{

    public Truck(String name,int price, int burden){

        this.setName(name);
        this.setPrice(price);
        this.setBurden(burden);
    }

    @Override
    public void CarAttribute() {
        // TODO 自动生成的方法存根
        System.out.println(getName() + "\t" + getPrice() + "元/天" + "\t载货量:" + 
                getBurden() + "吨");
    }

}

客车类:

package com.car;
/*
 * 客车*/
public class Coach extends Car{

    public Coach(String name, int price, int busload){

        this.setName(name);
        this.setPrice(price);
        this.setBusload(busload);
    }

    @Override
    public void CarAttribute() {
        // TODO 自动生成的方法存根
        System.out.println(getName() + "\t" + getPrice()+ "元/天" + "\t载人量:" 
        + getBusload() + "人");
    }
}

主程序入口:

package com.car;

import java.util.Scanner;

public class Main {

    //车的属性集合
    static Car[] car = {new Coach("奥迪A4", 500, 4),
             new Coach("马自达6", 400, 4),
             new Pickup("皮卡雪6", 450, 2, 4),
             new Coach("金龙", 800, 20),
             new Truck("松花江", 400, 4),
             new Truck("依维柯", 1000, 20)};

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        int no = 0;//进入系统选择序号
        int num =0;//租车数量
        for(;;){
            System.out.println("欢迎使用答答租车系统\n您是否要租车:1是 0否"); 
            Scanner input = new Scanner(System.in);
            try{
                no = input.nextInt();
            }catch(Exception e){
                System.out.println("输入错误,请重新输入");
                continue;
            }
            if(no == 1  no == 0){
                switch(no){
                case 0:
                    System.out.println("欢迎下次使用");
                    input.close();
                    break;
                case 1:
                    //汽车价目表
                    System.out.println("您可租车的类型及其价目表:\n"
                            + "序号" + "\t汽车名称" + "\t租金" + "\t容量");

                    for(int i = 0; i < car.length; i++){
                        System.out.print((i + 1) + "\t");
                        car[i].CarAttribute();
                    }
                    //所租汽车
                    System.out.println("请输入要租汽车数量:");
                    num = input.nextInt();
                    Car[] car1 = new Car[num];//租车
                    int[] days = new int[num];//租车天数
                    int NumPrice = 0;//租车总价
                    try{
                        for(int i = 0; i < num; i++){
                            System.out.println("请输入第" + (i+1) + "辆车的序号:");
                            int CarOrderNum = input.nextInt();
                            car1[i] = car[CarOrderNum - 1];
                            System.out.print(car1[i].getName());
                            System.out.println(",租车天数:");
                            days[i] = input.nextInt();
                        }
                    }catch(Exception e){
                        System.out.println("操作异常,退出系统");
                        input.close();
                        break;
                    }
                    //账单
                    System.out.println("-------------------------------------------");
                    System.out.println("账单:");
                    System.out.println("汽车名称" + "\t价格" + "\t所租天数" + "\t总价");
                    for(int i = 0; i < car1.length; i++){
                        System.out.println(car1[i].getName() + "\t" + car1[i].getPrice() +
                                 "\t" + days[i] + "\t" + car1[i].getPrice() * days[i]);
                        NumPrice = NumPrice + (car1[i].getPrice() * days[i]);
                    }
                    System.out.println("-------------------------------------------");
                    System.out.println("共花费金额:" + NumPrice);
                    input.close();
                    break;
                }
            }
            break;
        }
    }

}

运行结果:

欢迎使用答答租车系统
您是否要租车:1是 0否
1
您可租车的类型及其价目表:
序号  汽车名称    租金  容量
1   奥迪A4    500元/天  载人量:4人
2   马自达6    400元/天  载人量:4人
3   皮卡雪6    450元/天  载货量:2吨,载人量:4人
4   金龙  800元/天  载人量:20人
5   松花江 400元/天  载货量:4吨
6   依维柯 1000元/天 载货量:20吨
请输入要租汽车数量:
2
请输入第1辆车的序号:
1
奥迪A4,租车天数:
5
请输入第2辆车的序号:
5
松花江,租车天数:
2
-------------------------------------------
账单:
汽车名称    价格  所租天数    总价
奥迪A4    500 5   2500
松花江 400 2   800
-------------------------------------------
共花费金额:3300
5人推荐
随时随地看视频
慕课网APP