汽车租赁系统
- 一、使用技术
- 二、实现功能
- 2.1 汽车租赁信息表如下
- 2.2 类和属性
- 三、运行效果图
- 四、实现的代码
- 4.1 Cars汽车类(父类)
- 4.2 Bus客车类(子类)
- 4.3 SaloonCar轿车类(子类)
- 4.4 carBusiness汽车业务类
- 4.5 CarRentalSystem汽车租赁管理类
- 五、运行结果
- Java入门级学习指南
一、使用技术
Java SE
二、实现功能
使用集合,面向对象的知识实现一个汽车租赁系统
2.1 汽车租赁信息表如下
2.2 类和属性
三、运行效果图
四、实现的代码
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);
}
}
五、运行结果