Mục Lục
Mục Lục
Bài Tập Bài Tập - Đăng Ký & Đăng Nhập - Lập trình JSP/Servlet - WCD Bài tập - Tra cứu thông tin cá nhân - lập trình Java Web - JSP/Servlet Bài tập ôn luyên EL & JSTL trong JSP/Servlet - Lập trình JSP/Servlet Bài tập quản lý sản phẩm sử dụng Session, JSTL, JavaBean trong lập trình JSP/Servlet Dự án quản lý sinh viên + CSDL - Database SQL Server - MySQL - Lập trình JSP/Servlet Thiết kế web tin tức - lập trình JSP/Servlet Bài tập - Thiết kế website bán đồ điện tử - Lập trình JSP/Servlet Bài tập - viết flow đăng nhập - Lập trình JSP/Servlet Bài tập - Thiết kế website bán hàng lưu niệm - giỏ hàng, thanh toán - Lập trình JSP Servlet Bài tập - Quản lý sách & tác giả - Lập trình JSP/Servlet Bài tập - Hiển thị thông tin sinh viên - fake dữ liệu - truyền dữ liệu từ Servlet tới JSP - Lập trình JSP/Servlet Bài Tập - Đăng Ký & Đăng Nhập - Ứng dụng session servlet - Lập trình JSP/Servlet Bài tập - Quản lý sản phẩm sử dụng Session - Lập trình JSP/Servlet Bài Tập Thiết Kế Calculator Online - Lập trình JSP/Servlet Bài tập - quản lý sinh viên sửa dụng session - Lập trình JSP/Servlet Bài Tập - Giải phương trình bậc 2 & lưu log xử lý - Lập trình JSP/Servlet Bài tập - Phân layout trong JSP - Tìm hiểu đối tượng mặc định trong JSP - Lập trình JSP Servlet Quản lý sách - Khoá học lập trình JSP/Servlet Quản lý nhà hàng - Khoá Học JSP/Servlet HỆ THỐNG QUẢN LÝ BÃI ĐỖ XE - KHOÁ HỌC JSP/SERVLET QUẢN LÝ RẠP CHIẾU PHIM - KHOÁ HỌC JSP/SERLET Xây dựng hệ thống Quản Lý Ghi Chú - Khoá Học JSP/Servlet BÀI TẬP JSP/SERVLET: QUẢN LÝ NGƯỜI DÙNG - KHOÁ JSP/SERVLET Quiz Trắc Nghiệm Ôn Tập JSP / Servlet
JSP Servlet

HỆ THỐNG QUẢN LÝ BÃI ĐỖ XE - KHOÁ HỌC JSP/SERVLET

1. Yêu cầu chung

Xây dựng ứng dụng web quản lý bãi đỗ xe sử dụng:

  • JSP/Servlet
  • JSTL + EL
  • JDBC

Áp dụng mô hình MVC

📌 2. CHỨC NĂNG CRUD

2.1. CRUD vehicle_type (Loại xe)

Chức năng:

  • Hiển thị danh sách
  • Thêm mới
  • Cập nhật
  • Xóa

Thuộc tính:

  • name (tên loại xe)
  • price_per_hour (giá/giờ)

Yêu cầu:

  • Tên không trùng
  • Giá > 0

2.2. CRUD parking_slot (Vị trí đỗ)

Chức năng:

  • Hiển thị danh sách
  • Thêm mới
  • Cập nhật
  • Xóa

Thuộc tính:

  • slot_code (mã vị trí)
  • status (EMPTY / OCCUPIED)

Yêu cầu:

  • Mã vị trí là duy nhất
  • Không được xóa khi đang OCCUPIED

2.3. CRUD vehicle (Xe)

Chức năng:

  • Hiển thị danh sách
  • Thêm mới
  • Cập nhật
  • Xóa

Thuộc tính:

  • license_plate (biển số)
  • type_id (loại xe)

Yêu cầu:

  • Biển số là duy nhất
  • Không để trống

2.4. CRUD parking_ticket (Vé gửi xe)

Chức năng:

  • Hiển thị danh sách
  • Thêm mới (xe vào)
  • Cập nhật (xe ra)
  • Xóa

Khi thêm (Check-in):

  • Chọn:
    • Xe
    • Vị trí
  • Tự động:
    • checkin_time
    • status = PARKING
  • Cập nhật slot → OCCUPIED

Khi cập nhật (Check-out):

  • Nhập:
    • checkout_time
  • Tự động:
    • Tính total_price
  • Cập nhật:
    • status = DONE
    • slot → EMPTY

Công thức tính tiền:

total_price=(checkout_timecheckin_time)hours×price_per_hour\text{total\_price} = (\text{checkout\_time} - \text{checkin\_time})_{hours} \times \text{price\_per\_hour}

🗄️ 3. SCRIPT SQL (TỐI ĐA 4 BẢNG)


CREATE DATABASE parking_management;
USE parking_management;

-- 1. Loại xe
CREATE TABLE vehicle_type (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL UNIQUE,
    price_per_hour DECIMAL(10,2) NOT NULL
);

-- 2. Vị trí đỗ
CREATE TABLE parking_slot (
    id INT PRIMARY KEY AUTO_INCREMENT,
    slot_code VARCHAR(20) NOT NULL UNIQUE,
    status ENUM('EMPTY', 'OCCUPIED') DEFAULT 'EMPTY'
);

-- 3. Xe
CREATE TABLE vehicle (
    id INT PRIMARY KEY AUTO_INCREMENT,
    license_plate VARCHAR(20) NOT NULL UNIQUE,
    type_id INT,
    FOREIGN KEY (type_id) REFERENCES vehicle_type(id)
);

-- 4. Vé gửi xe
CREATE TABLE parking_ticket (
    id INT PRIMARY KEY AUTO_INCREMENT,
    vehicle_id INT,
    slot_id INT,
    checkin_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    checkout_time DATETIME NULL,
    total_price DECIMAL(10,2) DEFAULT 0,
    status ENUM('PARKING', 'DONE') DEFAULT 'PARKING',

    FOREIGN KEY (vehicle_id) REFERENCES vehicle(id),
    FOREIGN KEY (slot_id) REFERENCES parking_slot(id)
);

-- Dữ liệu mẫu
INSERT INTO vehicle_type(name, price_per_hour) VALUES
('Xe máy', 5000),
('Ô tô', 20000);

INSERT INTO parking_slot(slot_code) VALUES
('A1'), ('A2'), ('B1'), ('B2');






Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó

×