Java có thể giúp bạn tạo nên một hệ thống đỗ xe đơn giản mà sau đó, bạn có thể thiết kế và tích hợp với database, thêm xác thực, phát triển GUI để triển khai trong thực tế. Dưới đây là hướng dẫn chi tiết.
Cách xây dựng hệ thống đỗ xe bằng Java
Ví dụ trong bài viết dùng ArrayList - một mảng thông dụng và có thể tùy chỉnh kích thước. Bạn có thể truy cập các thành phần bằng một index, triển khai hoạt động CRUD và nhiều hơn thế nữa. Để dùng ArrayList, bạn cần nhập class ArrayList từ thư viện chuẩn Java. Tương tự, với hoạt động input-input, nhập class Scanner. Xác định một class công khai, VehiceParkingSystem làm class chính.
Xác định 3 biến tĩnh: totalSlots, availableSlots, và parkedCars. totalSlots là tổng số vị trí đỗ xe, availableSlots theo dõi số lượng chỗ trống còn lại. parkedCars là ArrayList mà chứa biển số của những chiếc ô tô hiện đang đỗ.
Định nghĩa hàm main() và tạo một đối tượng của class Scanner. Yêu cầu người dùng nhập tổng số chỗ đậu xe & lưu nó trong totalSlots. Ban đầu, các vị trí sẵn có bằng tổng chỗ đậu xe vì thế khởi tạo availableSlots có cùng giá trị với totalSlots.
import java.util.ArrayList;
import java.util.Scanner;
public class VehicleParkingSystem {
static int totalSlots, availableSlots;
static ArrayList<String> parkedCars = new ArrayList<String>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the total number of parking slots in the facility:");
totalSlots = sc.nextInt();
availableSlots = totalSlots;
Dùng while loop chạy vô thời hạn. Hỏi người dùng có muốn đậu xe hay không, loại bỏ nó, xem ô tô đã đỗ hoặc thoát chương trình. Tùy thuộc vào lựa chọn, gọi phương thức tương ứng. Nếu người dùng muốn kết thúc chương trình này, dùng System.exit(0) để kết thúc ngay lập tức.
while (true) {
System.out.println("\n What would you like to do?");
System.out.println("1. Park a car");
System.out.println("2. Remove a car");
System.out.println("3. View parked cars");
System.out.println("4. Exit");
int choice = sc.nextInt();
switch (choice) {
case 1:
parkCar();
break;
case 2:
removeCar();
break;
case 3:
viewParkedCars();
break;
case 4:
System.exit(0);
default:
System.out.println("Invalid choice. Please try again.");
}
}
}
Định nghĩa phương thức tĩnh công khai, parkCar(), không có kiểu trả về. Nếu không có sẵn vị trí đậu xe, thông báo cho người dùng và quay lại. Nếu không, yêu cầu người dùng nhập biển số ô tô và dùng hàm add() để chèn nó vào ArrayList. Giảm số vị trí có sẵn xuống 1 và hiển thị chương trình đỗ xe cùng số vị trí còn trống.
public static void parkCar() {
if (availableSlots == 0) {
System.out.println("Sorry, there are no available parking slots.");
return;
}
Scanner sc = new Scanner(System.in);
System.out.println("Enter the license plate number of the car:");
String licensePlate = sc.nextLine();
parkedCars.add(licensePlate);
availableSlots--;
System.out.println("Car is parked successfully. The current available slots are: " + availableSlots);
}
Xác định một hàm, removeCar(). Nếu giá trị vị trí còn trống và tổng số vị trí trùng khớp, hiện không còn chỗ đậu xe và quay lại. Nếu không, hỏi người dùng biển số xe. Kiểm tra biển số người dùng nhập vào trong ArrayList bằng contains().
Nếu thành công, dùng phương thức remove() để lấy dữ liệu đó khỏi ArrayList và tăng 1 số lượng vị trí đậu xe sẵn có. Hiện thông báo rằng chương trình này đã loại bỏ chiếc xe đó cùng với số vị trí trống hiện tại. Trong trường hợp bạn không tìm thấy biển số xe, có nghĩa hiện không thấy xe đó đậu trong gara.
public static void removeCar() {
if (availableSlots == totalSlots) {
System.out.println("There are no parked cars.");
return;
}
Scanner sc = new Scanner(System.in);
System.out.println("Enter the license plate number of the car to be removed:");
String licensePlate = sc.nextLine();
if (parkedCars.contains(licensePlate)) {
parkedCars.remove(licensePlate);
availableSlots++;
System.out.println("Car removed successfully. The current available slots are: " + availableSlots);
} else {
System.out.println("The car is not parked here.");
}
}
Xác định phương thức, viewParkedCars(). Tương tự như trên, kiểm tra xem liệu đã hết chỗ đậu xe hay chưa. Nếu không, hiện các biển số xe đã đậu. Để làm việc này, dùng lopp for-each để lặp các mục trong ArrayList và hiện lần lượt từng biển số.
public static void viewParkedCars() {
if (availableSlots == totalSlots) {
System.out.println("There are no parked cars.");
return;
}
System.out.println("Parked cars:");
for (String licensePlate : parkedCars) {
System.out.println(licensePlate);
}
}
}
Chương trình quản lý hệ thống đậu xe đơn giản đã sẵn sàng cho bạn sử dụng.
Và đây là kết quả:
Chúc các bạn thành công!