停车场管理系统java实现进入和出去还有计时收费
时间: 2023-07-27 10:07:43 浏览: 178
好的,停车场管理系统主要包括以下功能模块:车辆进出管理、计费管理、车位管理和数据报表管理。下面是一个简单的Java实现示例,包括车辆进出管理和计费管理模块:
```java
import java.util.Date;
public class Car {
private String plateNumber; // 车牌号
private Date enterTime; // 进入时间
private Date exitTime; // 出去时间
// 构造函数
public Car(String plateNumber) {
this.plateNumber = plateNumber;
this.enterTime = new Date(); // 进入时间为当前时间
}
// 离开停车场
public void leave() {
this.exitTime = new Date(); // 出去时间为当前时间
}
// 计算停车费用
public double calculateFee() {
long duration = this.exitTime.getTime() - this.enterTime.getTime(); // 停车时长
double fee = duration / 1000.0 / 60.0 / 60.0 * 5.0; // 停车费用:每小时5元
return fee;
}
// 获取车牌号
public String getPlateNumber() {
return this.plateNumber;
}
}
import java.util.ArrayList;
import java.util.List;
public class ParkingLot {
private List<Car> cars; // 车辆列表
private int capacity; // 停车场容量
// 构造函数
public ParkingLot(int capacity) {
this.cars = new ArrayList<>();
this.capacity = capacity;
}
// 进入停车场
public boolean enter(Car car) {
if (this.cars.size() < this.capacity) {
this.cars.add(car);
return true;
} else {
return false;
}
}
// 离开停车场
public void exit(Car car) {
car.leave(); // 设置出去时间
this.cars.remove(car); // 从列表中删除车辆
}
// 获取停车场剩余车位
public int getAvailableSpaces() {
return this.capacity - this.cars.size();
}
}
import java.util.Scanner;
public class ParkingManagementSystem {
public static void main(String[] args) {
ParkingLot parkingLot = new ParkingLot(10); // 初始化停车场,容量为10
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入指令:");
String command = scanner.nextLine();
if (command.equals("enter")) { // 进入停车场
System.out.println("请输入车牌号:");
String plateNumber = scanner.nextLine();
Car car = new Car(plateNumber);
boolean success = parkingLot.enter(car);
if (success) {
System.out.println("车辆已进入停车场!");
} else {
System.out.println("停车场已满,无法进入!");
}
} else if (command.equals("exit")) { // 离开停车场
System.out.println("请输入车牌号:");
String plateNumber = scanner.nextLine();
for (Car car : parkingLot.getCars()) {
if (car.getPlateNumber().equals(plateNumber)) {
parkingLot.exit(car);
double fee = car.calculateFee();
System.out.println("车辆已离开停车场,停车费用为:" + fee + "元。");
break;
}
}
} else if (command.equals("status")) { // 查看停车场状态
int availableSpaces = parkingLot.getAvailableSpaces();
int usedSpaces = parkingLot.getCars().size();
System.out.println("停车场状态:空位" + availableSpaces + "个,已用" + usedSpaces + "个。");
} else if (command.equals("quit")) { // 退出程序
break;
} else { // 无效指令
System.out.println("无效指令,请重新输入!");
}
}
scanner.close();
}
}
```
这段代码实现了一个简单的停车场管理系统,可以通过命令行输入指令来模拟车辆的进出和停车费用的计算。您可以根据自己的需求进行修改和扩展。
阅读全文