今天再给大家分享一个小项目:汽车租赁管理系统。用的是Java语言开发的,代码不多,大概260行左右吧,系统是实现图书的新增图书、删除图书、借阅图书、归还图书、查看图书等简单的功能(后附源代码)!!!

首先展示一下运行界面效果图:运行代码后,会在控制台显示如下界面:




Java 小项目源码阅读 小项目的java源程序_java 小项目


然后让用户选择,如果用户不小心或者误输入了错误的数,会再次让用户进行输入。

当用户输入1后,可以选择要租赁的汽车品牌:

包括别克、宝马两大选项。


Java 小项目源码阅读 小项目的java源程序_java图书馆管理系统源代码_02


当用户继续输入1后,可以选择要租赁的汽车类型,效果如下:


Java 小项目源码阅读 小项目的java源程序_java图书管理系统源代码_03


用户继续输入1后,可以选择要租赁的汽车的天数,效果如下:


Java 小项目源码阅读 小项目的java源程序_java图书馆管理系统源代码_04


用户继续输入要租赁的汽车的天数后,效果如下:

会显示分配给自己的汽车牌号、以及需要支付的租赁费用:


Java 小项目源码阅读 小项目的java源程序_java小项目_05


 同理,初始时,用户输入2后,接着输入租赁的汽车品牌,继续选择租赁的汽车车位数:


Java 小项目源码阅读 小项目的java源程序_java图书管理系统源代码_06


  源代码如下:

1 . 汽车业务类

1 package com.manage; 2  3 import com.vehicles.Bus; 4 import com.vehicles.Car; 5 import com.vehicles.Vehicle; 6  7 //汽车业务类 8 public class VehicleOperation { 9     //汽车数组10     Vehicle[] vehicles = new Vehicle[8];11     12     //汽车信息初始化13     public void init(){14         //向上转型15         vehicles[0] = new Car("京N85764","宝马",800,"X6"); //Vehicle v = new Car();16         vehicles[1] = new Car("京L79654","宝马",600,"550i"); //Vehicle v = new Car();17         vehicles[2] = new Car("京Y96584","别克",400,"林荫大道"); //Vehicle v = new Car();18         vehicles[3] = new Car("京M36589","别克",500,"GL8"); //Vehicle v = new Car();19         vehicles[4] = new Bus("京Y85754","金龙",1000,34); //Vehicle v = new Bus();20         vehicles[5] = new Bus("京U88888","金龙",800,16); //Vehicle v = new Bus();21         vehicles[6] = new Bus("京T66666","金杯",1200,34); //Vehicle v = new Bus();22         vehicles[7] = new Bus("京P90876","金杯",700,16); //Vehicle v = new Bus();23     }24     25     //租车:简单工厂模式26     //参数:品牌   座位数   型号  (客车:品牌  座位数   "";轿车:品牌  0  型号)27     public Vehicle rentVehicle(String brand,int seatCount,String type){28         Vehicle v = null;29         //根据用户提供的租车信息(方法参数)去遍历汽车数组,找到相应车辆返回给用户30         for(Vehicle vehicle:vehicles){31             if(vehicle instanceof Car){32                 //轿车33                 Car car = (Car)vehicle; //向下转型34                 //轿车的品牌和型号与用户想要的轿车品牌与型号吻合35                 if(car.getBrand().equals(brand) && car.getType().equals(type)){36                     v = car;37                     break;38                 }39             }else{40                 //客车41                 Bus bus = (Bus)vehicle; //向下转型42                 //客车的品牌和座位数与用户想要的客车品牌与座位数吻合43                 if(bus.getBrand().equals(brand) && bus.getSeatCount()==seatCount){44                     v = bus;45                     break;46                 }47             }48         }49         return v;50     }51 }

2 . 汽车租赁管理类:入口测试类

1 package com.manage; 2  3 import java.util.Scanner; 4  5 import com.vehicles.Vehicle; 6  7 //汽车租赁管理类:入口测试类 8 public class VehicleRent { 9     public static void main(String[] args) {10         Scanner input = new Scanner(System.in);11         VehicleOperation vehicleOpr = new VehicleOperation();12         System.out.println("************欢迎光临腾飞汽车租赁有限公司*****************");13         System.out.print("请选择您要租赁的车型:1、轿车  2、客车  ");14         int vehicleType = input.nextInt();15         16         //获取用户租赁汽车的三个条件:品牌   座位数   型号17         String brand = "";18         int seatCount = 0;19         String type = "";20         21         switch(vehicleType){22             case 1: //租赁轿车   获取到用户想租赁的轿车的品牌及型号信息23                 System.out.print("请选择您要租赁的汽车品牌:1、别克  2、宝马 ");24                 int choose = input.nextInt();25                 if(choose == 1){26                     brand = "别克";27                     System.out.print("请选择您要租赁的汽车类型:1、林荫大道  2、GL8");28                     type = (input.nextInt() == 1 )?"林荫大道":"GL8";29                 }else{30                     brand = "宝马";31                     System.out.print("请选择您要租赁的汽车类型:1、X6  2、550i");32                     type = (input.nextInt() == 1 )?"X6":"550i";33                 }34                 35                 break;36             case 2://租赁客车 获取到用户想租赁的客车的品牌及座位数信息37                 System.out.print("请选择您要租赁的汽车品牌:1、金杯  2、金龙 ");38                 brand = (input.nextInt() == 1 )?"金杯":"金龙";39                 System.out.print("请选择您要租赁的汽车座位数:1、16座  2、34座 ");40                 seatCount = (input.nextInt() == 1 )?16:34;41                 break;42         }43         44         //初始化汽车信息45         vehicleOpr.init();46         //租车47         Vehicle v = vehicleOpr.rentVehicle(brand, seatCount, type);48         //提示用户租车的车牌号    计算租金(多态,会根据具体返回的汽车子类对象,调用重写后的计算租金方法)49         System.out.print("请输入您要租赁汽车的天数:");50         int days = input.nextInt();51         float price = v.clacRent(days);52         System.out.println("分配给您的汽车牌号为:"+v.getVehicleId());53         System.out.println("您需要支付的租赁费用为:"+price+"元");54     }55 }

3 . 子类:客车类

1 package com.vehicles; 2  3 //子类:客车类 4 public class Bus extends Vehicle { 5     //座位数 6     private int seatCount; 7      8     public Bus(){} 9     public Bus(String vehicleId, String brand, int perRent,int seatCount){10         super(vehicleId,brand,perRent);11         this.seatCount = seatCount;12     }13 14     public int getSeatCount() {15         return seatCount;16     }17     public void setSeatCount(int seatCount) {18         this.seatCount = seatCount;19     }20     21     //根据客车计算租金的规则重写父类方法22     public float clacRent(int days) {23         //租金 = 日租金 * 租赁周期24         float price = this.getPerRent() * days;25         //折扣规则26         if(days>=3 && days<7){27             price *=  0.9f;28         }else if(days>=7 &&days<30){29             price *=  0.8f;30         }else if(days>=30 && days<150){31             price *=  0.7f;32         }else if(days>=150){33             price *= 0.6f;34         }35         return price;36     }37 38 }

4 . 子类:轿车类

1 package com.vehicles; 2  3 //子类:轿车类 4 public class Car extends Vehicle { 5     //型号 6     private String type; 7      8     public Car(){} 9     public Car(String vehicleId, String brand, int perRent,String type){10         super(vehicleId,brand,perRent);11         this.type = type;12     }13     14     public String getType() {15         return type;16     }17 18     public void setType(String type) {19         this.type = type;20     }21 22     //根据轿车计算租金的规则重写父类方法23     public float clacRent(int days) {24         //租金 = 日租金 * 租赁周期25         float price = this.getPerRent() * days;26         //折扣规则27         if(days>7 && days<=30){28             price *=  0.9f;29         }else if(days>30 &&days<=150){30             price *=  0.8f;31         }else if(days>150){32             price *=  0.7f;33         }34         return price;35     }36 37 }

5 . 父类:汽车类

1 package com.vehicles; 2  3 //父类:汽车类 4 public abstract class Vehicle { 5     //车牌号   品牌   日租金 6     private String vehicleId; 7     private String brand; 8     private int perRent; 9     10     public Vehicle(){}11     12     13     public Vehicle(String vehicleId, String brand, int perRent) {14         this.vehicleId = vehicleId;15         this.brand = brand;16         this.perRent = perRent;17     }18 19 20     public String getVehicleId() {21         return vehicleId;22     }23     public void setVehicleId(String vehicleId) {24         this.vehicleId = vehicleId;25     }26     public String getBrand() {27         return brand;28     }29     public void setBrand(String brand) {30         this.brand = brand;31     }32     public int getPerRent() {33         return perRent;34     }35     public void setPerRent(int perRent) {36         this.perRent = perRent;37     }38     //抽象方法:计算租金-->根据租赁周期来计算租金39     public abstract float clacRent(int days);40 }

  小伙伴可以多多互动,一起多交流交流!!!O(∩_∩)O