第三次项目《汽车租赁》

2024-02-26 10:38
文章标签 项目 汽车 租赁 第三次

本文主要是介绍第三次项目《汽车租赁》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*** 父类车(抽象类)*/
public abstract class Car {/**品牌*/private String brand;/**牌照*/private String licenseTag;/**日租金*/private int dayRant;public Car() {}public Car(String brand, String licenseTag, int dayRant) {this.brand = brand;this.licenseTag = licenseTag;this.dayRant = dayRant;}/**汽车信息*/public void Information() {System.out.println("品牌是:"+brand);}/**租金*/public abstract float money(int day);/**设置品牌*/public void setBrand(String brand) {this.brand = brand;}/**得到品牌*/public String getBrand() {return brand;}/**得到牌照*/public String getLicenseTag() {return licenseTag;}/**设置牌照*/public void setLicenseTag(String licenseTag) {this.licenseTag = licenseTag;}/**得到日租金*/public int getDayRant() {return dayRant;}/**设置日租金*/public void setDayRant(int dayRant) {this.dayRant = dayRant;}
}
/**客车(具体产品类)*/
public class PassengerCar extends Car{/**座位*/private String seat;public PassengerCar() {}// 构造方法public PassengerCar(String brand, String licenseTag, int dayRant, String seat) {super(brand, licenseTag, dayRant);this.seat = seat;}/**轿车租赁信息*/@Overridepublic void Information() {super.Information();System.out.println("座位数:"+seat);System.out.println("牌照是:"+getLicenseTag());System.out.println("日租金:"+getDayRant());}public String getSeat() {return seat;}public void setSeat(String seat) {this.seat = seat;}/**客车租金计算*/@Overridepublic float money(int days) {float price = this.getDayRant() * days;// 天数if (days >= 150) {// 打折price *= 0.6; }else if(days >= 30) {price *= 0.7;}else if(days >= 7) {price *= 0.8;}else if(days >= 3) {price *= 0.9;}return price;}
}
/**轿车(子类) */
public class SaloonCar extends Car {/**型号*/private String type;public SaloonCar() {}// 构造方法public SaloonCar(String brand, String licenseTag, int dayRant, String type) {super(brand, licenseTag, dayRant);this.type = type;}/**轿车租赁信息 */@Overridepublic void Information() {super.Information();System.out.println("型号是:"+type);System.out.println("牌照是:"+getLicenseTag());System.out.println("日租金:"+getDayRant());}public String getType() {return type;}public void setType(String type) {this.type = type;}/**客车租金计算*/@Overridepublic float money(int days) {float price = this.getDayRant() * days;if (days > 150) {price *= 0.7; }else if(days > 30) {price *= 0.8;}else if(days > 7) {price *= 0.9;}return price;}
}
/** 用户租车 (客户类)*/
public class Client {public static void main(String[] args) {// 创建工厂类对象Factory factory = new Factory();Scanner input = new Scanner(System.in);do {System.out.println("=======欢迎来到太阳载具公司=======");System.out.println("请选择你的车型:1、汽车  2、其他");int choise = input.nextInt();// 品牌String brand = "";// 型号String type = "";// 座位数String seat = "";switch (choise) {case 1:System.out.println("请选择汽车品牌: 1、保时捷  2、布加迪");int ScBrand = input.nextInt();brand = ScBrand == 1 ? "保时捷" : "布加迪";if (ScBrand == 1) {System.out.println("请选择型号:1、911 2、新能源 3、卡宴");int ScType = input.nextInt();if (ScType == 1) {type = "911";} else if(ScType == 2) {type = "新能源";} else if(ScType == 3) {type = "卡宴";}} else {System.out.println("请选择型号:1、威龙 2、威航");type = input.nextInt() == 1 ? "威龙" : "威航";}break;case 2:System.out.println("请选择其他载具: 1、UFO  2、和谐号");int select = input.nextInt();brand = select == 1 ? "UFO" : "和谐号";System.out.println("请选择座位类型: 1、100座 2、300座");int pcSeat = input.nextInt();if (pcSeat == 1) {seat = "100座";}else {seat = "300座";}break;default:System.out.println("输入错误!");break;}// 存车到父类引用Car car = factory.rantCar(brand, type, seat);// 输出车辆信息System.out.println("恭喜您!系统选车成功!车辆信息如下:");car.Information();// 判断子类对象(动态绑定)if(car instanceof SaloonCar) {// 调用子类特有方法要强转SaloonCar sc = (SaloonCar)car;System.out.println("您租的是"+sc.getBrand()+sc.getType()+",现有租赁活动: 租车大于7天打9折,租车大于30天打8折,租车大于150天打7折.");// 判断子类对象(动态绑定)}else if(car instanceof PassengerCar){// 调用子类特有方法要强转PassengerCar pc = (PassengerCar)car;System.out.println("您租的是"+pc.getBrand()+pc.getSeat()+",现有租赁活动: 租车3天打9折,租车7天打8折,租车30天打7折,租车150天6折.");}System.out.print("请输入您租赁的天数:");// 租赁天数int rentDay = input.nextInt();// 调用子类租金计算double rant = car.money(rentDay);System.out.println("租金为:"+rant);}while(isContinue());System.out.println("后期会有更多黑科技,欢迎下次光临呦~!");}/**是否继续方法*/public static boolean isContinue() {Scanner input = new Scanner(System.in);System.out.println("是否继续(y/n)?");String select = input.next();if(select.equals("y")) {return true;}else {return false;}}
}
/**载具工厂(工厂类)*/
public class Factory {public static Car[] car = new Car[8];/**初始化载具信息*/static{car[0] = new SaloonCar("保时捷", "京11111", 1800, "911");car[1] = new SaloonCar("保时捷", "京22222", 1500, "新能源");car[2] = new SaloonCar("保时捷", "京33333", 1200, "卡宴");car[3] = new SaloonCar("布加迪", "京44444", 2000, "威航");car[4] = new PassengerCar("UFO", "宇55555", 2200, "100座");car[5] = new PassengerCar("和谐号", "GYYYY", 3200, "300座");car[6] = new PassengerCar("UFO", "$$$$$$", 10000, "300座");car[7] = new PassengerCar("和谐号", "FY0000", 4200, "100座");}/***  判断租哪辆载具* @param brand 品牌* @param type 型号* @param seat 座位* @return 返回Car*/public Car rantCar(String brand, String type, String seat) {for (Car car1 : this.car) {// 租轿车if(car1 instanceof SaloonCar) {// 调用子类特有方法 SaloonCar sc = (SaloonCar)car1;if (sc.getBrand().equals(brand) && sc.getType().equals(type)) {return sc;}// 租其他载具}else if(car1 instanceof PassengerCar) {// 调用子类特有方法PassengerCar pc = (PassengerCar)car1;if (pc.getBrand().equals(brand) && pc.getSeat().equals(seat)) {return pc;}}}return null;}
}

这篇关于第三次项目《汽车租赁》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/748580

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

2. 下载rknn-toolkit2项目

官网链接: https://github.com/airockchip/rknn-toolkit2 安装好git:[[1. Git的安装]] 下载项目: git clone https://github.com/airockchip/rknn-toolkit2.git 或者直接去github下载压缩文件,解压即可。

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们