设计一个租车系统,车有载货和载人,也有既载货又载人的车,模拟租车系统,实现一点小功能!

综合运用所学知识,完善系统(异常处理,接口使用,封装继承等等~)

异常处理还是有些缺陷,对选车过程中输错序号还没有很好的处理,等掌握的知识多了再来解决。

代码如下:

package example1;public class Car {private int carNumber;private String carName;private int carMoney;public int getCarNumber() {return carNumber;}public void setCarNumber(int carNumber) {this.carNumber = carNumber;}public String getCarName() {return carName;}public void setCarName(String carName) {this.carName = carName;}public int getCarMoney() {return carMoney;}public void setCarMoney(int carMoney) {this.carMoney = carMoney;}
}
package example1;public class PassengerCar extends Car {private int carCapacity;public PassengerCar(int carNumber,String carName,int carMoney,int carCapacity){this.setCarNumber(carNumber);this.setCarName(carName);this.setCarMoney(carMoney);this.carCapacity=carCapacity;}public int getCarCapacity() {return carCapacity;}public void setCarCapacity(int carCapacity) {this.carCapacity = carCapacity;}
}
package example1;public class Trunk extends Car{private int carCarry;public Trunk(int carNumber,String carName,int carMoney,int carCarry){this.setCarNumber(carNumber);this.setCarName(carName);this.setCarMoney(carMoney);this.carCarry=carCarry;}public int getCarCarry() {return carCarry;}public void setCarCarry(int carCarry) {this.carCarry = carCarry;}
}
public class PickUp extends Car {private int carCapacity; //定义皮卡的载客量private int carCarry; //定义皮卡的载货量public PickUp(int carNumber,String carName,int carRentMoney,int carCapacity,int carCarry){this.setCarNumber(carNumber);this.setCarName(carName);this.setCarMoney(carRentMoney);this.carCapacity=carCapacity;this.carCarry=carCarry;}public int getCarCapacity() {return carCapacity;}public void setCarCapacity(int carCapacity) {this.carCapacity = carCapacity;}public int getCarCarry() {return carCarry;}public void setCarCarry(int carCarry) {this.carCarry = carCarry;}}
package example1;
import java.util.Scanner;
import java.util.*;public class Test {public static void main(String[] args) {System.out.println("欢迎使用哒哒租车系统!\n");while(true){int kase=0;System.out.println("您是否需要租车? :1 是   0 否");try{Scanner input=new Scanner(System.in);int k=input.nextInt();if(k==1){kase=1;System.out.println("您可租车的类型及价目表:");Car [] carRent={new PassengerCar(1,"奥迪",500,4),new PassengerCar(2,"马自达",400,4),new PickUp(3,"皮卡雪",450,4,2),new PassengerCar(4,"金龙",800,20),new Trunk(5,"松花江",400,4),new Trunk(6,"解放",500,5)};System.out.println("序号"+"\t"+"汽车名称"+"\t"+"租金"+"\t"+"容量");for (Car car : carRent) {//用instanceOf来测试左边类型的对象是否是右边类型的实例,返回值为Booleanif(car instanceof PassengerCar){//若它是客车类型的实例,则打印出客车应该有的属性值,这里注意强转,否则不会出现//passengerCar类的CarCapacity属性System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarMoney()+"/天"+"\t"+"载人:"+((PassengerCar)car).getCarCapacity()+"人");}if(car instanceof PickUp){System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarMoney()+"/天"+"\t"+"载人:"+((PickUp)car).getCarCapacity()+"人"+"\t"+"载货:"+((PickUp)car).getCarCarry()+"吨");}if(car instanceof Trunk){System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarMoney()+"/天"+"\t"+"载货:"+((Trunk)car).getCarCarry()+"吨");}}System.out.println("请输入您要租车的数量");int n=input.nextInt();List<Car> carList=new ArrayList<Car>();int p=0;List<Car> carList1=new ArrayList<Car>();List<Car> carList2=new ArrayList<Car>();int pnum=0;int cnum=0;int mnum=0;for(int i=0;i<n;i++){System.out.println("请输入第"+(i+1)+"辆车的序号: ");int nnum=input.nextInt();carList.add(carRent[nnum-1]);System.out.println("成功添加:"+carList.get(p).getCarName());if(carRent[nnum-1] instanceof PassengerCar){pnum+=((PassengerCar)carList.get(p)).getCarCapacity();mnum+=(carList.get(p)).getCarMoney();carList1.add(carList.get(p));}if(carRent[nnum-1]instanceof PickUp){cnum+=((PickUp)carList.get(p)).getCarCarry();pnum+=((PickUp)carList.get(p)).getCarCapacity();mnum+=(carList.get(p)).getCarMoney();carList2.add(carList.get(p));carList1.add(carList.get(p));}if(carRent[nnum-1]instanceof Trunk){cnum+=((Trunk)carList.get(p)).getCarCarry();mnum+=(carList.get(p)).getCarMoney();carList2.add(carList.get(p));}p++; }System.out.println("请输入租车的天数:");int dnum=input.nextInt();mnum=mnum*dnum;if(carList1.isEmpty()){System.out.println("没有可以载客的车~");}else{System.out.println("********************可载客的车有********************");for (Car car : carList1) {System.out.println(car.getCarName());}System.out.println("载客量为"+pnum+"人");}if(carList2.isEmpty()){System.out.println("没有可以载客的车~");}else{System.out.println("********************可载货的车有********************");for (Car car : carList2) {System.out.println(car.getCarName());}System.out.println("载货量为"+cnum+"吨");}System.out.println("********************租车的总价格********************");System.out.println(mnum);}else if(k==0){kase=1; System.out.println("感谢您的再次使用!再见!");}else{System.out.println("您输入的指令有误,请重新输入!");}}catch(Exception e){System.out.println("请输入数字!谢谢~");}if(kase==1)break;}}
}

运行结果:

哒哒租车系统(慕课网学习)相关推荐

  1. java租车_Java 哒哒租车系统(控制台)

    哒哒租车系统 Cars类为父类 重写Cars类toString方法 三种车型3个子类继承父类 Cars.java package com.xk; public class Cars { public ...

  2. java租车系统_Java 哒哒租车系统(控制台)

    哒哒租车系统 Cars类为父类 重写Cars类toString方法 三种车型3个子类继承父类 Cars.java package com.xk; public class Cars { public ...

  3. 二嗨租车系统java_java第二季。哒哒租车系统(参考的很多前辈们的代码!)

    //主程序 package project1; import java.util.Scanner; public class DaDaZuChe { public static void main(S ...

  4. java简单租车系统 慕课手记_java小项目,租车系统

    这学期要学java,本以为暑假学windows程序设计的,没想到一些事情耽误了 ,只能回来再补了,因为学过c++,面向对象的三大特性什么的,c++比java难一点,所以学java感觉还比骄轻松,下面就 ...

  5. 二嗨租车系统java_java第二季租车系统作业

    用到的知识点: 1.封装 2.继承 3.多态 4.对象数组 package com.imooc; public abstract class Car { private int orderNum;// ...

  6. 二嗨租车系统java_Java第二季租车系统

    欢迎使用哒哒租车系统: 您是否要租车:1是 0否 1 您可租的车辆类型及价目表: 序号 汽车名称 租金 空间 序号:1 奥迪A4 500元/天 载人:4人 序号:2 马自达6 400元/天 载人:4人 ...

  7. java 二嗨租车项目,Java小项目 -- 答答租车系统(已自测通过)

    /** * 汽车抽象类 * * @author Administrator * */ public abstract class Auto { private String name; private ...

  8. 慕课网-Java入门第二季实战练习-答答租车系统下载

    更具所学知识,编写一个控制台版的"答答租车系统" 功能: 1.展示所有可租车辆 2.选择车型.租车量 3.展示租车清单,包含:总金额.总载货量及其车型.总载人量及其车型 代码下载地 ...

  9. Java面向对像小项目 慕课网Java入门第二季滴滴租车系统

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  10. Java面向对象小项目 慕课网Java入门第二季答答租车系统

    一.项目背景 编写一个控制台程序,要求实现如下功能: 1.展示所有可租车辆 2.选择车型,租车量 3.显示租车清单,包括:总载货量,总载客量,总金额等: 二.车的类别 客车:只能载客 货车:只能载货 ...

最新文章

  1. 如何使用Transformer来做物体检测?
  2. DroidPilot 测试脚本详解 (一)
  3. 福州大学计算机专业录取位次,盘点福州大学历年最低录取分数线以及最低位次!给考生做参考...
  4. base64 长度补全
  5. 如何使用selenium webdriver来判断一个网页加载完毕
  6. redis 存储数据不设置过期时间 会自动过期吗_Redis-数据淘汰策略持久化方式(RDB/AOF)Redis与Memcached区别...
  7. java加载自己写的类_java 自定义类加载器从磁盘或网络加载类
  8. 计算机桌面堆,桌面堆 Desktop heap设置
  9. php补充 扩展,PHP安装扩展补充说明
  10. Spring -- 入门,装备集合,自动装配,分散装配,自定义编辑器
  11. 关于java的局部知识点总结
  12. Atitit 数据出入管理法v3 目录 1.1. 边界检查:web边界和sql边界 1 2. 检查条目 1 2.1. 数据种类检查 整数 小数 字符串(带长度,字符白名单校验) 1 2.2. 字符黑
  13. bin转txt工具_Shell笔记之常用工具
  14. msn邮箱在哪里登录?
  15. C4D R25版本的新特性+下载体验
  16. 服务器硬盘坏道修复教程视频,硬盘坏道修复工具使用教程
  17. 2020年诺贝尔化学奖得主自述:基因编辑技术将把我们带向何方?
  18. 文曲星猜数字游戏java代码_急求一份完整的文曲星上的猜数字游戏的课程设计...
  19. vue3.0之写tsx语法
  20. HCIP-H12-223练习题

热门文章

  1. pycharm引用pyd文件
  2. NIVIDIA Tegra K1 QWT安装使用问题和解决办法
  3. Apache POI Excel固定(冻结)单元格
  4. 计算机研究生复试面试题目
  5. bootstrap-selectpicker
  6. Laravel操作数据库的三种方式总结归纳
  7. iPhone 开发常用工具
  8. 视频编码中的I帧、P帧、B帧的概念和特点
  9. mysql根据idb还原数据_转一篇文章:MySQL 通过idb文件恢复Innodb 数据
  10. 北德克萨斯大学计算机系,美国北德克萨斯大学计算机科学与工程系主任Barrett Bryant访问昆明理工大学...