汽车租赁系统

  • 一、使用技术
  • 二、实现功能
  • 2.1 汽车租赁信息表如下
  • 2.2 类和属性
  • 三、运行效果图
  • 四、实现的代码
  • 4.1 Cars汽车类(父类)
  • 4.2 Bus客车类(子类)
  • 4.3 SaloonCar轿车类(子类)
  • 4.4 carBusiness汽车业务类
  • 4.5 CarRentalSystem汽车租赁管理类
  • 五、运行结果
  • Java入门级学习指南

一、使用技术

Java SE

二、实现功能

使用集合,面向对象的知识实现一个汽车租赁系统

2.1 汽车租赁信息表如下

Java租车 java租车类和对象系统报告_Java

2.2 类和属性

Java租车 java租车类和对象系统报告_父类_02

三、运行效果图

Java租车 java租车类和对象系统报告_父类_03


Java租车 java租车类和对象系统报告_java_04

四、实现的代码

4.1 Cars汽车类(父类)

//汽车类 父类:车牌号、品牌、日租金
public abstract class Cars {

    private  String id;
    private String type;
    private int dayMoney;
    
    //计算总租金的方法
    public abstract void getMoney(int dayNum);
    
    //无参构造方法
    public Cars() {
    }
    
    //带参构造方法
    public Cars(String id, String type, int dayMoney) {
        this.id = id;
        this.type = type;
        this.dayMoney = dayMoney;
    }
    
    public String getId() {
        return id;
    }

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

    public String getType() {
        return type;
    }

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

    public int getDayMoney() {
        return dayMoney;
    }

    public void setDayMoney(int dayMoney) {
        this.dayMoney = dayMoney;
    }
}

4.2 Bus客车类(子类)

//客车类:车牌号、品牌、日租金、座位数
public class Bus extends Cars {

    //座位数
    private String seatNum;
    
    //无参构造方法
    public Bus() {
    }

    //带参构造方法
    public Bus(String id, String type, int dayMoney, String seatNum) {
        super(id, type, dayMoney);
        this.seatNum = seatNum;
    }
    
      //重写父类计算租金的方法:根据自己的计算租金的规则
    @Override
    public void getMoney(int dayNum) {
     double money=0;
     money=dayNum*this.getDayMoney();
     if (dayNum>=150){
         money*=0.6;
     }else if (dayNum>=30){
         money*=0.7;
     }else if (dayNum>=7){
         money*=0.8;
     }else if (dayNum>=3){
         money*=0.9;
     }
        System.out.println("您需要支付的租赁费用是:"+money+"元。");
    }
  

    public String getSeatNum() {
        return seatNum;
    }

    public void setSeatNum(String seatNum) {
        this.seatNum = seatNum;
    }
}

4.3 SaloonCar轿车类(子类)

//轿车类:车牌号、品牌、日租金、型号
public class jiaoCar extends Cars {

    //型号
    private String brand;

    //无参构造方法
    public jiaoCar() {
    }

    //有参构造方法
    public jiaoCar(String id, String type, int dayMoney, String brand) {
        super(id, type, dayMoney);
        this.brand = brand;
    }
    //重写父类计算租金的方法:根据自己的计算租金的规则
    @Override
    public void getMoney(int dayNum) {
        double money=0;
        money=dayNum*this.getDayMoney();
        if (dayNum>150){
            money*=0.7;
        }else if (dayNum>30){
            money*=0.8;
        }else if (dayNum>=7){
            money*=0.9;
        }
        System.out.println("您需要支付的租赁费用是:"+money+"元。");
    }

    public jiaoCar(String brand) {
        this.brand = brand;
    }

    public String getBrand() {
        return brand;
    }

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

4.4 carBusiness汽车业务类

import java.util.LinkedList;

//汽车业务类
public class carBusiness {

    //1.创建LinkedList集合并赋值
    public   LinkedList<Cars> carsList = new LinkedList();
    public void init(){
        carsList.add(new jiaoCar("京NY28588","宝马",800,"X6"));
        carsList.add(new jiaoCar("京CNY3284","宝马",600,"550i"));
        carsList.add(new jiaoCar("京NT37465","别克",300,"林荫大道"));
        carsList.add(new jiaoCar("京NT96968","别克",600,"GL8"));
        carsList.add(new Bus("京6566754","金杯",800,"16座"));
        carsList.add(new Bus("京8696997","金龙",800,"16座"));
        carsList.add(new Bus("京9696996","金杯",1500,"34座"));
        carsList.add(new Bus("京8696998","金龙",1500,"34座"));
    }
    
    //2.查找租赁汽车的方法
    public Cars find(String pingPai,String type,String seatNum) {
        Cars moto=null;
        for(Cars mymoto:carsList) {
            if(mymoto instanceof jiaoCar) {
                jiaoCar cat=(jiaoCar)mymoto;
                //轿车
                if(cat.getType().equals(pingPai)&&cat.getBrand().equals(type)) {
                    moto=cat;
                    break;
                }
            }else if(mymoto instanceof Bus) {
                Bus bus=(Bus)mymoto;
                //客车
                if(bus.getType().equals(pingPai)&&bus.getSeatNum()==(seatNum)) {
                    moto=bus;
                    break;
                }
            }
        }
        return moto;
    }
}

4.5 CarRentalSystem汽车租赁管理类

import java.util.Scanner;
//汽车租赁管理类
public class CarRentalSystem {
    public static void main(String[] args) {

        //1.创建汽车对象集合并赋值(初始化集合,将8辆车存入集合中)
        carBusiness carBusiness = new carBusiness();
        carBusiness.init();

        //2.创建scanner对象
        Scanner sc = new Scanner(System.in);

        //3.定义用户需要输入的信息
        String pingPai=" ";
        String type=" ";
        String seatNum="";

        //4.系统显示和用户输入
        System.out.println("*********欢迎光临秋名山守望者汽车租赁公司*********");
        System.out.println("1、轿车\t2、客车");
        System.out.print("请选择你要租赁的汽车类型:");
        int choseCarType = sc.nextInt();
        //轿车
        if (choseCarType==1){
            System.out.print("请选择你要租赁的汽车品牌:(1、别克\t2、宝马)");
            int carType = sc.nextInt();
            pingPai=(carType==1)?"别克":"宝马";

            if (carType==1){ //别克
                System.out.print("请选择你要租赁的汽车型号:(1、林荫大道\t2、GL8)");
                int brandNum = sc.nextInt();
                type=(brandNum==1)?"林荫大道":"GL8";
            }else if (carType==2){//宝马
                System.out.print("请选择你要租赁的汽车型号:(1、X6\t2、550i)");
                int brandNum = sc.nextInt();
                type=(brandNum==1)?"X6":"550i";
            }else{
                System.out.println("输入错误!请输入正确的汽车品牌。");
            }

        }else if (choseCarType==2){
            //客车
            System.out.print("请选择你要租赁的汽车品牌:(1、金龙\t2、金杯)");
            int carType = sc.nextInt();
            pingPai=(carType==1)?"金龙":"金杯";
            if (carType==1||carType==2){
                System.out.print("请选择你要租赁的汽车座位数:(1、16座\t2、34座)");
                int brandNum = sc.nextInt();
                seatNum=(brandNum==1)?"16座":"34座";
            }else{
                System.out.println("输入错误!请输入正确的汽车品牌。");
            }
        }else{
            System.out.println("输入错误!请选择正确的汽车类型。");
        }

        //5定义父类的对象并调用业务类的查找方法,返回汽车牌号
        Cars moto=carBusiness.find(pingPai, type, seatNum);
        System.out.print("请输入您租赁的天数:");
        int dayNum=sc.nextInt();
        System.out.println("分配给您的汽车牌号是:"+moto.getId());

        //6.调用计算总租金的方法,返回汽车租赁的总费用
        moto.getMoney(dayNum);
    }
}

五、运行结果

Java租车 java租车类和对象系统报告_Java租车_05

Java租车 java租车类和对象系统报告_父类_06