Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
1,87 MB
Nội dung
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,