【Java语言】项目实践:汽车租赁系统(源码)(面向对象方法)
package com.njwbhz.february.week4.part0222.rentalSystem;/*** @author FairyKunKun* @since 2022/2/22*/
public abstract class MotorVehicle {//属性/*** 车牌号*/private String cardNo;/*** 品牌*/private String brand;/*** 日单价*/private int rent;/*** 是否被租出去*/private boolean isRented = false;//方法//默认构造器/*** 无参构造器*/public MotorVehicle() {}/*** 用来初始化一个具体的车* @param cardNo* @param brand* @param rent*/public MotorVehicle(String cardNo, String brand, int rent) {this.cardNo = cardNo;this.brand = brand;this.rent = rent;}/**** @param cardNo* @param brand*/public MotorVehicle(String cardNo, String brand) {this.cardNo = cardNo;this.brand = brand;}/*** 计算租金*/protected abstract int calcRent (int rentDay) ;/*** get和set方法*/public String getCardNo() {return cardNo;}public void setCardNo(String cardNo) {this.cardNo = cardNo;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public int getRent() {return rent;}public void setRent(int rent) {this.rent = rent;}public boolean isRented() {return isRented;}public void setRented(boolean rented) {isRented = rented;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class Car extends MotorVehicle {//属性/*** 型号*/private String model;//方法public Car(String cardNo, String brand, int rent, String model) {super(cardNo, brand, rent);this.model = model;}/*** 计算租金*/@Overridepublic int calcRent(int rentDay) {/*具体实现*/return (rentDay * super.getRent());}public String getModel() {return model;}public void setModel(String model) {this.model = model;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class Bus extends MotorVehicle{//属性/*** 座位数*/private int seat;//方法public Bus(String cardNo, String brand) {super(cardNo, brand);}/*** 计算租金*/@Overridepublic int calcRent(int rentDay) {/*具体实现*//*座位数 <= 45的,1000元/天;否则1500一天。*/if (this.seat <= 45){super.setRent(1000);}else{super.setRent(1500);}return (rentDay * super.getRent());}public int getSeat() {return seat;}public void setSeat(int seat) {this.seat = seat;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class Bmw5Bank {//属性/*** 将这些车存储到数组中去,以便随机抽取*/private static Car[] cars;static{//初始化数组cars = new Car[10];cars[0] = new Car("苏A229LG","宝马",500,"BMW5");cars[1] = new Car("苏A230LG","宝马",500,"BMW5");cars[2] = new Car("苏A231LG","宝马",500,"BMW5");cars[3] = new Car("苏A232LG","宝马",500,"BMW5");cars[4] = new Car("苏A233LG","宝马",500,"BMW5");cars[5] = new Car("苏A234LG","宝马",500,"BMW5");cars[6] = new Car("苏A235LG","宝马",500,"BMW5");cars[7] = new Car("苏A236LG","宝马",500,"BMW5");cars[8] = new Car("苏A237LG","宝马",500,"BMW5");cars[9] = new Car("苏A238LG","宝马",500,"BMW5");}//方法//创建一个变量index用于统计车库中原来有多少辆车static int index = cars.length;//创建一个变量index用于统计车库中实际有多少辆车static int carNumber = cars.length;//创建一个容器用来装从车库中取出来的车static Car carContent;/*从车库中随机取一辆车*/public static Car getCar () {while (true) {//抽取一辆车carContent = cars[(int)Math.random()*index];//判断这辆车是否已经被租赁出去//如果这辆车没有被租赁,那就直接把这辆车取出去if (carContent.isRented() == false){break;//否则重新抽取一辆车}else{continue;}}//车辆取出去以后,将车库中的实际车辆数目减少一carNumber--;//将这辆车标记为已经被租赁出去了carContent.setRented(true);//将取出来的车返回给租赁系统return carContent;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class Bmw7Bank {//属性/*** 将这些车存储到数组中去,以便随机抽取*/private static Car [] cars;static {cars = new Car[10];cars[0] = new Car("苏A329LG","宝马",700,"BMW7");cars[1] = new Car("苏A330LG","宝马",700,"BMW7");cars[2] = new Car("苏A331LG","宝马",700,"BMW7");cars[3] = new Car("苏A332LG","宝马",700,"BMW7");cars[4] = new Car("苏A333LG","宝马",700,"BMW7");cars[5] = new Car("苏A334LG","宝马",700,"BMW7");cars[6] = new Car("苏A335LG","宝马",700,"BMW7");cars[7] = new Car("苏A336LG","宝马",700,"BMW7");cars[8] = new Car("苏A337LG","宝马",700,"BMW7");cars[9] = new Car("苏A338LG","宝马",700,"BMW7");}//方法//创建一个变量index用于统计车库中原来有多少辆车static int index = cars.length;//创建一个变量index用于统计车库中实际有多少辆车static int carNumber = cars.length;//创建一个容器用来装从车库中取出来的车static Car carContent;/*从车库中随机取一辆车*/public static Car getCar () {while (true) {//抽取一辆车carContent = cars[(int)Math.random()*index];//判断这辆车是否已经被租赁出去//如果这辆车没有被租赁,那就直接把这辆车取出去if (carContent.isRented() == false){break;//否则重新抽取一辆车}else{continue;}}//车辆取出去以后,将车库中的实际车辆数目减少一carNumber--;//将这辆车标记为已经被租赁出去了carContent.setRented(true);//将取出来的车返回给租赁系统return carContent;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class BusBank {//属性/*** 将这些车存储到数组中去,以便随机抽取*///存金杯的车库private static Bus [] busesB;//存金杯的车库private static Bus [] busesL;//方法static {busesB = new Bus[10];busesL = new Bus[10];busesB[0] = new Bus("苏A449LG","金杯");busesB[1] = new Bus("苏A450LG","金杯");busesB[2] = new Bus("苏A451LG","金杯");busesB[3] = new Bus("苏A452LG","金杯");busesB[4] = new Bus("苏A453LG","金杯");busesB[5] = new Bus("苏A454LG","金杯");busesB[6] = new Bus("苏A455LG","金杯");busesB[7] = new Bus("苏A456LG","金杯");busesB[8] = new Bus("苏A457LG","金杯");busesB[9] = new Bus("苏A458LG","金杯");busesL[0] = new Bus("苏A849LG","金龙");busesL[1] = new Bus("苏A850LG","金龙");busesL[2] = new Bus("苏A851LG","金龙");busesL[3] = new Bus("苏A852LG","金龙");busesL[4] = new Bus("苏A853LG","金龙");busesL[5] = new Bus("苏A854LG","金龙");busesL[6] = new Bus("苏A855LG","金龙");busesL[7] = new Bus("苏A856LG","金龙");busesL[8] = new Bus("苏A857LG","金龙");busesL[9] = new Bus("苏A858LG","金龙");}//创建一个变量indexB用于统计金杯车库中原来有多少辆车static int indexB = busesB.length;//创建一个变量busBNumber用于统计金杯车库中实际有多少辆车static int busBNumber = busesB.length;//创建一个容器用来装从车库中取出来的车static Bus busContent;/*从金杯车库中随机取一辆车*/public static Bus getBusB () {while (true) {//抽取一辆车busContent = busesB[(int)Math.random()*indexB];//判断这辆车是否已经被租赁出去//如果这辆车没有被租赁,那就直接把这辆车取出去if (busContent.isRented() == false){break;//否则重新抽取一辆车}else{continue;}}//车辆取出去以后,将车库中的实际车辆数目减少一busBNumber--;//将这辆车标记为已经被租赁出去了busContent.setRented(true);//将取出来的车返回给租赁系统return busContent;}//方法//创建一个变量index用于统计金杯车库中原来有多少辆车static int indexL = busesL.length;//创建一个变量index用于统计金杯车库中实际有多少辆车static int busLNumber = busesL.length;/*从金杯车库中随机取一辆车*/public static Bus getBusL () {while (true) {//抽取一辆车busContent = busesL[(int)Math.random()*indexL];//判断这辆车是否已经被租赁出去//如果这辆车没有被租赁,那就直接把这辆车取出去if (busContent.isRented() == false){break;//否则重新抽取一辆车}else{continue;}}//车辆取出去以后,将车库中的实际车辆数目减少一busLNumber--;//将这辆车标记为已经被租赁出去了busContent.setRented(true);//将取出来的车返回给租赁系统return busContent;}}
package com.njwbhz.february.week4.part0222.rentalSystem;/*** @author FairyKunKun* @since 2022/2/22*/
public class TestBank {public static void main(String[] args) {System.out.println(BusBank.getBusB().getBrand());System.out.println(BusBank.getBusL().getBrand());System.out.println(Bmw5Bank.getCar().getCardNo());System.out.println(Bmw7Bank.getCar().getCardNo());}
}
package com.njwbhz.february.week4.part0222.rentalSystem;import java.util.Scanner;
/*** @author FairyKunKun* @since 2022/2/22*/
public class RentalSystem {static Scanner scanner = new Scanner(System.in);static Bus bus;static Car car;//设置一个变量用来存储计算出来的租金//设置一个变量存储用户想要租赁的天数private static int rentDay;//输出欢迎语句public static void welcome () {System.out.println("欢迎进入租赁系统");}public static void selectMotorVehicle () {//设置租赁的天数System.out.print("请选择租赁的天数:");setRentday(scanner.nextInt());//取车环节//选择车的类型System.out.println("请选择租赁的车的类别:1.宝马\t2.客车");switch (scanner.nextInt()) {case 1 :System.out.println("请选择宝马的型号:1.BMW5\t2.BMW7");switch (scanner.nextInt()) {case 1 :car = Bmw5Bank.getCar();break;case 2 :car = Bmw7Bank.getCar();break;}showInfoCar();break;case 2 :System.out.println("请选择车的品牌:1.金杯\t2.金龙");switch (scanner.nextInt()) {case 1 :bus = BusBank.getBusB();System.out.print("请选择座位数:");bus.setSeat(scanner.nextInt());break;case 2 :System.out.print("请选择座位数:");bus.setSeat(scanner.nextInt());bus = BusBank.getBusL();break;}showInfoBus();break;}}public static void showInfoCar () {System.out.println("系统将为您分配一辆" + car.getBrand() + "车型为" + car.getBrand() + ",车牌为" + car.getCardNo() + ",租赁" + rentDay + "天,租金" + car.calcRent(rentDay) + "元。");}public static void showInfoBus () {System.out.println("系统将为您分配一辆" + bus.getBrand() + "客车,车牌为" + bus.getCardNo() + ",座位数为" + bus.getSeat() + ",租赁" + rentDay + "天,租金" + bus.calcRent(rentDay) + "元。");}public static int getRentday() {return rentDay;}public static void setRentday(int rentday) {rentDay = rentday;}}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class RentalSystemApp {public static void main(String[] args) {RentalSystem.welcome();RentalSystem.selectMotorVehicle();}
}
【Java语言】项目实践:汽车租赁系统(源码)(面向对象方法)相关推荐
- java计算机毕业设计新能源汽车租赁管理系统源码+数据库+系统+lw文档+mybatis+运行部署
java计算机毕业设计新能源汽车租赁管理系统源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计新能源汽车租赁管理系统源码+数据库+系统+lw文档+mybatis+运行部署 ...
- java计算机毕业设计新能源汽车租赁管理系统源码+mysql数据库+lw文档+系统+调试部署
java计算机毕业设计新能源汽车租赁管理系统源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计新能源汽车租赁管理系统源码+mysql数据库+lw文档+系统+调试部署 本源码技术栈 ...
- java计算机毕业设计汽车租赁系统源码+系统+数据库+lw文档
java计算机毕业设计汽车租赁系统源码+系统+数据库+lw文档 java计算机毕业设计汽车租赁系统源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件: ...
- java计算机毕业设计汉服服装租赁系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计汉服服装租赁系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计汉服服装租赁系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...
- java计算机毕业设计网上汽车售票系统源码+数据库+lw文档+系统+部署
java计算机毕业设计网上汽车售票系统源码+数据库+lw文档+系统+部署 java计算机毕业设计网上汽车售票系统源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...
- javaswing汽车租赁系统 java swing mysql实现的汽车租赁系统源码和导入文档(1002)
java swing + mysql 汽车租车管理系统(1002) 1.系统运行环境 运行环境:Java8 + MySQL8 开发工具:eclipse/idea 2.系统功能实现 (下面介绍的功能肯定 ...
- 基于微信小程序的汽车租赁系统源码
开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 微信小程序 代码注释齐全,没有多余代码,适合学 ...
- javaweb springboot汽车租赁系统源码
开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse) 技术说明: springboot mybatis vue.js bootstrap 代码注释齐全,没有多余代码, ...
- java毕业设计汽车租赁系统设计源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计汽车租赁系统设计源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计汽车租赁系统设计源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...
- java计算机毕业设计汽车租赁管理系统源码+程序+lw文档+mysql数据库
java计算机毕业设计汽车租赁管理系统源码+程序+lw文档+mysql数据库 java计算机毕业设计汽车租赁管理系统源码+程序+lw文档+mysql数据库 本源码技术栈: 项目架构:B/S架构 开发语 ...
最新文章
- ProteinGCN | 使用图卷积网络表示学习蛋白质结构
- 重装windows installer
- fscanf()函数具体解释
- [Web安全之实战] 跨站脚本攻击XSS
- 计算机科学在生物信息中的应用,生物信息学在基因组学中的应用
- 前端(四)——CSS之导入方式、各类选择器
- 检索数据_16_按照某个模式搜索
- 使用CAS代替synchronized
- 鸿蒙第三代手机,荣耀Magic 3最新确认,鸿蒙系统+双6400万,最期待的荣耀来了
- 单片机音乐倒数计时器c语言,音乐倒数计时器单片机课程设计报告
- 邮箱怎么群发你知道吗?邮件群发效果较好的邮箱有哪些
- 华为机试(C++)真题Od
- Teaching Machines to Read and Comprehend
- Axure下拉框的多选与取消
- MySQL遍历map_遍历Map的四种方法
- 软考A计划-软件设计师(高级程序员)考试大纲
- 核工业物理研究院九院三所
- 基于BlackFriday.csv的电商数据集,简要数据分析
- 程序员如何用技术变现?(取其精华去其糟粕)
- python基础九 函数(中)作用域、命名空间、递归函数