zoukankan      html  css  js  c++  java
  • Java代码~~汽车租赁系统

    租车信息:

    输出结果:

    代码:

    1、先定义抽象类(汽车类:Moto)

     1 package cn.aura.demo01;
     2 
     3 public abstract class Moto {
     4     //公共属性
     5     private String id;//车牌号
     6     private String brand;//品牌
     7     private int preRent;//日租金
     8     //构造方法
     9     public Moto(String id, String brand, int preRent) {
    10         this.id = id;
    11         this.brand = brand;
    12         this.preRent = preRent;
    13     }
    14     //set和get方法
    15     public String getId() {
    16         return id;
    17     }
    18     public void setId(String id) {
    19         this.id = id;
    20     }
    21     public String getBrand() {
    22         return brand;
    23     }
    24     public void setBrand(String brand) {
    25         this.brand = brand;
    26     }
    27     public int getPreRent() {
    28         return preRent;
    29     }
    30     public void setPreRent(int preRent) {
    31         this.preRent = preRent;
    32     }
    33     //计算租金方法
    34     public abstract double  calRent(int days);
    35 }

    2.定义轿车类继承汽车类

     1 package cn.aura.demo01;
     2 /**
     3  * 轿车类
     4  */
     5 public class Car extends Moto{
     6     //私有属性
     7     private String type;//型号
     8     //set和get方法
     9     public String getType() {
    10         return type;
    11     }
    12     public void setType(String type) {
    13         this.type = type;
    14     }
    15     //构造方法
    16     public Car(String id, String brand, String type,int preRent) {
    17         super(id, brand, preRent);
    18         this.type = type;
    19     }
    20     
    21     //重写计算租金的算法
    22     @Override
    23     public double calRent(int days) {
    24         if(days >0 && days <= 7) {
    25             //days小于7天,不打折
    26             return getPreRent()*days;
    27         }else if (days > 7 && days <= 30) {
    28             //days大于7天,9折
    29             return getPreRent()*days*0.9;
    30         }else if (days > 30 && days <= 150) {
    31             //days大于30天,8折
    32             return getPreRent()*days*0.8;
    33         }else if (days > 150) {
    34             //days大于150天,7折
    35             return getPreRent()*days*0.7;
    36         }
    37         return 0;
    38     }
    39 }

    3.定义客车类

     1 package cn.aura.demo01;
     2 /**
     3  * 客车类
     4  */
     5 public class Bus extends Moto{
     6     //私有属性
     7     private int seatCount;//座位数
     8     //set和get方法
     9     public int getSeatCount() {
    10         return seatCount;
    11     }
    12     public void setSeatCount(int seatCount) {
    13         this.seatCount = seatCount;
    14     }
    15     //构造方法
    16     public Bus(String id, String brand, int seatCount, int preRent) {
    17         super(id, brand, preRent);
    18         this.seatCount = seatCount;
    19     }
    20     //重写计算租金的算法
    21     @Override
    22     public double calRent(int days) {
    23         if(days >0 && days <3) {
    24             //days小于3天,不打折
    25             return getPreRent()*days;
    26         }else if (days >= 3 && days < 7) {
    27             //days大于3天,9折
    28             return getPreRent()*days*0.9;
    29         }else if (days >= 7 && days <30) {
    30             //days大于3天,8折
    31             return getPreRent()*days*0.8;
    32         }else if (days >= 30 && days <150) {
    33             //days大于30天,7折
    34             return getPreRent()*days*0.7;
    35         }else if (days >= 150) {
    36             //days大于150天,6折
    37             return getPreRent()*days*0.6;
    38         }
    39         return 0;
    40     }
    41 }

    4.定义汽车业务类

     1 package cn.aura.demo01;
     2 /**
     3  * 定义汽车业务类
     4  */
     5 public class MotoOperation {
     6     //初始化数组
     7     public static Moto[] motos = new Moto[8];
     8     //创建8个汽车对象
     9     public  void init() {
    10         motos[0] = new Car("京NY28558", "宝马", "X6", 800);
    11         motos[1] = new Car("京CNY3284", "宝马", "550i", 600);
    12         motos[2] = new Car("京NT37465", "别克", "林荫大道", 300);
    13         motos[3] = new Car("京NT96968", "别克", "GL8", 600);
    14         motos[4] = new Bus("京6566754", "金杯", 16, 800);
    15         motos[5] = new Bus("京8696997", "金龙", 16, 800);
    16         motos[6] = new Bus("京9696996", "金杯", 34, 1500);
    17         motos[7] = new Bus("京8696998", "金龙", 34, 1500);
    18     }
    19     //租赁汽车的方法
    20     public  Moto motoLeaseOut(String brand,String type,int seat) {
    21          //for循环遍历数组motos
    22          for(int i=0;i<motos.length;i++){
    23              if (brand.equals(motos[i].getBrand())) {
    24                 // 判断Moto类的motos[i]的类型是否和Car一样
    25                 if (motos[i] instanceof Car) {
    26                     // 强转成小汽车Car
    27                     Car car = (Car) motos[i];
    28                     if (type.equals(car.getType())) {
    29                         return car;
    30                     }
    31                 }
    32                 if(motos[i] instanceof Bus){
    33                     // 强转成大客车Bus
    34                     Bus bus = (Bus) motos[i];
    35                     if (seat == bus.getSeatCount()) {
    36                         return bus;
    37                     }
    38                 }
    39             }
    40           
    41          }
    42          //如果没有就返回空
    43          return null;
    44     }
    45 }

    5.定义测试类

     1 package cn.aura.demo01;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 汽车租赁管理类
     7  */
     8 public class TestRent {
     9     //主函数
    10     public static void main(String[] args) {
    11         MotoOperation motoOperation = new MotoOperation();
    12         // 初始化汽车
    13         motoOperation.init();
    14         //设置一个空容器
    15         Moto moto = null;
    16         // 提示信息
    17         System.out.println("***********欢迎光临腾飞汽车租赁公司***********");
    18         System.out.println("1、轿车           2、客车");
    19         System.out.println("请输入你要租赁的汽车类型:");
    20         // 获取用户输入
    21         Scanner scanner = new Scanner(System.in);
    22         int flag = scanner.nextInt();
    23         if (flag == 1) {
    24             //轿车
    25             System.out.println("请选择你要租赁的汽车品牌:1、别克   2、宝马");
    26             int brand = scanner.nextInt();
    27             if (brand == 1) {
    28                 System.out.println("请选择你要租赁的汽车类型:1、林荫大道  2、GL8");
    29                 int type = scanner.nextInt();
    30                 if (type == 1) {
    31                     moto = motoOperation.motoLeaseOut("别克", "林荫大道", 4);
    32                 } else if (type == 2) {
    33                     moto = motoOperation.motoLeaseOut("别克", "GL8", 4);
    34                 }
    35             } else if (brand == 2) {
    36                 System.out.println("请选择你要租赁的汽车类型:1、X6  2、550i");
    37                 int type = scanner.nextInt();
    38                 if (type == 1) {
    39                     moto = motoOperation.motoLeaseOut("宝马", "X6", 4);
    40                 } else if (type == 2) {
    41                     moto = motoOperation.motoLeaseOut("别克", "550i", 4);
    42                 }
    43             }
    44         } else if (flag == 2) {
    45             //客车
    46             System.out.println("请选择你要租赁的汽车品牌:1、金龙   2、金杯");
    47             int brand = scanner.nextInt();
    48             if (brand == 1) {
    49                 System.out.println("请选择你要租赁的汽车座位数:1、16座  2、34座");
    50                 int type = scanner.nextInt();
    51                 if (type == 1) {
    52                     moto = motoOperation.motoLeaseOut("金龙", "", 16);
    53                 } else if (type == 2) {
    54                     moto = motoOperation.motoLeaseOut("金龙", "", 34);
    55                 }
    56             } else if (brand == 2) {
    57                 System.out.println("请选择你要租赁的汽车座位数:1、16座  2、34座");
    58                 int type = scanner.nextInt();
    59                 if (type == 1) {
    60                     moto = motoOperation.motoLeaseOut("金杯", "", 16);
    61                 } else if (type == 2) {
    62                     moto = motoOperation.motoLeaseOut("金杯", "", 34);
    63                 }
    64             }
    65         }
    66         //客户汽车匹配完成
    67         if (moto != null) {
    68             // 获取用户租车天数
    69             System.out.println("请输入您的租车天数:");
    70             int days = scanner.nextInt();
    71             // 计算租车钱
    72             double money = moto.calRent(days);
    73             System.out.println("分配给您的汽车牌号是:" + moto.getId());
    74             System.out.println("您需要支付的租赁费用是:" + money + "元");
    75         }else {
    76             System.out.println("很抱歉先生:当前的公司内,暂无您要的汽车类型!请重新选择!");
    77         }
    78         
    79     }
    80         
    81 
    82 }
  • 相关阅读:
    Winform开发框架的业务对象统一调用方式
    淘宝API开发系列---阿里.聚石塔.开放平台的使用
    基于MVC4+EasyUI的Web开发框架形成之旅--权限控制
    Winform开发框架之附件管理应用
    Winform开发框架主界面设计展示
    基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作
    基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍
    基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用
    基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
    在Winform开发框架中,利用DevExpress控件实现数据的快速录入和选择
  • 原文地址:https://www.cnblogs.com/qjc-hll-520/p/11934845.html
Copyright © 2011-2022 走看看