停车场管理系统实验报告
一、题目
随着家庭购买汽车的增加,停车场车位紧张的问题越来越突出。请根据题目要求完成简单的车位管理程序。
- 停车场有若干停车位(为说明问题,假定为n个,可扩),每个位置可以存放不同种类的的汽车,包括卡车Truck,客车Carriage和小轿车Car,但同一时刻一个位置只能存放0或1辆汽车。
- 管理系统模拟实际车辆停车的情况:新来车辆时如果有空位,按顺序为该车分配停车位;车辆开走时,按停车场的收费标准交纳相应停车费(假定停车场能获取车辆对象的类别);统计各类车辆的数量。
- 定义描述停车场的类Park,其中有n个位置用于存放各类车辆。
- 定义基类Automobile:①驾驶员;②车牌号(字符串)、车辆类别(分为Car、Truck、Carriage);③String getMobileMessage()车辆相关信息;④parking()泊车、start()开车、pause()暂停等。
- 定义派生类Truck,Carriage和Car,这些车辆除了拥有车牌号(字符串)、车辆已使用年数(整数)之外, Truck还拥有载重量(浮点数,单位吨)属性,Carriage还拥有乘坐人数(整数,单位人)属性, Car还拥有排气量(浮点数,单位L)属性。
- 每辆车上只有一驾驶员,驾驶员按停车场的收费要求支付费用;按现实停车场的场景来模拟需有的动作(方法):在出口前停车、付费、开车、泊车等。
- 收费标准:其中Truck收费2元/小时,Carriage收费1.5元/小时,Car收费1元/小时。
- 测试上述所要求的各种功能,即根据菜单命令为新来车辆分配停车位、开走车辆(输入车位编号)时付费、显示停车场中各类车辆的数量。
二、实验分析
三、代码
package PARKING_ADM;
import java.util.ArrayList;
import java.util.List;
public class Parking {
//车的总数量
private int n = 0;
//定义一个集合存储停车位
private List<ParkingSpace> parkSpaces= new ArrayList<>();
//空车位的数量
private int parkedSpace = 0;
/**
* 构造方法
*/
public Parking(){
System.out.println("创建了一个空的停车位");
}
/**
* 设置停车位的个数,并创建相应个数的ParkingSpace对象
* @param n
*/
public void setN(int n){
this.n = n;
for(int i = 0;i < n;i++){
parkSpaces.add(new ParkingSpace());
}
}
/**
* 扩建停车位num个,创建了num个新的ParkingSpace对象,parkSpaces集合里增添了num个新的元素
* @param num
*/
public void addParkingSpace(int num){
for(int i = 0;i < num;i++){
parkSpaces.add(new ParkingSpace());
}
n+=num;
}
/**
* 获得停车位的个数
* @return
*/
public int getN(){
return n;
}
/**
* 获取已被占用的停车位的个数
* @return
*/
public int getParkedSpace(){
return parkedSpace;
}
/**
* 设置被占用的停车位数量
* @param parkedSpace
*/
public void setParkedSpace(int parkedSpace){
this.parkedSpace = parkedSpace;
}
/**
* 开进停车位一辆车,被占据的停车位+1
*/
public void addParkedSpaces(){
parkedSpace++;
}
public void minusParkedSpaces(){
parkedSpace--;
}
}
package PARKING_ADM;
public class ParkingSpace {
//isParked表示该停车位是否被占用
private boolean isParked = false;
//carType开进的车的类型
private String carType = null;
//停车位的序号
private int parkingNum = -1;
public ParkingSpace(){
}
}
未完待续…