Java汽车租赁系统面向对象+数组

知识储备:变量、数据类型、选择结构、循环结构、数组 、面向对象

系统概述:某汽车租赁公司出租多种轿车和客车,出租费用以日为单位计算。出租车型及信息如下表所示。

优化设计

 

 代码如下:

第一阶段:创建并完成汽车类

public abstract class Car {
    private String carId;
    private  String stand;
    private  double rents;

    public Car() {
    }

    public Car(String carId, String stand, double rents) {
        this.carId = carId;
        this.stand = stand;
        this.rents = rents;
    }
    public abstract double rent(int day);
    /**
     * 获取
     * @return carId
     */
    public String getCarId() {
        return carId;
    }

    /**
     * 设置
     * @param carId
     */
    public void setCarId(String carId) {
        this.carId = carId;
    }

    /**
     * 获取
     * @return stand
     */
    public String getStand() {
        return stand;
    }

    /**
     * 设置
     * @param stand
     */
    public void setStand(String stand) {
        this.stand = stand;
    }

    /**
     * 获取
     * @return rents
     */
    public double getRents() {
        return rents;
    }

    /**
     * 设置
     * @param rents
     */
    public void setRents(double rents) {
        this.rents = rents;
    }

    public String toString() {
        return "Car{carId = " + carId + ", stand = " + stand + ", rents = " + rents + "}";
    }
}

第二阶段:创建并完成轿车类

public class Limousine extends Car{
    /*
    * 轿车类
    * */
    private String type;

    public Limousine(String type) {
        this.type = type;
    }

    public Limousine(String carId, String stand, double rents, String type) {
        super(carId, stand, rents);
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @Override
    public double rent(int day) {
        double sum=0;
        if(day>7&&day<=30){
            sum=this.getRents()*day*0.9;
            return  sum;
        }
        else if(day>30&&day<=150){
            sum=this.getRents()*day*0.8;
            return  sum;
        }
        else if(day>150){
            sum=this.getRents()*day*0.7;
            return  sum;
        }
        return  sum;
    }
}

第三阶段:创建并完成客车类

public class Passenger extends Car{
    /*
    * 客车类
    * */
    private int seat;

    public Passenger(int seat) {
        this.seat = seat;
    }

    public Passenger(String carId, String stand, double rents, int seat) {
        super(carId, stand, rents);
        this.seat = seat;
    }

    public int getSeat() {
        return seat;
    }

    public void setSeat(int seat) {
        this.seat = seat;
    }

    @Override
    public double rent(int day) {
        double sum=0;
        if (day>=3&&day<7){
            sum=this.getRents()*day*0.9;
            return  sum;
        }
        else if(day>=7&&day<30){
            sum=this.getRents()*day*0.8;
            return  sum;
        }
        else if(day>=30&&day<150){
            sum=this.getRents()*day*0.7;
            return  sum;
        }
        else if(day>=150) {
            sum=this.getRents()*day*0.5;
            return  sum;
        }
        return sum;
    }
}

第四阶段:创建汽车服务类

import java.util.Scanner;
public class CarRental {
    /*
    * 实现汽车的数据,展示
    *
    * */
    Limousine[] limousines = new Limousine[4];
    Passenger[] Passenger = new Passenger[4];
    Scanner in= new Scanner(System.in);
//    初始化存储数据
    public  void  init(){
        limousines[0]=new Limousine("京NY28588","宝马",800,"X6");
        limousines[1]=new Limousine("京CNY3284","宝马",600,"550i");
        limousines[2]=new Limousine("京NT37465","别克",300,"林荫大道");
        limousines[3]=new Limousine("京NT96968","别克",600,"GL8");
        Passenger[0]=new Passenger("京6566754","金杯",800,16);
        Passenger[1]=new Passenger("京8696997","金龙",800,16);
        Passenger[2]=new Passenger("京9696996","金杯",1500,34);
        Passenger[3]=new Passenger("京8696998","金龙",1500,34);
    }
//    通过开始模块
    public void  start(){
        System.out.println("**********欢迎光临租赁公司**********");
        System.out.println("1-轿车\t2-客车");
        System.out.print("请选择您要租赁的汽车类型:");
        int type = in.nextInt();
        // 如果输入1和2以外的数字,则重新输入
        while (type < 1 || type > 2) {
            System.out.print("输入错误,请重新选择您要租赁的汽车类型:");
            type = in.nextInt();
        }
        if (type == 1) {// 用户选择租轿车
            // 租轿车的方法
            car();
        } else if (type == 2) {// 用户选择租客车
            // 租客车的方法
            bus();
        }

    }
//  创建寻找汽车的一个方法并返回汽车的租金数
public  void ren(String brand,String type,int days){
    for (int i = 0; i < limousines.length; i++) {
        if(limousines[i].getStand().equals(brand)&&limousines[i].getType().equals(type)){
            System.out.println("分配给您的汽车牌号是:"+limousines[i].getCarId());
            System.out.println("您需要支付的租赁费用是:"+limousines[i].rent(days));
        }
    }
}
// 创建寻找客车的一个方法并返回客车的租金数
public  void  Passengerent(String brand,int seat,int days){
    for (int i = 0; i < Passenger .length; i++) {
        if(Passenger[i].getStand().equals(brand)&&Passenger[i].getSeat()==seat){
            System.out.println("分配给您的汽车牌号是:"+Passenger[i].getCarId());
            System.out.println("您需要支付的租赁费用是:"+Passenger[i].rent(days));
        }
    }
}

   //汽车的实现
    public  void car(){
        String brand = "";
        String type = "";
        System.out.print("请选择您要租赁的轿车品牌:1-别克\t2-宝马");
        int chooseBrand = in.nextInt();
        // 如果输入1和2以外的数字,则重新输入
        while (chooseBrand < 1 || chooseBrand > 2) {
            System.out.print("输入错误,请重新选择您要租赁的轿车品牌:");
            chooseBrand = in.nextInt();
        }
        // 用户选择别克
        if (chooseBrand == 1) {
            // 轿车品牌赋值为别克
            brand = "别克";
            System.out.print("请选择您要租赁的汽车型号:1-林荫大道\t2-GL8");
            int chooseType = in.nextInt();
            // 如果输入1和2以外的数字,则重新输入
            while (chooseType < 1 || chooseType > 2) {
                System.out.print("输入错误,请重新选择您要租赁的轿车型号:");
                chooseType = in.nextInt();
            }
            // 如果用户选择别克,则给轿车型号赋值为林荫大道;如果用户选择别克,则给轿车型号赋值为GL8;
            type = chooseType == 1 ? "林荫大道" : "GL8";
            System.out.print("请输入你要租赁的天数");
            int days = in.nextInt();
            ren(brand,type,days);
        }
        // 用户选择宝马
        else if (chooseBrand == 2) {
            // 轿车品牌赋值为宝马
            brand = "宝马";
            System.out.print("请选择您要租赁的汽车类型:1-X6\t2-50i");
            int chooseType = in.nextInt();
            // 如果输入1和2以外的数字,则重新输入
            while (chooseType < 1 || chooseType > 2) {
                System.out.print("输入错误,请重新选择您要租赁的轿车型号:");
                chooseType = in.nextInt();
            }
            // 如果用户选择宝马,则给轿车型号赋值为X6;如果用户选择宝马,则给轿车型号赋值为550i;
            type = chooseType == 1 ? "X6" : "550i";
            System.out.print("请输入你要租赁的天数");
            int days = in.nextInt();
            ren(brand,type,days);
        }
    }

//   客车的实现
    public  void  bus(){
        String brand = "";
        int seat = 0;
        System.out.print("请选择您要租赁的轿车品牌:1-金龙\t2-金杯");
        int chooseBrand = in.nextInt();
        // 如果输入1和2以外的数字,则重新输入
        while (chooseBrand < 1 || chooseBrand > 2) {
            System.out.print("输入错误,请重新选择您要租赁的客车品牌:");
            chooseBrand = in.nextInt();
        }
        // 用户选择别克
        if (chooseBrand == 1) {
            // 轿车品牌赋值为别克
            brand = "金龙";
            System.out.print("请选择您要租赁的客车座位:1-16座\t2-34座");
            int chooseseat = in.nextInt();
            // 如果输入1和2以外的数字,则重新输入
            while (chooseseat < 1 || chooseseat > 2) {
                System.out.print("输入错误,请重新选择您要租赁的轿车型号:");
                chooseseat = in.nextInt();
            }
            // 如果用户选择别克,则给轿车型号赋值为林荫大道;如果用户选择别克,则给轿车型号赋值为GL8;
            seat = chooseseat == 1 ? 16 : 34;
            System.out.print("请输入你要租赁的天数");
            int days = in.nextInt();
            Passengerent(brand,seat,days);
        }
        // 用户选择客车
        else if (chooseBrand == 2) {
            brand = "金杯";
            System.out.print("请选择您要租赁的客车座位:1-16座\t2-34座");
            int chooseseat = in.nextInt();
            // 如果输入1和2以外的数字,则重新输入
            while (chooseseat < 1 || chooseseat > 2) {
                System.out.print("输入错误,请重新选择您要租赁的轿车型号:");
                chooseseat = in.nextInt();
            }
            // 如果用户选择别克,则给轿车型号赋值为林荫大道;如果用户选择别克,则给轿车型号赋值为GL8;
            seat = chooseseat == 1 ? 16 : 34;
            System.out.print("请输入你要租赁的天数");
            int days = in.nextInt();
            Passengerent(brand,seat,days);
        }
    }
}

第五阶段:创建测试类

import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (true){
        //        实现CarRental
        CarRental carRental = new CarRental();
        carRental.init();
        carRental.start();
        System.out.print("请是否继续操作0继续1停止");
            int anInt = scanner.nextInt();
            if(anInt==1){
                break;
            }
            else {
                continue;
            }
        }
    }
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值