实现过程如下:

构造抽象Auto类:是所有载客类型车的父类,如PassengerAuto类继承了该类

构造抽象类LoadWeight类:是所有既载客又载货车型的父类,如Truck类继承了该类

构造储存添加车型的CarList类:储存系统管理员添加车型的类

构造用户租车购物车Cart类:储存用户租用了哪种车型及费用明细列表

客户端类index类:调用以上各类实现租车系统

Auto.java:

package com.immoc.lib;

//仅能载客的车

public abstract class Auto {

private int id;//定义车的编号

private String carName;//定义车名

private int price;//定义车价

private int passengers;//定义载客量

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getCarName() {

return carName;

}

public void setCarName(String carName) {

this.carName = carName;

}

public int getPrice() {

return price;

}

public void setPrice(int price) {

this.price = price;

}

public int getPassengers() {

return passengers;

}

public void setPassengers(int passengers) {

this.passengers = passengers;

}

public Auto(int id,String carName, int price,int passengers) {

super();

this.setId(id);

this.setCarName(carName);

this.setPassengers(passengers);

this.setPrice(price);

}

public String getMsg(){

return this.getId()+"\t"+this.getCarName()+"\t"+this.getPrice()+"\t"+this.getPassengers()+"\t"+"0";

}

public void print(){

System.out.println(getMsg());

}

}

LoadWeight.java:

package com.immoc.lib;

import com.immoc.lib.Auto;

//即能载客又能载货的车

public abstract class LoadWeight extends Auto {

private int weight;//定义载货量

public LoadWeight(int id,String carName, int price ,int passengers,int weight){

super(id, carName, price, passengers);

this.weight = weight;

}

public int getWeight() {

return weight;

}

public void setWeight(int weight) {

this.setWeight(weight);

}

public String getMsg(){

return this.getId()+"\t"+this.getCarName()+"\t"+this.getPrice()+"\t"+this.getPassengers()+"\t"+this.getWeight();

}

public void print(){

System.out.println(getMsg());

}

}

PassengerAuto.java

package com.immoc;

import com.immoc.lib.Auto;

//创建只能载客的子类车--继承于只能载客的类(Auto)

public class PassengerAuto extends Auto {

public PassengerAuto(int id, String carName, int price ,int passengers){

super(id, carName,price,passengers);

}

}

Truck.java

package com.immoc;

import com.immoc.lib.LoadWeight;

//创建能载客又能载货的类(Truck),继承于LoadWeight类

public class Truck extends LoadWeight {

public Truck(int id ,String carName, int price ,int passengers,int weight){

super(id, carName, price, passengers, weight);

}

}

CarList.java:

package com.immoc.lib;

import java.util.ArrayList;

//储存系统中存在的车型--系统管理员使用

public class CarList {

public static ArrayList carlist = new ArrayList() ;//储存现有的汽车列表

/**

* 向汽车列表中添加不同类型的汽车

* @param car 汽车对象

*/

public static boolean addCar(Auto car){

return carlist.add(car);

}

//显示系统中存在的车型信息

public static void showCars(){

System.out.println("型号\t"+"名称\t"+"价格\t"+"载客量\t"+"载货量\t");

for(int i=0;i

Auto auto = carlist.get(i);

auto.print();

}

}

/**

* 删除某种车型信息

* @param id 车型编号

* @return

*/

public static boolean removeCar(int id){

Auto car =null;

boolean isRemove = false;

for(int i=0; i

car = carlist.get(i);

if(car.getId()==id)

{

isRemove = (carlist.remove(i)!=null)?true:false;

break;

}

}

return isRemove;

}

/**

* 找到某一种车型的车

* @param id

* @return

*/

public static Auto getCar(int id){

Auto car =null;

boolean isGet = false;

for(int i=0; i

car = carlist.get(i);

if(car.getId()==id)

{

car = carlist.get(i);

isGet = true;

break;

}

}

car = isGet?car:null;

return car;

}

}

Cart.java

package com.immoc.lib;

import java.util.ArrayList;

//租车购物车列表:用来储存租车信息--用户使用

public class Cart {

public static ArrayList cartlist = new ArrayList();//储存租车信息

public static int total=0;//储存租车总费用

//计算租车费用总数

public static int getTotal(){

for(CarNode car:cartlist){

int id = car.getId();

int sum = car.getSum();

Auto auto = CarList.getCar(id);

if(auto!=null){

total+=auto.getPrice()*sum;

}

}

return total;

}

//显示购物车中的信息

public static void showOrders(){

System.out.println("======================================================");

System.out.println("型号\t"+"名称\t"+"价格\t"+"载客量\t"+"载货量\t"+"租车数目\t"+"总价");

String list ="";

int totalsum=0;

for(CarNode car:cartlist){

int id = car.getId();

int sum = car.getSum();

Auto auto = CarList.getCar(id);

list+= auto.getMsg()+"\t"+sum+"\t"+auto.getPrice()*sum+"\t\n";

totalsum+=auto.getPrice()*sum;

}

System.out.print(list);

System.out.println("======================================================");

System.out.println("租车总费用:"+totalsum);

System.out.println("======================================================");

}

//租用的车型和数目

public static boolean addCar(int id, int sum){

int index = Cart.getCar(id);

if(index==-1){

//如果购物车中不存在则创建对象

CarNode car = new CarNode(id,sum);

return cartlist.add(car);

}else{

//如果存在则修改数量

CarNode car = cartlist.get(index);

car.setSum(car.getSum()+sum);

cartlist.set(index, car);

}

return true;

}

//删除一种车型

public static boolean removeCar(int id){

CarNode car =null;

boolean isRemove = false;

for(int i=0; i

car = cartlist.get(i);

if(car.getId()==id)

{

isRemove = (cartlist.remove(i)!=null)?true:false;

break;

}

}

return isRemove;

}

//找到一种车型

public static int getCar(int id){

CarNode car =null;

for(int i=0; i

car = cartlist.get(i);

if(car.getId()==id)

return i;

}

return -1;

}

}

//储存租车信息

class CarNode{

private int id;//车型编号

private int sum;//租车的数目

public CarNode(int id, int sum){

this.setId(id);

this.setSum(sum);

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public int getSum() {

return sum;

}

public void setSum(int sum) {

this.sum = sum;

}

}

index.java

package com.immoc;

import com.immoc.lib.Auto;

import com.immoc.lib.CarList;

import com.immoc.lib.Cart;

//主方法

public class Index {

public static void show(Object obj){

System.out.println(obj.toString());

}

public static void main(String[] args){

Auto car01 = new PassengerAuto(100,"奥迪A4",500,4);

Auto car02 = new PassengerAuto(110,"马自达6 ",400,4);

Auto car03 = new Truck(120,"松花江",300,2,4);

Auto car04 = new Truck(130,"依维柯",200,2,20);

Auto car05 = new PassengerAuto(140,"东风日产 ",100,4);

Auto car06 = new PassengerAuto(150,"宝马 ",1000,4);

//管理员添加车型

CarList.addCar(car01);

CarList.addCar(car02);

CarList.addCar(car03);

CarList.addCar(car04);

CarList.addCar(car05);

CarList.addCar(car06);

//CarList.removeCar(4);

show("显示系统中所有的车型信息:");

CarList.showCars();

//用户添加租车的车型和租车数目

Cart.addCar(100,2);

Cart.addCar(110,2);

Cart.addCar(120,2);

Cart.addCar(130,2);

Cart.addCar(150,1);

Cart.removeCar(150);//移除车型

//租车系统结账并显示租车具体信息

show("您的租用信息如下:");

Cart.showOrders();

}

}

运行结果:

Java编写滴滴租车_Java滴滴打车系统实现(同时实现租车购物车)相关推荐

  1. 滴滴打车java_Java滴滴打车系统实现(同时实现租车购物车)

    实现过程如下: 构造抽象Auto类:是所有载客类型车的父类,如PassengerAuto类继承了该类 构造抽象类LoadWeight类:是所有既载客又载货车型的父类,如Truck类继承了该类 构造储存 ...

  2. 嘀嘀打车java_Java滴滴打车系统实现(同时实现租车购物车)

    实现过程如下: 构造抽象Auto类:是所有载客类型车的父类,如PassengerAuto类继承了该类 构造抽象类LoadWeight类:是所有既载客又载货车型的父类,如Truck类继承了该类 构造储存 ...

  3. Java编写滴滴租车_JAVA第二季,滴滴租车系统实现

    主程序:client.java package views; import java.util.Scanner; public class Client { public static void ma ...

  4. java编写教师类输出_Java类和对象的区别和联系,超简单易懂!

    在面向对象的编程语言中,类和对象必然是最核心的特性之一.本文主要介绍Java中的类和对象. 示例 以班级成员为例,班上有小红.小明.小李,还有王老师.张老师和魏老师,我们认为他们都属于"人类 ...

  5. Java编写的窗体程序 个人财务系统 个人记账系统 完整代码 下载运行

    今天为大家分享一个java语言编写的个人记账系统程序-413,目前系统功能已经很全面,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步. 开 ...

  6. 用java编写战舰 游戏吗_java – 战舰游戏 – 船舶重叠

    我正在使用ACM库在 Java中编写一个简单的战舰游戏. 游戏开始后,应该将船只放在画布上的随机位置,但问题是船只可能会互相覆盖,这在游戏中是不允许的.如何避免将船放在彼此之上? 我的代码是: pri ...

  7. java编写类骑士游历_java课程设计骑士游历程序的开发

    java课程设计骑士游历程序的开发 JAVA程序设计 课程设计报告 课 题: 骑士游历程序的开发 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间: 2013.06.10 评阅意见: ...

  8. java 钩子 64位 操作系统_Java与系统钩子

    在不少java桌面应用中,经常需要实现热键功能,于是只能利用系统键盘钩子实现. public class KeyboardHook { static { try { // System.out.pri ...

  9. java+获取下个小时_Java获取系统时间少8个小时 | 学步园

    java获取系统时间问题: public class TestDate { public static void main(String[] args) { System.out.println(&q ...

最新文章

  1. leetcode算法题--环绕字符串中唯一的子字符串★
  2. 计算机网络第七次笔记
  3. (翻译)60分钟入门深度学习工具-PyTorch
  4. 坐标偏差大_控制点的坐标复核(二)
  5. git push时如果不再弹出用户和密码的输入提示框该怎么办
  6. WinXP的EFS加密文件如何解密?
  7. VMware安装kali linux 和中文汉化方法
  8. CentOS 7 安装Mono 和 MonoDevelop
  9. 解决Rails找不到Javascript的错误
  10. usb驱动---linux ACM驱动详解ACA【转】
  11. Grid++Report——打印功能
  12. Hyper-V 3.0 - 关于存储迁移的一些说明
  13. ZUCC计算机网络 网络安全
  14. Android简易项目--傻瓜式阿拉伯语输入法(Dummy Arabic Input)
  15. EasyUI中combogrid设置onSelect后 获取不到getSelecte问题解决
  16. 【公众号】JAVA微信公众号技术大佬文章精选
  17. CanMV K210 AI开发板全网首发,项目代码完全开源,千套开发板限时优惠!
  18. 小澳的葫芦(最短路)
  19. 游戏 csp 201712-2
  20. APK签名机制原理详解

热门文章

  1. 深度linux运行速度慢,Deepin(深度操作系统)解决老电脑卡顿,慢等问题
  2. 公司年会直播方案怎么做
  3. NBA球员总得分预测——K近邻算法
  4. 记账就使用电子记账本 用电脑记录安全放心
  5. 我愿称之为史上最全的深度学习面经总结(附答案详解)
  6. 历数两年内的重大空难事故
  7. 埃航CEO:到现场时浓烟滚滚 失事飞机机长曾想返航
  8. 工作实战之xss攻击防范
  9. java后端+uniapp 对接微信app支付 报错-1
  10. 赛门铁克就“误杀系统文件”一事作官方声明