汽车租赁系统(JAVA)

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

 

 

最终实现效果

 

1.首先创建一个父类 (抽象类)

package test6;
//父类
public abstract class Car {
    private String brand;
    private int dayRent;
    private String id;

    public Car() {
    }

    public Car(String brand, int dayRent, String id) {
        this.brand = brand;
        this.dayRent = dayRent;
        this.id = id;
    }

    public abstract double getMoney(int day,int dayRent);

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int getDayRent() {
        return dayRent;
    }

    public void setDayRent(int dayRent) {
        this.dayRent = dayRent;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

2.创建一个子类,轿车类,因为计算租金不一样,所以我们要重写父类的抽象方法

package test6;
//子类  轿车
public class SaloonCar extends Car{
    private String model;

    public SaloonCar() {
        super();
    }

    @Override
    public double getMoney(int day,int dayRent) {
        double rent=0;
        if (day>0){
            if (day>0&&day<=7){
                rent=day*dayRent;
            }
            if (day>7&&day<=30){
                 rent = day*dayRent*0.9;
            } else if (day>=30&&day<=150) {
                 rent = day*dayRent*0.8;
            } else if (day>150) {
                 rent = day*dayRent*0.7;
            }
        }else {
            System.out.println("输入天数有误,请重新输入天数");
        }
        return rent;
    }

    public SaloonCar(String brand,int dayRent,String id,String model) {
        super(brand,dayRent,id);
        this.model = model;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }
}

3.然后再创建一个客车类

package test6;
//子类   客车
public class PassengerCar extends Car{
    private int seatNumber;

    public PassengerCar() {
    }

    @Override//重写父类的抽象方法
    public double getMoney(int day ,int dayRent) {
        double rent = 0;
        if (day>0){
            if (day>0&&day<3){
                rent=day*dayRent;
            }
            if (day>=3&&day<7){
                 rent = day*dayRent*0.9;
            } else if (day>=7&&day<30) {
                 rent = day*dayRent*0.8;
            } else if (day>=30&&day<150) {
                 rent = day*dayRent*0.7;
            } else if (day>=150) {
                 rent = day*dayRent*0.6;
            }
        }else {
            System.out.println("输入天数有误,请重新输入天数");
        }
        return rent;

    }

    public PassengerCar(String brand,int dayRent,String id,int seatNumber) {
        super(brand,dayRent,id);
        this.seatNumber = seatNumber;
    }

    public int getSeatNumber() {
        return seatNumber;
    }

    public void setSeatNumber(int seatNumber) {
        this.seatNumber = seatNumber;
    }
}

4.最后再创建一个测试类

package test6;

import java.util.ArrayList;
import java.util.Scanner;

public class TestCar {
    public static void main(String[] args) {
        ArrayList<SaloonCar> list = new ArrayList<>();
        SaloonCar s1=new SaloonCar("宝马",800,"(京NY28588)","宝马55i");
        SaloonCar s2=new SaloonCar("宝马",600,"(京CNY3284)","宝马X6");
        SaloonCar s3=new SaloonCar("别克",300,"(京NT37465)","别克林荫大道");
        SaloonCar s4=new SaloonCar("别克",300,"(京NT96968)","别克GL8");

        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);

        ArrayList<PassengerCar> list1 = new ArrayList<>();
        PassengerCar p1=new PassengerCar("金杯",800,"(京6566754)",16);
        PassengerCar p2=new PassengerCar("金龙",800,"(京86696997)",16);
        PassengerCar p3=new PassengerCar("金杯",1500,"(京9696996)",32);
        PassengerCar p4=new PassengerCar("金龙",1500,"(京8696998)",32);

        list1.add(p1);
        list1.add(p2);
        list1.add(p3);
        list1.add(p4);

            Scanner sc=new Scanner(System.in);
            System.out.println("****************欢迎来到汽车租赁公司*****************");
            System.out.println("请选择你要租赁的汽车类型:1、轿车  2、客车");
            String choose = sc.next();
            if (choose.equals("1")){//轿车
               int index = chooseSaloonCar();//调用方法得到轿车对应的索引
                SaloonCar s=list.get(index);
                System.out.println("请输入租赁的天数:");
                int day=sc.nextInt();
                double rent = s.getMoney(day,s.getDayRent());
                System.out.println("分配给您的汽车牌号是:"+s.getId());
                System.out.println("您需要支付的租赁费用是:"+rent+"元");
            } else if (choose.equals("2")) {//客车
               int index = choosePassengerCarIndex();//调用方法得到轿车对应的索引
               PassengerCar p=list1.get(index);
                System.out.println("请输入租赁的天数:");
                int day=sc.nextInt();
                double rent = p.getMoney(day,p.getDayRent());
                System.out.println("分配给您的汽车牌号是:"+p.getId());
                System.out.println("您需要支付的租赁费用是:"+rent+"元");
            }else {
                System.out.println("输入错误,没有这个选项");
            }


    }
    //定义一个方法用于返回轿车对应的索引
    public static int chooseSaloonCar(){
        Scanner sc=new Scanner(System.in);
        String choose="";
        System.out.println("请选择你要租赁的汽车品牌:1、别克   2、宝马");
        choose=sc.next();
        if (choose.equals("1")){//别克
            System.out.println("请选择汽车品牌:1、别克林荫大道   2、别克GL8");
            choose=sc.next();
            if (choose.equals("1")){
                return 2;
            }else if (choose.equals("2")){
                return 3;
            }else {
                System.out.println("输入错误,没有这个选项");
            }

        } else if (choose.equals("2")) {//宝马
            System.out.println("请选择汽车品牌:1、宝马X6   2、宝马550i");
            choose=sc.next();
            if (choose.equals("1")){
                return 1;
            } else if (choose.equals("2")) {
                return 0;
            }
        }else {
            System.out.println("输入错误,没有这个选项");
        }
        return -1;
    }



    //定义一个方法用于返回客车对应的索引
    public static int choosePassengerCarIndex(){
        Scanner sc=new Scanner(System.in);
        String choose=""; //选择汽车
        System.out.println("请选择你要租赁的汽车品牌:1、金杯   2、金龙");
        choose=sc.next();
        if (choose.equals("1")){//金杯
            System.out.println("请选择你要租赁的汽车座位数:1、16座   2、32座");
            choose=sc.next();
            if (choose.equals("1")){
                return 0;
            } else if (choose.equals("2")) {
                return 2;
            }else {
                System.out.println("输入错误,没有这个选项");
            }
        } else if (choose.equals("2")) {//金龙
            System.out.println("请选择你要租赁的汽车座位数:1、16座   2、32座");

            choose=sc.next();
            if (choose.equals("1")){
                return 1;
            }else if (choose.equals("2")){
                return 3;
            }else {
                System.out.println("输入错误,没有这个选项");
            }
        }
        return -1;
    }

}

运行效果如下图

 

 

  • 10
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值