Trong đó: - PHÒNG có khoá là Mã Phòng - Loại Phòng gồm: Phòng Thường Đơn, Phòng Thường Đôi, Phòng Vip, Phòng Hội Nghị - Trạng Thái có thể là Còn Trống hoặc Đã Thuê - Giá Phòng sẽ dao độn
PHÁT BIỂU BÀI TOÁN
Phát biểu bài toán
Khách sạn ABC cần quản lý thuê phòng khách sạn gồm các thông tin như sau: a PHÒNG
Khách sạn gồm nhiều PHÒNG khác nhau Mỗi PHÒNG lưu trữ các thông tin:
Mã Phòng, Loại Phòng, Trạng Thái, Giá Phòng Trong đó:
- PHÒNG có khoá là Mã Phòng
- Loại Phòng gồm: Phòng Thường Đơn, Phòng Thường Đôi, Phòng Vip, Phòng Hội Nghị
- Trạng Thái có thể là Còn Trống hoặc Đã Thuê
- Giá Phòng sẽ dao động từ 1000000 đến 2500000 và phụ thuộc theo Loại
Phòng mà KHÁCH HÀNG chọn b NHÂN VIÊN
Khách sạn có đội ngũ nhân viên đa dạng, mỗi nhân viên sẽ được lưu trữ các thông tin quan trọng như mã nhân viên, họ tên, giới tính, năm sinh và số điện thoại.
Hệ Số Lương., Lương.Trong đó:
- NHÂN VIÊN có khoá là Mã Nhân Viên
- Lương = Hệ Số Lương * Lương Cơ Bản (LCB = 500000) c KHÁCH HÀNG
Khi khách hàng đến thuê phòng tại khách sạn, họ cần cung cấp thông tin cá nhân như họ tên, giới tính, năm sinh và số điện thoại Sau khi hoàn tất thủ tục, mỗi khách hàng sẽ nhận được một mã khách hàng từ nhân viên khách sạn để sử dụng cho hóa đơn.
Mỗi khách hàng khi thuê phòng sẽ nhận được hóa đơn từ nhân viên quản lý, trong đó bao gồm các thông tin quan trọng như Mã Hóa Đơn, Ngày Lập, Số Ngày Thuê và Thành.
- Mỗi HOÁ ĐƠN được phân biệt bằng Mã Hoá Đơn
- Mỗi KHÁCH HÀNG có thể thuê nhiều PHÒNG
- Mỗi HOÁ ĐƠN do 1 NHÂN VIÊN lập và cấp cho 1 KHÁCH HÀNG nhất định
Mục Tiêu
Trong bài tập lớn này chỉ dừng lại ở việc xây dựng hệ thống “Quản lý thuê phòng khách sạn” cho khách sạn đảm bảo các yêu cầu:
Quản lý việc đăng ký thuê phòng và trả phòng.
Quản lý hiện trạng từng phòng.
Quản lý thu chi tài chính của khách sạn.
Tiết kiệm thời gian, nhân lực.
Dữ liệu luôn mang tính nhất quán, thường xuyên được cập nhật.
Hỗ trợ tra cứu và nhập báo cáo nhanh chóng, chính xác.
Giảm bớt thao tác thủ công, tăng sự chính xác khi làm việc.
Tính toán (tính tổng, tìm max, min,…)
XÁC ĐỊNH SƠ ĐỒ LỚP CỦA BÀI TOÁN
Các lớp được cài đặt
Phòng o Thuộc tính: maP,loai,tt,gia o Phương thức: khởi tạo, nhập thông tin phòng, xuất thông tin phòng
Danh sách Phòng o Thuộc tính: ArrayList o Phương thức: Nhập danh sách phòng, hiện danh sách phòng, hiện danh sách phòng trống
Hoá Đơn o Thuộc tính: maHD,ngayLap,soNgayThue,thanhTien,KH,NV,Phong o Phương thức: Khởi tạo, nhập hoá đơn, xuất hoá đơn
Danh sách Hoá Đơn o Thuộc tính: ArrayList o Phương thức: nhập DSHD, hiện DSHD, tìm kiếm HD, tổng Doanh thu, lưu file, đọc file
Người o Thuộc tính: ht, gt,ns,sdt o Phương thức: Khởi tạo, nhập, xuất
Khách Hàng extends Người o Thuộc tính: makh o Phương thức: Khởi tạo, nhập, xuất
Danh sách Khách Hàng o Thuộc tính: ArrayList o Phương thức: nhập DSKH, xuất DSKH
Nhân Viên extends Người o Thuộc tính: manv,hsl,lcb o Phương thức: Khởi tạo, nhập, xuất, tính lương
Danh sách Nhân Viên o Thuộc tính: ArrayList o Phương thức: nhập DSNV, hiện DSNV, xoá NV, sắp xếp DSNV theo tên, tổng tiền, thêm NV
Quan hệ giữa các lớp
o Lớp KhachHang và NhanVien kế thừa từ lớp Nguoi o Implements các lớp NhanVien, HoaDon, KhachHang,Phong,Nguoi từ lớp Serializable.
CODE
Code Phòng
package btl; import java.io.Serializable; import java.util.Scanner; public class Phong implements Serializable{ private String maP,loai,tt; private int gia; public Phong() {
} public Phong(String maP, String loai, String tt, int gia) { this.maP = maP; this.loai = loai; this.tt = tt; this.gia = gia;
} public String getTt() { return tt;
} public void setTt(String tt) { this.tt = tt;
} public String getMaP() { return maP;
} public void setMaP(String maP) { this.maP = maP;
} public String getLoai() { return loai;
} public void setLoai(String loai) { this.loai = loai;
} public int getGia() { return gia;
} public void setGia(int gia) { this.gia = gia;
Để nhập mã phòng, người dùng cần sử dụng lệnh `System.out.print("Nhập mã phòng: ");` và sau đó nhập thông tin qua `maP=new Scanner(System.in).next();` Tiếp theo, hệ thống yêu cầu người dùng chọn loại phòng với các tùy chọn: 1 Phòng thường đơn, 2 Phòng thường đôi, 3 Phòng Vip, và 4 Phòng hội nghị Dựa vào lựa chọn của người dùng, giá phòng sẽ được thiết lập tương ứng: Phòng thường đơn có giá 1.000.000 VNĐ, phòng thường đôi 1.500.000 VNĐ, phòng Vip 2.000.000 VNĐ, và phòng hội nghị 2.500.000 VNĐ Nếu người dùng nhập lựa chọn không hợp lệ, hệ thống sẽ thông báo và yêu cầu nhập lại.
Đoạn mã trên yêu cầu người dùng nhập tình trạng phòng, với hai lựa chọn: 1 cho phòng còn trống và 2 cho phòng đã thuê Nếu người dùng nhập 1, biến "tt" sẽ được gán giá trị "còn trống" Nếu nhập 2, "tt" sẽ nhận giá trị "đã thuê" Nếu lựa chọn không hợp lệ, chương trình sẽ thông báo và yêu cầu người dùng nhập lại tình trạng phòng.
@Override public String toString() { return "Phong{" + "maP=" + maP + ", loai=" + loai + ", tt=" + tt + ", gia=" + gia + '}';
Code danh sách phòng
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/ package btl; import java.util.ArrayList; import java.util.Scanner;
ArrayList dsp=new ArrayList(); public void nhapDSP(){
System.out.println("Nhập số lượng phòng: "); int n=new Scanner(System.in).nextInt(); while (n