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

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

Đ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

Báo cáo pdkpro Lời Cảm On MỤC LỤC I II III IV Giới Thiệu Tổng Quan Về Chương Trình Yêu Cầu Bài Toán Thuật Toán Quản Lý Giải Quyết Bài Toán : Mô Hình DB Tổng Quát Cách Biểu Diển Dữ Liệu DaTa Phân Tích Xử Lý Yêu Cầu Các Lớp Xử Lý Sắp Xếp a addSuKienChoTb b LocCacPhanTuNgay c LocCacPhanTuKhacNgay d AddLaiVaoHangNew e KiemTraCachSapXep Các Lớp Tìm Kiếm a Thuật Toán b Cài Đặt Kết Luận Đề Bài Xây dựng phần mềm quản lý khách sạn • Quản lý nhân viên • Quản lý phòng • Quản lý khách • Quản lý dịch vụ khách  Mô tả-yêu cầu: o Đọc liệu từ DB (sử dụng SQL Oracle) o Hiển thị thông tin lên giao diện o Bổ sung thêm đối tượng vào danh sách o Chỉnh sửa đối tượng o Xóa hay nhiều đối tượng o Sắp xếp đối tượng o Tìm kiếm theo nhiều hướng o In hóa đơn, tính tiền khách o Tính tiền dựa số ngày dịch vụ mà khách hang yêu cầu o Các phòng phân thành loại với giá sức chứa khác nhau, yêu cầu tính tiền dựa giá phòng o Có user đăng nhập o Tạo tài khoản quản lý o Thay đổi mật tài khoản quản lý Giới Thiệu: I Tổng Quan Về Chương Trình Yêu Cầu Bài Toán Thuật Toán Quản Lý Dữ liệu: Dữ liệu đưa lên mảng data nằm constant – “nhanVienAray, phongAray, dichVuAray, khachAray” chúng mảng động dạng ArrayList Các thao tác tiến hành “các mảng data” kết thúc người dùng muốn lưu kết “các mảng data” update vào lại DB  Xử Lý: - Người dùng thực thao tác xử lý: thêm, xóa, sửa, chèn, tìm kiếm, xếp … đảm bảo yêu cầu toán đặt - Các cấu hình mặc định lưu file “properties” ,lớp constant có nhiệm vụ đọc chúng chạy  - II Giải Quyết Bài Toán : Mô hình DB tổng quát: Cách biểu diển liệu: • Trong DB bảng đặt tên có kèm _tbl phía sau Vd user_tbl • • • • • • • a Biến liệu bảng bắt đầu ký tự đầu tên bảng vd u_id, u_ten (trong bảng user_tbl) Các biến liên kết bảng bắt đầu ký tự bảng cộng với tên biến bảng cần liên kết vd kh_p_id (liên kết bảng khachhang_tbl bảng phong_tbl) Các biến Project đặt tên với chữ đầu viết thường, viết hoa chữ đầu từ Vd : findsPhong Các hàm viết hoa tất chữ đầu vd: AddDuLieuDau() Các biến Label,Button,… Được đặt tên với tên componant trước tiên, tên cách dấu gạch Vd Jbutton -> Jbt_name Các hàm truy xuất liệu DB định nghĩa lớp constant_Cls Lớp constant_Cls lấy liệu từ file properties.properties định nghĩa bên Data: user: b nhân viên: c phòng: d khách hang: e dịch vụ: Phân Tích Xử Lý Yêu Cầu Đọc từ DB: Sử dụng hàm OpenConnect(), CloseConnect() lớp constant_Cls để mở đóng kết nối đến DB Sử dụng hàm getDB…, CheckDB(), SetDB(), Update(), Delete(), Save()… lớp Constant_Cls để tương tác với liệu DB Có Object tương ứng với loại liệu Phong_cls, NhanVien_Cls, KhachHang_Cls, DichVu_Cls định nghĩa để lấy DB thành đối tượng đưa vào mảng • Hiển thị lên giao diện: - Dùng panel hiển thị với kiểu layout cardLayout panel PnQLNV, PnQLP3, PNQLKH, PnQLDV để hiển thị ta chọn button QLNhanVien, QLPhong, QLKhach Hang, QLDdich Vu - Hiển thị chia làm loại: bảng (ql Nhan Vien, ql Khach Hang, ql Dich VU) liệt kê đối tượng tương tác (Phong) - Ở phần bảng liệu sau load đưa vào vector “hang” nằm lớp QuanLyKhachSan để hiển thị lên thông qua hàm ShowPnQLKH(), ShowPnQLDV(), ShowPnQLNV() • - - Ở phần phòng phòng đưa load thành mảng đưa vào hàm ShowPnQLP() phân chia thành loại show ra, phòng đối tượng tương tác trực tiếp không cần thông qua bảng - • Các hoạt động: thêm, sửa, xóa - Dữ liệu chỉnh sửa mảng Constants, sau hoàn thành chỉnh sửa chương trình cho phép lưu lại vào DB cách vào File -> save, lúc tắt chương trình, thống hỏi “bạn có muốn lưu chỉnh sửa k? ” lúc tương tác với - • Tìm kiếm: chương trình cung cấp nhiều loại tìm kiếm khung tìm kiếm cho người dùng lựa chọn: * * @author pdkpro */ public class TimKhachHang_Cls { public static ArrayList phanTu; public String find; public static ArrayList fileTimKiem; //public static int phanTu; //public static boolean xoa = false; public TimKhachHang_Cls() { } public static void find_All(String tk) { find_ID(tk); find_Ten(tk); find_GioiTinh(tk); find_SDT(tk); find_NgayDen(tk); find_NgayDi(tk); find_TinhTrang(tk); find_SoNguoi(tk); find_PhongThue(tk); } public static void find_ID(String find) { int i = 0; while (i < constant_Cls.khachAray.size()) { try { KhachHang_cls hh = constant_Cls.khachAray.get(i); String Kh_id = hh.getId()+""; if ((Kh_id.length() >= find.length()) && (Kh_id.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_Ten(String find) { int i = 0; while (i < constant_Cls.khachAray.size()) { try { KhachHang_cls hh = constant_Cls.khachAray.get(i); } String ten = hh.getTen(); if ((ten.length() >= find.length())&&(ten.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } public static void find_GioiTinh(String find) { int i = 0; } while (i < constant_Cls.khachAray.size()) { try { KhachHang_cls hh = constant_Cls.khachAray.get(i); String gioiTinh = hh.getGioiTinh(); if ((gioiTinh.length() >= find.length()) && (gioiTinh.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } public static void find_NgayDen(String find) { int i = 0; while (i < constant_Cls.khachAray.size()) { try { KhachHang_cls hh = constant_Cls.khachAray.get(i); Date date = hh.getNgayDen(); String dateString = constant_Cls.formatTime.format(date); if ((dateString.length() >= find.length()) && (dateString.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_SDT(String find) { int i = 0; while (i < constant_Cls.khachAray.size()) { try { KhachHang_cls hh = constant_Cls.khachAray.get(i); String sdt = hh.getDienthoai()+""; if ((sdt.length() >= find.length()) && (sdt.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_CMND(String find) { int i = 0; while (i < constant_Cls.khachAray.size()) { try { KhachHang_cls hh = constant_Cls.khachAray.get(i); String sdt = hh.getCmnn()+""; if ((sdt.length() >= find.length()) && (sdt.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_NgayDi(String find) { int i = 0; while (i < constant_Cls.khachAray.size()) { try { KhachHang_cls hh = constant_Cls.khachAray.get(i); Date date = hh.getNgayDi(); String dateString = constant_Cls.formatTime.format(date); if ((dateString.length() >= find.length()) && (dateString.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_TinhTrang(String find) { int i = 0; while (i < constant_Cls.khachAray.size()) { try { KhachHang_cls hh = constant_Cls.khachAray.get(i); String tinhTrang = hh.getTinhTrang(); if ((tinhTrang.length() >= find.length()) && (tinhTrang.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_SoNguoi(String find) { int i = 0; 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)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_PhongThue(String find) { int i = 0; while (i < constant_Cls.khachAray.size()) { try { KhachHang_cls hh = constant_Cls.khachAray.get(i); String phongThue = hh.getPhongThue(); if ((phongThue.length() >= find.length()) && (phongThue.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static ArrayList get_File_Tim_Kiem() { return fileTimKiem; } //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++) { if (i == phanTu.get(j)) { return true; } } return false; } } 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 */ package Actions; import Objects.DichVu_cls; import Objects.Phong_Cls; import java.lang.reflect.Array; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Scanner; import quanlykhachsan.constant_Cls; /** * * @author pdkpro */ public class TimPhong_Cls { public static ArrayList phanTu; public String find; public static ArrayList fileTimKiem; //public static int phanTu; //public static boolean xoa = false; public TimPhong_Cls() { } public static void find_All(String tk) { find_ID(tk); find_Ten(tk); find_Gia(tk); find_SucChua(tk); find_SoNguoiO(tk); find_Ten(tk); find_TenKhach(tk); find_so(tk); } public static void find_ID(String find) { int i = 0; while (i < constant_Cls.phongAray.size()) { try { Phong_Cls hh = constant_Cls.phongAray.get(i); String nhanVien_id = hh.getId() + ""; if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find) >= 0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_SucChua(String find) { int i = 0; while (i < constant_Cls.phongAray.size()) { try { Phong_Cls hh = constant_Cls.phongAray.get(i); String nhanVien_id = hh.getSucchua()+ ""; if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find) >= 0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_Loai(String find) { int i = 0; while (i < constant_Cls.phongAray.size()) { try { Phong_Cls hh = constant_Cls.phongAray.get(i); String nhanVien_id = hh.getLoai()+ ""; if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find) >= 0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_Ten(String find) { int i = 0; while (i < constant_Cls.phongAray.size()) { try { Phong_Cls hh = constant_Cls.phongAray.get(i); String ten = hh.getTenPhong(); if ((ten.length() >= find.length()) && (ten.indexOf(find) >= 0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_so(String find) { int i = 0; while (i < constant_Cls.phongAray.size()) { try { Phong_Cls hh = constant_Cls.phongAray.get(i); String ten = hh.getSo()+""; if ((ten.length() >= find.length()) && (ten.indexOf(find) >= 0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_TenKhach(String find) { int i = 0; while (i < constant_Cls.phongAray.size()) { try { Phong_Cls hh = constant_Cls.phongAray.get(i); String ten = hh.getTenKhach(); if ((ten.length() >= find.length()) && (ten.indexOf(find) >= 0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_SoNguoiO(String find) { int i = 0; while (i < constant_Cls.phongAray.size()) { try { Phong_Cls hh = constant_Cls.phongAray.get(i); String dateString = hh.getSoNguoiO()+""; if ((dateString.length() >= find.length()) && (dateString.indexOf(find) >= 0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_Gia(String find) { int i = 0; while (i < constant_Cls.phongAray.size()) { try { Phong_Cls hh = constant_Cls.phongAray.get(i); String gia = hh.getGia() + ""; if ((gia.length() >= find.length()) && (gia.indexOf(find) >= 0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } } i++; } public static ArrayList get_File_Tim_Kiem() { return fileTimKiem; } //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++) { if (i == phanTu.get(j)) { return true; } } return false; } } d Tìm nhân viên: /* * 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 Actions; import Objects.NhanVien_Cls; import java.lang.reflect.Array; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Scanner; import quanlykhachsan.constant_Cls; /** * * @author pdkpro */ public class TimNhanVien_Cls { public static ArrayList phanTu; public String find; public static ArrayList fileTimKiem; //public static int phanTu; //public static boolean xoa = false; public TimNhanVien_Cls() { } public static void find_All(String tk) { find_ID(tk); find_Ten(tk); find_GioiTinh(tk); find_SDT(tk); find_NamSinh(tk); find_DiaChi(tk); find_CongViec(tk); } public static void find_ID(String find) { int i = 0; while (i < constant_Cls.nhanVienAray.size()) { try { NhanVien_Cls hh = constant_Cls.nhanVienAray.get(i); String nhanVien_id = hh.getId()+""; if ((nhanVien_id.length() >= find.length()) && (nhanVien_id.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_Ten(String find) { int i = 0; while (i < constant_Cls.nhanVienAray.size()) { try { NhanVien_Cls hh = constant_Cls.nhanVienAray.get(i); String ten = hh.getTen(); if ((ten.length() >= find.length())&&(ten.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_GioiTinh(String find) { int i = 0; while (i < constant_Cls.nhanVienAray.size()) { try { NhanVien_Cls hh = constant_Cls.nhanVienAray.get(i); String gioiTinh = hh.getGioiTinh(); if ((gioiTinh.length() >= find.length()) && (gioiTinh.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_NamSinh(String find) { int i = 0; while (i < constant_Cls.nhanVienAray.size()) { try { NhanVien_Cls hh = constant_Cls.nhanVienAray.get(i); Date date = hh.getNamSinh(); String dateString = constant_Cls.formatTime.format(date); if ((dateString.length() >= find.length()) && (dateString.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_SDT(String find) { int i = 0; while (i < constant_Cls.nhanVienAray.size()) { try { NhanVien_Cls hh = constant_Cls.nhanVienAray.get(i); String sdt = hh.getSdt()+""; if ((sdt.length() >= find.length()) && (sdt.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_DiaChi(String find) { int i = 0; while (i < constant_Cls.nhanVienAray.size()) { try { NhanVien_Cls hh = constant_Cls.nhanVienAray.get(i); String diaChi = hh.getDiaChi(); if ((diaChi.length() >= find.length()) && (diaChi.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static void find_CongViec(String find) { int i = 0; while (i < constant_Cls.nhanVienAray.size()) { try { NhanVien_Cls hh = constant_Cls.nhanVienAray.get(i); String congViec = hh.getCongViec(); if ((congViec.length() >= find.length()) && (congViec.indexOf(find)>=0)) { if (!checkIn(i)) { fileTimKiem.add(hh); phanTu.add(i); } } } catch (Exception e) { } i++; } } public static ArrayList get_File_Tim_Kiem() { return fileTimKiem; } //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++) { if (i == phanTu.get(j)) { return true; } } return false; } } [...]... 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 • 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 - Chọn “xong” để thanh toán thành công “hoặc đóng cửa sổ” để thoát • User: - Về phần User thì... - Về phần User thì chỉ có User người dùng, không phân các quyền khác - Có thể thực hiện các chức năng như thêm, chỉnh sửa mật khẩu, thay đổi người dùng - (Phần này em chỉ làm thêm cho chương trình khỏi trống chứ chưa hoàn thiện) III a Các Lớp Xử Lý: 1 Sắp Xếp ( SapXep_Cls ): AddSuKienChoTB: public static void addSuKienChoTb(JTable fTable, int id) { RowSorter fSorter = new TableRowSorter(fTable.getModel());;... fTable.getColumnModel().getColumnIndexAtX(e.getX()); Vector hangNew = new Vector(); //lay cac phan tu cua cot ra de sap xep Vector v = new Vector(); Vector vNull = new 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;... (qlks.getHang().get(i).get(column).toString().equals(v.get(j).toString())) { if (hangNew.indexOf(qlks.getHang().get(i)) < 0) {//neu chua co thi them tiep vo hangNew.addElement(qlks.getHang().get(i)); } } } } //add vo đầu danh sách khách hang if (vNull.size() > 0) { for (int i = 0; i < vNull.size(); i++) { hangNew.addElement((Vector) vNull.get(i)); } } } e KiemTraCachSapXep: public static void KiemTraCachSapXep(Vector hangNew) ... Thuật Toán b Cài Đặt Kết Luận Đề Bài Xây dựng phần mềm quản lý khách sạn • Quản lý nhân viên • Quản lý phòng • Quản lý khách • Quản lý dịch vụ khách. .. Quan Về Chương Trình Yêu Cầu Bài Toán Thuật Toán Quản Lý Giải Quyết Bài Toán : Mô Hình DB Tổng Quát Cách Biểu Diển Dữ Liệu DaTa Phân Tích Xử Lý Yêu Cầu Các Lớp Xử Lý Sắp Xếp a addSuKienChoTb b LocCacPhanTuNgay... nhập o Tạo tài khoản quản lý o Thay đổi mật tài khoản quản lý Giới Thiệu: I Tổng Quan Về Chương Trình Yêu Cầu Bài Toán Thuật Toán Quản Lý Dữ liệu: Dữ liệu đưa lên mảng data nằm constant – “nhanVienAray,

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