答答租车系统(实际开发代码编写)
一、项目功能
1、展示所有可租车辆
2、选择车型、租车辆、租车天数
3、展示租车清单,包括总金额、总载货量及车型、总载客量及车型
二、项目分析
1、数据模型:通过对现实世界的事与物的主要特征的分析、抽象,提取数据结构及相应的约束。其中,数据结构的组成是:操作(方法)、属性,如将现实的车写成代码。本项目的数据模型是🚗模型。
货车(载货量) | 客车(载客量) | 皮卡车(载货、载客量) |
轻型(5t)、重型(5-20t) |
小客车(4人)、大客车(>10人) | 载货、载客 |
2、业务模型:设计程序之前,应该明确程序执行的任务,确认业务需求的目的在于创建一个能同时满足零售商和消费者需要的解决方案。本项目中➡️消费者。
用户
选车 租车天数 统计金额 载货、载客量
3、显示和流程
显示:用户可以看到的信息提示界面
流程:显示信息的执行过程、步骤
二、项目实现
1、模型层:在答答租车系统中,我们的数据模型是汽车,所以我们首先创建汽车模型类。
(1)创建汽车模型类
1 package com.companyname.model; 2 3 /** 4 * 汽车模型类 5 * 6 * @author wangna 7 */ 8 public class Car { 9 private int carId;// 车序号 10 private String carName; 11 private double priceForAday;// 一天的租金 12 private int personAmount;// 容量 13 private int carAmount;// 容量 14 15 public int getCarId() { 16 return carId; 17 } 18 19 public void setCarId(int carId) { 20 this.carId = carId; 21 } 22 23 public String getCarName() { 24 return carName; 25 } 26 27 public void setCarName(String carName) { 28 this.carName = carName; 29 } 30 31 public double getPriceForAday() { 32 return priceForAday; 33 } 34 35 public void setPriceForAday(double priceForAday) { 36 this.priceForAday = priceForAday; 37 } 38 39 public int getPersonAmount() { 40 return personAmount; 41 } 42 43 public void setPersonAmount(int personAmount) { 44 this.personAmount = personAmount; 45 } 46 47 public int getCarAmount() { 48 return carAmount; 49 } 50 51 public void setCarAmount(int carAmount) { 52 this.carAmount = carAmount; 53 } 54 55 }
(2)创建租车信息模型类
1 package com.companyname.model; 2 3 public class RentInfo { 4 private Car car; 5 private int day;// 租的天数 6 private int nums;// 租几辆 7 private double sumPrize; 8 9 public Car getCar() { 10 return car; 11 } 12 13 public void setCar(Car car) { 14 this.car = car; 15 } 16 17 public int getDay() { 18 return day; 19 } 20 21 public void setDay(int day) { 22 this.day = day; 23 } 24 25 public int getNums() { 26 return nums; 27 } 28 29 public void setNums(int nums) { 30 this.nums = nums; 31 } 32 33 public double getSumPrize() { 34 return sumPrize; 35 } 36 37 public void setSumPrize(double sumPrize) { 38 this.sumPrize = sumPrize; 39 } 40 41 }
2、服务层:
(1)显示车信息
1 package com.companyname.service; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import com.companyname.model.Car; 7 8 public class CarInfoService { 9 10 private List<Car> carList = new ArrayList<>();//车的集合(看作长度可变化的数组) 11 12 /** 13 * 添加car到carlist 14 * 注意: 15 * 所添加的car是在页面(客户端,即main())传入的 16 */ 17 public void addCar(Car car){ 18 carList.add(car); 19 } 20 21 /** 22 * 获取所有的car信息 23 */ 24 public List<Car> getCars() { 25 return carList; 26 } 27 28 /** 29 * 根据carId从carlist中找出相应car 30 */ 31 public Car getCarById(int carId) { 32 for (Car car : carList) { 33 if (car.getCarId() == carId) { 34 return car; 35 } 36 } 37 return null; 38 } 39 }
(2)租车服务
1 package com.companyname.service; 2 3 import com.companyname.model.Car; 4 5 public class RentService { 6 7 /** 8 * 客户租车 9 * @param carId 10 * @param day 租几天 11 * @param amount 租几辆 12 * @return 总金额 13 */ 14 public double rentCar(int carId, int day, int amount, CarInfoService sc){ 15 double sumPrize = 0; 16 Car car = sc.getCarById(carId); 17 double prizeForCar = car.getPriceForAday(); 18 sumPrize = prizeForCar*day*amount; 19 return sumPrize; 20 } 21 22 }
3、创建测试类
1 package com.companyname.test; 2 3 import com.companyname.model.Car; 4 import com.companyname.model.RentInfo; 5 import com.companyname.service.CarInfoService; 6 import com.companyname.service.RentService; 7 8 /** 9 * test class 10 * 11 * @author wangna 12 */ 13 public class TestCar { 14 public static void main(String[] args) { 15 CarInfoService sc = new CarInfoService(); 16 17 /****************** 1 添加车辆到carList *********************/ 18 // audi 19 Car audi = new Car(); 20 audi.setCarId(1); 21 audi.setCarName("奥迪A4"); 22 audi.setPriceForAday(500); 23 audi.setPersonAmount(4); 24 sc.addCar(audi); 25 26 // pika 27 Car pika = new Car(); 28 pika.setCarId(3); 29 pika.setCarName("pika"); 30 pika.setPriceForAday(440); 31 pika.setPersonAmount(4); 32 pika.setCarAmount(2); 33 sc.addCar(pika); 34 35 /****************** 2 租车 *********************/ 36 RentService rentService = new RentService(); 37 Car car = sc.getCarById(1); 38 double prize = rentService.rentCar(car, 2, 2); 39 RentInfo rentInfo = new RentInfo(); 40 rentInfo.setCar(car); 41 rentInfo.setDay(2); 42 rentInfo.setNums(2); 43 rentInfo.setSumPrize(prize); 44 45 System.out.println("总金额:" + rentInfo.getSumPrize() + "-->"+"车名:"+rentInfo.getCar().getCarName()+"-->"+"租几天:"+rentInfo.getDay()+"-->"+"租几辆:"+rentInfo.getNums()+"-->"+"总金额:"+rentInfo.getSumPrize()); 46 } 47 }
运行结果:
总金额:2000.0-->车名:奥迪A4-->租几天:2-->租几辆:2-->总金额:2000.0
每天坚持进步一点点。