1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án xây dựng phần mềm quản lý khách sạn

37 316 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 1,87 MB

Nội dung

 Dữ liệu: - Dữ liệu được đưa lên các mảng data nằm trong constant – “nhanVienAray, phongAray, dichVuAray, khachAray” chúng là 1 mảng động dạng ArrayList..  Các biến liên kết bảng sẽ

Trang 1

Báo cáo của pdkpro

Trang 2

Lời Cảm On

Trang 3

MỤC LỤC

I Giới Thiệu.

1 Tổng Quan Về Chương Trình.

2 Yêu Cầu Bài Toán.

3 Thuật Toán Quản Lý.

II Giải Quyết Bài Toán :

Trang 4

Đề Bài -

o Hiển thị thông tin lên giao diện.

o Bổ sung thêm 1 đối tượng vào danh sách.

o Chỉnh sửa các đối tượng.

o Xóa 1 hay nhiều đối tượng.

o Sắp xếp các đối tượng.

o Tìm kiếm theo nhiều hướng.

o In ra hóa đơn, tính tiền của từng khách.

o Tính tiền dựa trên số ngày và dịch vụ mà khách hang yêu cầu.

o Các phòng được phân thành các loại với giá và sức chứa khác

nhau, yêu cầu tính tiền dựa trên giá của từng phòng.

o Có user đăng nhập.

o Tạo tài khoản quản lý.

o Thay đổi mật khẩu tài khoản quản lý.

Trang 5

I Giới Thiệu:

1 Tổng Quan Về Chương Trình.

2 Yêu Cầu Bài Toán.

3 Thuật Toán Quản Lý.

Dữ liệu:

- Dữ liệu được đưa lên các mảng data nằm trong constant –

“nhanVienAray, phongAray, dichVuAray, khachAray” chúng là 1 mảng động dạng ArrayList.

- Các thao tác được tiến hành trên “các mảng data” khi nào kết

thúc hoặc người dùng muốn lưu kết quả thì “các mảng data” sẽ được update vào lại DB.

Trang 6

 Trong DB các bảng được đặt tên có kèm _tbl phía sau Vd user_tbl.

 Biến dữ liệu trong mỗi bảng được bắt đầu bởi ký tự đầu của tên bảng vd u_id, u_ten (trong bảng user_tbl).

 Các biến liên kết bảng sẽ bắt đầu bằng ký tự của bảng cộng với tên biến của bảng cần liên kết vd kh_p_id (liên kết giữa bảng khachhang_tbl và bảng phong_tbl).

 Các biến trong Project được đặt tên với chữ cái đầu viết thường, viết hoa các chữ cái đầu của các từ tiếp theo Vd : findsPhong.

 Các hàm sẽ viết hoa tất cả chữ cái đầu vd: AddDuLieuDau()

 Các biến là Label,Button,… Được đặt tên với tên componant trước tiên, tên sẽ được cách ra bởi dấu gạch dưới Vd Jbutton -

Trang 7

d khách hang:

e dịch vụ:

Trang 8

4 Phân Tích Xử Lý Yêu Cầu.

 Hiển thị lên giao diện:

- Dùng panel hiển thị với kiểu layout cardLayout chứ 4 panel

PnQLNV, PnQLP3, PNQLKH, PnQLDV để hiển thị mỗi khi ta

chọn các button QLNhanVien, QLPhong, QLKhach Hang, QLDdich Vu.

- Hiển thị được chia làm 2 loại: bảng (ql Nhan Vien, ql Khach Hang, ql Dich VU) và liệt kê đối tượng tương tác (Phong).

- Ở phần bảng các dữ liệu sau khi load sẽ được đưa vào vector

“hang” nằm trong lớp QuanLyKhachSan để hiển thị lên thông qua các hàm ShowPnQLKH(), ShowPnQLDV(), ShowPnQLNV() -

- Ở phần phòng thì các phòng sẽ được đưa load thành mảng rồi đưa vào hàm ShowPnQLP() phân chia ra thành từng loại và show ra,

Trang 9

mỗi phòng là 1 đối tượng có thể tương tác trực tiếp không cần thông qua các bảng

- Các hoạt động: thêm, sửa, xóa.

- Dữ liệu được chỉnh sửa ngay trên các mảng chứ trong Constants, sau khi hoàn thành các chỉnh sửa chương trình cho phép lưu lại vào DB bằng cách vào File -> save, hoặc lúc tắt chương trình, thống sẽ hỏi “bạn có muốn lưu chỉnh sửa k? ” lúc đó chúng ta có thể tương tác với nó.

Trang 10

- Tìm kiếm: chương trình cung cấp nhiều loại tìm kiếm trên khung tìm kiếm cho người dùng có thể lựa chọn:

Trang 11

Và mặc định sẽ là tìm với tất cả Chương trình sẽ bắt đầu tìm kiếm khi có thay đổi ký tự trên textFeild Tìm kiếm, và nó sẽ trả về 1 mảng các giá trị tìm được dưới dang ArrayList<Object> và được giao diện hiển thị lên(đã nói

ở trên).

 Sắp Xếp:

- ở các bảng việc sắp xếp được modify từ cách sắp xếp mặc định của Table Muốn Sắp xếp trường vào thì kích vào Colum của trường đó, dữ liệu sau khi sắp xếp được trả về và modify lại vector hàng Sau đó gọi các hàm Show…() tương ứng để hiển thị lên lại trên bảng.

- Sắp xếp ở Phòng được chia làm 3 loại “có khách, còn trống và bảo trì” -> được hiển thị ngay trên giao diện phòng.

Trang 12

 Hóa đơn tính tiền:

- Nếu trường “ngày đi “ còn trống thì hóa đơn sẽ tính là chính thời điểm ta nhấn vào nút hóa đơn.

- Tiền sẽ tính bằng tổng tiền phòng + với tổng tiền dịch vụ

mà khách hàng sử dụng mà chưa thanh toán.

Trang 13

- Chọn “xong” để thanh toán thành công “hoặc đóng cửa sổ” để thoát.

Trang 14

III Các Lớp Xử Lý:

1 Sắp Xếp ( SapXep_Cls ):

a AddSuKienChoTB:

public static void addSuKienChoTb(JTable fTable, int id) {

RowSorter<TableModel> fSorter = new

TableRowSorter<>(fTable.getModel());;

fTable.setRowSorter(fSorter);

fTable.getTableHeader().addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) {

int column = fTable.getColumnModel().getColumnIndexAtX(e.getX()); Vector<Vector> hangNew = new Vector<Vector>();

//lay cac phan tu cua cot ra de sap xep

Vector v = new Vector();

Vector<Vector> vNull = new Vector<Vector>();//vector chứa phần tử null

if ((id == 1 && column == 4)||(id == 3 && column == 6)||id == 2 && (column == 8||column==9)) {

LocCacPhanTuNgay(v, vNull, column);

if (v.size() < 1)//neu null het thi khỏi sắp xếp

{

return;

}

} else {

LocCacPhanTuKhacNgay(v, vNull, column);

if (v.size() < 1)//neu null het thi khỏi sắp xếp

{

Trang 16

for (int j = 0; j < v.size(); j++) {

for (int i = 0; i < qlks.getHang().size(); i++) {

public static void KiemTraCachSapXep(Vector<Vector> hangNew) {

if (cfQLNV) {//kiem tra neu bam lan 1 thi cho no sx tang, bam lan 2 thi cho no sap xep giam

cfQLNV = false;

} else {

//sx lai

Vector<Vector> temp = (Vector<Vector>) hangNew.clone();

hangNew.removeAllElements();//xoa tat ca phan tu va them theo chiều nguocj lại int j = temp.size() - 1;

for (int i = 0; i < temp.size(); i++) {

Trang 17

* To change this template file, choose Tools | Templates

* and open the template in the editor

public static ArrayList<Integer> phanTu;

public String find;

public static ArrayList<DichVu_cls> fileTimKiem;

//public static int phanTu;

//public static boolean xoa = false;

String nhanVien_id = hh.getId() + "";

if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find) >= 0)) {

Trang 18

String nhanVien_id = hh.getKh_id() + "";

if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find) >= 0)) {

String nhanVien_id = hh.getP_id() + "";

if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find) >= 0)) {

Trang 19

int i = 0;

while (i < constant_Cls.dichVuAray.size()) {

try {

DichVu_cls hh = constant_Cls.dichVuAray.get(i);

String ten = hh.getTen();

if ((ten.length() >= find.length()) && (ten.indexOf(find) >= 0)) {

String ten = hh.getTinhTrang();

if ((ten.length() >= find.length()) && (ten.indexOf(find) >= 0)) {

String ten = hh.getTenKhach();

if ((ten.length() >= find.length()) && (ten.indexOf(find) >= 0)) {

Trang 20

Date date = hh.getThoiGian();

String dateString = constant_Cls.formatTime.format(date);

if ((dateString.length() >= find.length()) && (dateString.indexOf(find) >= 0)) {

String gia = hh.getGia() + "";

if ((gia.length() >= find.length()) && (gia.indexOf(find) >= 0)) {

Trang 21

if ((diaChi.length() >= find.length()) && (diaChi.indexOf(find) >= 0)) {

String congViec = hh.getTenPhongNhan();

if ((congViec.length() >= find.length()) && (congViec.indexOf(find) >= 0)) {

Trang 22

* 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

public class TimKhachHang_Cls {

public static ArrayList<Integer> phanTu;

public String find;

public static ArrayList<KhachHang_cls> fileTimKiem;

//public static int phanTu;

//public static boolean xoa = false;

Trang 23

if ((Kh_id.length() >= find.length()) && (Kh_id.indexOf(find)>=0)) {

String gioiTinh = hh.getGioiTinh();

if ((gioiTinh.length() >= find.length()) && (gioiTinh.indexOf(find)>=0)) {

Trang 24

Date date = hh.getNgayDen();

String dateString = constant_Cls.formatTime.format(date);

if ((dateString.length() >= find.length()) && (dateString.indexOf(find)>=0)) {

Trang 25

Date date = hh.getNgayDi();

String dateString = constant_Cls.formatTime.format(date);

if ((dateString.length() >= find.length()) && (dateString.indexOf(find)>=0)) {

String tinhTrang = hh.getTinhTrang();

if ((tinhTrang.length() >= find.length()) && (tinhTrang.indexOf(find)>=0)) {

Trang 26

while (i < constant_Cls.khachAray.size()) {

try {

KhachHang_cls hh = constant_Cls.khachAray.get(i);

String soNguoi = hh.getSoNguoi()+"";

if ((soNguoi.length() >= find.length()) && (soNguoi.indexOf(find)>=0)) {

String phongThue = hh.getPhongThue();

if ((phongThue.length() >= find.length()) && (phongThue.indexOf(find)>=0)) {

//kiem tra xem hanghoa da dc add vo chua, neu add vao roi thi tra ve true

public static boolean checkIn(int i) {

for (int j = 0; j < phanTu.size(); j++) {

Trang 27

c Tim Phong:

/*

* 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

public static ArrayList<Integer> phanTu;

public String find;

public static ArrayList<Phong_Cls> fileTimKiem;

//public static int phanTu;

//public static boolean xoa = false;

Trang 28

Phong_Cls hh = constant_Cls.phongAray.get(i);

String nhanVien_id = hh.getId() + "";

if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find) >= 0)) {

String nhanVien_id = hh.getSucchua()+ "";

if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find) >= 0)) {

String nhanVien_id = hh.getLoai()+ "";

if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find) >= 0)) {

Trang 29

String ten = hh.getTenPhong();

if ((ten.length() >= find.length()) && (ten.indexOf(find) >= 0)) {

String ten = hh.getSo()+"";

if ((ten.length() >= find.length()) && (ten.indexOf(find) >= 0)) {

String ten = hh.getTenKhach();

if ((ten.length() >= find.length()) && (ten.indexOf(find) >= 0)) {

if (!checkIn(i)) {

fileTimKiem.add(hh);

phanTu.add(i);

Trang 30

String dateString = hh.getSoNguoiO()+"";

if ((dateString.length() >= find.length()) && (dateString.indexOf(find) >= 0)) {

String gia = hh.getGia() + "";

if ((gia.length() >= find.length()) && (gia.indexOf(find) >= 0)) {

Trang 31

//kiem tra xem hanghoa da dc add vo chua, neu add vao roi thi tra ve true public static boolean checkIn(int i) {

for (int j = 0; j < phanTu.size(); j++) {

* 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

public class TimNhanVien_Cls {

public static ArrayList<Integer> phanTu;

public String find;

Trang 32

public static ArrayList<NhanVien_Cls> fileTimKiem;

//public static int phanTu;

//public static boolean xoa = false;

String nhanVien_id = hh.getId()+"";

if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find)>=0)) {

Trang 34

if ((gioiTinh.length() >= find.length()) && (gioiTinh.indexOf(find)>=0)) {

Date date = hh.getNamSinh();

String dateString = constant_Cls.formatTime.format(date);

if ((dateString.length() >= find.length()) && (dateString.indexOf(find)>=0)) {

Trang 35

public static void find_SDT(String find) {

String diaChi = hh.getDiaChi();

if ((diaChi.length() >= find.length()) && (diaChi.indexOf(find)>=0)) {

Trang 36

String congViec = hh.getCongViec();

if ((congViec.length() >= find.length()) && (congViec.indexOf(find)>=0)) {

Trang 37

if (i == phanTu.get(j)) { return true;

Ngày đăng: 21/04/2016, 17:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w