用java编写一个停车场管理系统
时间: 2023-08-22 11:07:18 浏览: 127
基于JAVA语言开发的停车场管理系统
好的,停车场管理系统主要包括以下功能:
1. 停车场的初始化:包括停车场信息的读取,车位的初始化等。
2. 车辆的进出管理:包括车辆的进入和出去的时间、车位的占用情况等。
3. 收费管理:根据车辆的停留时间和车型,计算停车费用。
4. 停车场信息的查询:包括停车场的总车位数、剩余车位数、已停车辆信息等。
下面是一个简单的停车场管理系统的Java代码实现:
```java
import java.util.*;
class Car {
private String plateNumber; // 车牌号
private int carType; // 车型
private Date enterTime; // 进入时间
private Date exitTime; // 出去时间
private double cost; // 停车费用
public Car(String plateNumber, int carType) {
this.plateNumber = plateNumber;
this.carType = carType;
}
public String getPlateNumber() {
return plateNumber;
}
public int getCarType() {
return carType;
}
public Date getEnterTime() {
return enterTime;
}
public void setEnterTime(Date enterTime) {
this.enterTime = enterTime;
}
public Date getExitTime() {
return exitTime;
}
public void setExitTime(Date exitTime) {
this.exitTime = exitTime;
}
public double getCost() {
return cost;
}
public void setCost(double cost) {
this.cost = cost;
}
}
public class ParkingLot {
private int totalSpace; // 总车位数
private int remainingSpace; // 剩余车位数
private List<Car> cars; // 已停车辆信息
public ParkingLot(int totalSpace) {
this.totalSpace = totalSpace;
this.remainingSpace = totalSpace;
this.cars = new ArrayList<>();
}
// 进入停车场
public boolean enter(Car car) {
if (remainingSpace <= 0) {
System.out.println("停车场已满!");
return false;
}
car.setEnterTime(new Date());
cars.add(car);
remainingSpace--;
System.out.println("车辆 " + car.getPlateNumber() + " 进入停车场,当前剩余车位数为 " + remainingSpace);
return true;
}
// 出停车场
public void exit(Car car) {
if (!cars.contains(car)) {
System.out.println("该车辆未在停车场内!");
return;
}
car.setExitTime(new Date());
long minutes = (car.getExitTime().getTime() - car.getEnterTime().getTime()) / (1000 * 60); // 计算停车时间
double cost = calculateCost(car.getCarType(), minutes); // 计算停车费用
car.setCost(cost);
cars.remove(car);
remainingSpace++;
System.out.println("车辆 " + car.getPlateNumber() + " 离开停车场,停车费用为 " + cost + " 元,当前剩余车位数为 " + remainingSpace);
}
// 计算停车费用
private double calculateCost(int carType, long minutes) {
double costPerMinute;
if (carType == 1) { // 小汽车
costPerMinute = 0.1;
} else if (carType == 2) { // 大客车
costPerMinute = 0.2;
} else { // 货车
costPerMinute = 0.3;
}
return costPerMinute * minutes;
}
// 查询停车场信息
public void showInfo() {
System.out.println("停车场总车位数:" + totalSpace);
System.out.println("停车场剩余车位数:" + remainingSpace);
System.out.println("已停车辆信息:");
for (Car car : cars) {
System.out.println("车牌号:" + car.getPlateNumber() + ",进入时间:" + car.getEnterTime() + ",停车费用:" + car.getCost() + " 元");
}
}
public static void main(String[] args) {
ParkingLot parkingLot = new ParkingLot(10);
Car car1 = new Car("京A12345", 1);
parkingLot.enter(car1);
try {
Thread.sleep(5000); // 模拟停车5分钟
} catch (InterruptedException e) {
e.printStackTrace();
}
parkingLot.exit(car1);
Car car2 = new Car("京B67890", 2);
parkingLot.enter(car2);
try {
Thread.sleep(10000); // 模拟停车10分钟
} catch (InterruptedException e) {
e.printStackTrace();
}
parkingLot.exit(car2);
parkingLot.showInfo();
}
}
```
以上代码实现一个简单的停车场管理系统,包含了车辆的进出管理、收费管理、停车场信息的查询等功能。
阅读全文