汽车租赁系统
❤️欢迎 点赞 👍 收藏 ⭐ 留言 📝 关注 ✌ 私聊我
一、使用技术
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);
}
}
五、运行结果
Java入门级学习指南
第一部分:JAVA 设计和编程基础(OOD 和 OOP)
1.1Java 语言基础
01初识Java
02数据类型和运算符
03流程结构
04数组
05数组综合应用
扩展
快捷键生成代码
关键字汇总
命名规范
window上常用的开发快捷键
Java中if(条件){语名}和if(条件)语句的区别
Java中交换两个变量(两种方式)
Java中输入一个学员的成绩,输出四种结果:优秀,良好,及格,不及格
Java中switch结构判断某个月份是属于什么季节
Java中 三种循环结构输出100以内的整数和
Java中定义一维数组的三种方式
Java数组中查找最大值和最小值
Java求所有水仙花数
Java实现九九乘法表的打印和输出
Java中输入一个整数n,实现n的阶乘
Java中动态输入一组数,存到数组里面,利用四种循环打印出数组的所有元素。
switch() case的()可以放什么类型
冒泡排序算法
选择排序算法
二分查找法
1.2Java 面向对象
06认识类与对象
07方法
08三大特性:封装、继承和多态
09单例设计模式(Singleton)
10抽象类和接口
扩展
设计模式
内存分析详解(栈、堆和方法区)程序执行的内存变化过程
1.3JavaSE 核心类库
Java 核心类、Obect 类、Math 类、Random 类、BigDecimal 类、Java 字符串、日期处 理、包装类、Java 集合、数据结构、异常 和异常处理、Java IO、Java 泛型、XML 和 正则表达式、XML 解析、Java 反射机制。 多线程编程、并发、线程同步技术、线程 池、网络编程、TCP、UDP 编程(后置)
11常用类(一):比较器 、内部类和包装类
12常用类(二):Sring、正则、StringBuffer、StringBuilder、Math、Random、Date
13集合框架(一):List集合 、Set集合 、Map集合
14集合框架(二):泛型 、集合工具类、TreeMap和TreeSet
15异常
16 IO流
17Xml和反射
扩展
详解“==”和equals的区别
1.4三个实战项目
超市管理系统
外卖订餐系统
汽车租赁系统(面向对象)
汽车租赁系统(集合、面向对象)
第二部分:数据库技术、Web 前端技术(H5/JS)和 Java Web 开发
2.1MySql 数据库 开发
01MySQL基础
02枚举(enum)
03注解
04Properties
05索引
案例
MySQL基础语法使用案例
MySql 数据库 开发:使用注解、反射和正则表达式完成表单验证
2.2JDBC
05JDBC
06JDBC案例
扩展
小型银行系统
员工管理系统
简易商品管理系统
简易新闻发布系统
2.3数据库设计及开 发综合案例
07电子商城数据库设计及开发
2.4Web 前端基础 (HTML5/CSS3/JS)
08HTML5
09CSS3
10JavaScript
2.5Web 前端高级 jQuery 框架
11jQuery 框架
2.6Java Web 技术 JSP&Servlet
12网络和Servlet
13JSP
14 EL
15JSTL
16会话管理
17文件上传与下载
扩展
不会吧!不会吧!Servlet的生命周期,你才知道!
Servlet中请求转发和重定向的区别,看这一篇就够了!
JSP中传递参数方式之参数列表
2.7AJAX 框架
18AJAX
扩展
jsp页面中使用a标签进行删除请求时候使用弹出框确认后再删除
实现商品管理功能
第三部分:Java主流框架和商业软件开发流程&工具
1LayUI
2SVN
3Git
4Maven
5Linux
6Docker
7Spring
8Mybatis
9Redis
10Thymeleaf
扩展
使用Mybatis常见问题
福利
毕业一年的Java开发工程师面经❤️轻松拿到年薪20w+offer