Nắm bắt ược xu thế này, cùng với những kiến thức trong thực tế, kiến đề tài thực tiếp thu ược ở trong các bài giảng trên lớp, thành viên trong nhóm đề tài thống nhất và i ến quyết ịnh ch
Trang 1BÀI TẬP LỚN
PROJECT1
Đề tài : Phát triển phần mềm quản lí khách sạn
Giáo viên hướng dẫn: ThS Trịnh Tuấn Đạt Nhóm sinh viên thực hiện:
CNTT4 - K55Nguyễn Xuân Trường 20102400 CNTT4- K55Nguyễn Tường Quân 20102044 CNTT4 - K55
Trang 2PROJECT1 Hà nội – 11/2012
Mục lục
Mục lục ii
LỜI NÓI ĐẦU 1
PHÂN CÔNG THÀNH VIÊN TRONG NHÓM 2
CHƯƠNG 1 KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN 3
1.1 Mô tả yêu cầu bài toán 3
1.1.1 Tên ề tài đề tài 3
1.1.2 Mô tả yêu cầu 3
1.1.3 Yêu cầu 3
1.2 Biểu ồ use caseđề tài 4
1.2.1 Biểu ồ Use case tổng quan đề tài 4
1.2.2 Biểu ồ use case phân rã mức 2 đề tài 5
1.3 Đặc tả use case 9
Quản lý phòng: 9
Quản lý khách hàng : 9
Thuê phòng : 10
Trả phòng 10
Thống kê : 10
Chương 2 : PHÂN TÍCH THIẾT KẾ BÀI TOÁN 11
2.1 Thiết kế Cơ sở dữ liệu 11
2.2 Biểu ồ trình tựđề tài 12
2.2.1 Biểu ồ trình tự thao tác nhân viên cho thuê phòng đề tài 12
Trang 3PROJECT12.4.4 Package view 18
Chương 3 : CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG 22
3.1 Mô hình MVC 22
3.2 Kỹ thuật lập trình hướng ối tượngđề tài 23
3.3 Kỹ thuật xử lý kết nối Data base và truy vấn SQL 23
3.3.1 Kết nối Data base 23
3.3.2 Khởi tạo, thực hiện câu lệnh truy vấn SQL 24
3.4 Các kỹ thuật và ứng dụng khác 25
3.4.1 Sử dụng XML DOM Parse ể ghi và ọc file xml đề tài đề tài 25
3.4.2 Thư viện JDate 25
3.4.3 In hóa ơn đề tài 26
3.4.4 Tối ưu giao diện bằng việc thiết kế trên Photoshop 27
3.4.5 Chương trình Setting i kèm đề tài 27
Chương 4 : XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA 29
4.1 Kết quả chương trình minh họa 29
4.2 Giao diện chương trình 29
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 33
TÀI LIỆU THAM KHẢO 35
Trang 4LỜI NÓI ĐẦU
Trong giai oạn hiện nay, giai oạn mà ất nước ta ang phấn ầu trở đề tài đề tài đề tài đề tài đề tài thành quốc gia mạnh về công nghệ thông tin và viễn thông, coi công nghệ thông tin là mục tiêu phát triển hàng ầu Việc ứng dụng công nghệ thông đề tài tin vào tất cả các ngành kinh tế trong nền kinh tế quốc dân là một xu thế tất yếu, nhất là khi các ngành công nghiệp, dịch vụ ang ngày một pháp đề tài triển mạng trên quy mô lớn.
Nắm bắt ược xu thế này, cùng với những kiến thức trong thực tế, kiến đề tài thực tiếp thu ược ở trong các bài giảng trên lớp, thành viên trong nhóm đề tài thống nhất và i ến quyết ịnh chọn ề tài đề tài đề tài đề tài đề tài xây dựng phần mềm quản lý khách sạn với nhưng yêu cầu và chức năng cơ bản nhất.
Để hoàn thành ược bài tập lớn này, nhóm chúng em xin ược gửi lời đề tài đề tài cảm ơn chân thành ến: đề tài
Thầy giáo hướng dẫn ề tài - đề tài Thạc Sĩ Trịnh Tuấn Đạt, Giảng
Trang 6PHÂN CÔNG THÀNH VIÊN TRONG NHÓM
Tên thành viên Công việc
Nguyễn Hữu Trung Thiết kế Use-case, biểu ồ lớp, giao diện. đề tài
Code phần View
Nguyễn Xuân Trường Thiết kế CSDL, code phần Model,
Control và View
Nguyễn Tường Quân Code phần Model, Control, kiểm thử
chương trình, viết báo cáo, Silde.
Trang 7CHƯƠNG 1 KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN
1.1 Mô tả yêu cầu bài toán
1.1.1 Tên ề tài đề tài
Xây dựng chương trình quản lý khách sạn
1.1.2 Mô tả yêu cầu
Quản lý thông tin về phòng cho thuê của khách sạn bao gồm : Tên phòng,Loại phòng, Giá phòng, Tình trạng phòng
Thông tin về khách hàng : Mã số khách hàng, Tên khách hàng, Năm sinh,Giới tính, Số CMTND, Địa chỉ, Số iện thoại.đề tài
Thống kê về lịch sử khách hàng, những phiên ặt phòng, trả phòng đề tài
1.1.3 Yêu cầu
Hoàn thành các thao tác sau:
Nhập danh mục phòngNhập danh mục khách hàngQuản lý ặt phòngđề tài
Quản lý tình trạng phòngQuản lý nhận và trả phòng, lập hóa ơn thanh toánđề tàiThông kê, kế toán
Mô hình hóa bài toán:
Trang 81.2 Biểu ồ use case đề tài
1.2.1 Biểu ồ Use case tổng quan đề tài
Trang 9 Chương trình phân cấp người sử dụng gồm :
Kiểu tài khoản Admin
Kiểu tài khoản User
Với 2 lớp người dùng này thì chương trình có những chức năng
Trang 10 Use case Quản lý phòng
Trang 11
Use case Quản lý khách hàng :
Use case Thuê phòng :
Trang 12
Use case Trả phòng
Trang 13 Tìm kiếm phòng : Thực hiện tìm kiếm theo tên phòng, tình trạng phòng vàkiểu phòng.
Quản lý khách hàng :
Thêm khách hàng : Người dùng nhập thông tin vào Dialog thêm khách hàng,nếu những trường nhập vào sai với yêu cầu hay nhập thiếu trường sẽ xuất hiệnthông báo Nhập lỗi và yêu cầu nhập lại Khi nhập ầy ủ và chính xác thôngđề tài đề tàitin thì xuất hiện thông báo “Nhập thành công”
Sửa khách hàng: Người dùng chọn phòng trên bảng danh mục khách hàng.Xuất hiện thông tin khách hàng lên Dialog sửa phòng Thực hiện sửa thôngtin phòng trực tiếp lên Dialog óđề tài Các Dialog thông báo lỗi tương tự như ở
Trang 14chức năng thêm phòng Nếu phòng ang trong tình trạng “đề tài Đã thuê” Bởi 1khách hàng sẽ không ược phép chỉnh sửa phòng.đề tài
Xóa khách hàng : Người dùng chọn khách hàng trên bảng danh mục kháchhàng Xuất hiện Dialog xác nhận Khách hàng ang thuê phòng sẽ không xóađề tàiược
đề tài
Tìm kiếm khách hàng : Thực hiện tìm kiếm theo tên, CMTND và iện thoại.đề tài
Thuê phòng :
Người dùng sẽ chọn khách hàng, chọn phòng ở danh mục phòng và kháchhàng Tương ứng với chưc năng tìm kiếm phòng và khách hàng giống với usecase Quản lý phòng và Quản lý khách hàng
Thuê phòng : Xuất hiện Dialog xác nhận thuê phòng
Trang 15Chương 2 : PHÂN TÍCH THIẾT KẾ BÀI TOÁN
2.1 Thiết kế Cơ sở dữ liệu
Cơ sở dữ liệu của bài toán ược thiết kế như sau :đề tài
Trang 162.2 Biểu ồ trình tự đề tài
2.2.1 Biểu ồ trình tự thao tác nhân viên cho thuê phòng đề tài
Trang 172.2.2 Biểu ồ trình tự thao tác nhân viên nhận trả phòng đề tài
Trang 182.3 Biểu ồ lớp đề tài
Biểu ồ phụ thuộc của các package :đề tài
Mô hình MVC :
Tầng cơ sở dữ liệu : Package model
Tầng nghiệp vụ : Package control, bean
Tầng giao diện : Package main,view,data
Khi người sử dụng tương tác với giao diện của chương trình (package View), yêu
Trang 192.4 Thiết kế chi tiết lớp
2.4.1 Package bean :
Là lớp óng gói dữ liệu, ược sử dụng trong package view và modelđề tài đề tài
Trang 202.4.2 Package model :
Lớp ConnectDB : Lấy dữ liệu kết nối trong file config Tạo kết nối ến cơ sởđề tài
dữ liệu Khởi tạo giá trị ban ầu của các câu lệnh cho câu lệnh đề tài
Lớp CustomerManagerModel : Sử dụng những lớp óng gói dữ liệu đề tài Customer.Tương tác trực tiếp với cơ sở dữ liệu thông qua các câu lệnh truy vấn, liênquan ến chức năng quản lý khách hàng Tạo thực thể cho package control 1đề tài
Trang 21 Lớp HirePayModel : Sử dụng lớp óng gói dữ liệu đề tài Checkout Tương tác trựctiếp với cơ sở dữ liệu thông qua các câu lệnh truy vấn, liên quan ến chứcđề tàinăng quản lý Thuê phòng, trả phòng, thống kê, kế toán…
2.4.3 Package Control
Là Lớp kết nối giữa lớp giao diện và lớp cơ sở dữ liệu
Trang 222.4.4 Package view
Trang 25 Tương ứng với mỗi phần của giao diện, các lớp tương ứng sẽ thực hiện chứcnăng tương tác với người dùng, lấy thông tin, yêu cầu và hiển thị trở lại giaodiện.
Lớp CustomerCategoryPanel : Thực hiện chức năng quản lý khách hàng Hiểnthị bảng danh sách khách hàng hiện có, thêm khách hàng, sửa,xóa kháchhàng
Lớp RoomCategoryPanel : Thực hiện chức năng quản lý phòng : Hiện thị danhsách thông tin về phòng hiện có, Thêm loại phòng, thêm phòng, sửa xóa phòng
Lớp HireRoomPanel : Hiển thị thông tin khách hàng, phòng có thể ược thuê,đề tàiLấy thông tin về khách hàng, phòng thực hiện thuê phòng và lưu vào cơ sở
dữ liệu
Lớp CheckOutPanel : Chọn phòng ược trả, ngày trả và thực hiện trả phòng.đề tài
Hỗ trợ chức năng in hóa ơn của khách hàng đề tài
Trang 26Chương 3 : CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG
3.1 Mô hình MVC
Mô hình MVC (Model, Control,View) là kiến trúc phần mềm hay mô hình thiết
kế ược sử dụng trong kỹ thuật phần mềm Nó giúp các developer tách riêng ứngđề tàidụng của họ ra làm thành phần khác nhau Model, View, Control và mỗi thành phần
có 1 nhiệm vụ riêng biệt, ộc lập khác nhau.đề tài
Model
Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truyxuất database, ối tượng mô tả dữ liệu như các Class, hàm xử lý đề tài
Trang 27 Controller
Giữ nhiệm vụ nhận iều hướng các yêu cầu từ người dùng và gọi úng nhữngđề tài đề tàiphương thức xử lý chúng Chẳng hạn thành phần này sẽ nhận request từform ể thao tác trực tiếp với Model.đề tài
3.2 Kỹ thuật lập trình hướng ối tượng đề tài
Là kĩ thuật lập trình hỗ trợ công nghệ ối tượng( OOP ) Được xem như là giúpđề tàităng năng suất, ơn giản hóa ộ phức tạp khi bảo trì cũng như mở rộng phần mềmđề tài đề tàibằng cách cho phép lập trình viên tập trung vào các ối tượng phần mềm ở bậc caođề tàihơn Ngoài ra, nhiều người còn cho rằng OOP dễ tiếp thu hơn cho những người mớihọc về lập trình hơn là các phương pháp trước ó.đề tài
3.3 Kỹ thuật xử lý kết nối Data base và truy vấn SQL
3.3.1 Kết nối Data base
Để truy xuất, tương tác ược với dữ liệu trong Database và hiển thị, thao tácđề tàitrên Giao diện chính của chương trình, nhóm ã lựa chọn hệ quản trị cơ sở dữ liệuđề tàiMySQL, môi trường IDE là Netbeans
Và ể kết nối các ứng dụng Java với Database, thì cần phải có những phần mềmđề tàigiao diện lập trình ứng dụng (Application Programming Interfaces – APIs) cho việckết nối cơ sở dữ liệu Ở ây nhóm ã lựa chọn JDBC (Java Database Connection) -đề tài đề tàiMột trong những phầm mềm giao diện lập trình ứng dụng trong bộ sưu tập của thưviện ứng dụng và trình iều khiển cơ sở dữ liệu, nó thực hiện ộc lập với ngôn ngữđề tài đề tàilập trình, hệ thống cơ sở dữ liệu và hệ iều hành.đề tài
Trang 28 Những bước cơ bản ể làm việc với JDBC:đề tài
Load Driver – Nạp trình iều khiển kết nối đề tài
Establish a database connection - Thiết lập kết nối ến cơ sở dữ liệuđề tài
Create and Execute an SQL Statement - Tạo và thực thi 1 câu truy vấn
dữ liệu dạng SQL
Process the results - Xử lý kết quả nhận về sau khi thi hành lệnh truy vấnthành công trên cơ sở dữ liệu
Close the database connection - Đóng kết nối và giải phóng tài nguyên
Trong khi lập trình xây dựng ứng dụng nhóm ã gặp phải khá nhiều lỗi, vàđề tàikhó khăn quá trình làm việc với JDBC
o Lỗi “Too many connection” : Tạo quá nhiều kết nối Database mà khôngóng kết nối và giải phóng tài nguyên làm chương trình bị lỗi kết nối và
đề tàitreo
Giải pháp : Sau mỗi lần kết nối Database, hay tạo và thực hiện các câulệnh truy vấn SQL ều sử dụng phương thức óng kết nối và câu lệnh truyđề tài đề tàivấn
o Thao tác và hiển thị dữ liệu lên bảng khó khăn
Giải pháp : Nhóm ã tìm hiểu và nghiên cứu viết riêng lớp đề tài Resultset table
Trang 29o Phương thức khởi tạo : Statement stmt=con.createStatement() ;
Thực thi câu SQL :
int executeUpdate(String sql) : Phương thức này dùng ể thực thi các câuđề tàisql insert, delete, update,… ngoại trừ câu select
ResultSet executeQuery(String sql) : Phương thức này thực thi câu select
SQL, trả về 1 ối tượng ResultSet ể chứa 1 danh sách các records thỏa mãnđề tài đề tàicâu select
Sử dụng ối tượng PrepareStatementđề tài
Đối tượng này ược sử dụng khi chúng ta muốn thực thi 1 câu truy vấn có thamđề tài
Trang 303.4.2 Thư viện JDate
Để giải quyết vấn ề chọn thời gian tránh nhầm lần và pháp sinh lỗi trong quáđề tàitrình sử dụng phần mềm nhóm ã lựa chọn them vào Project thư viện JDate Và sửđề tàidụng JDateChoose như 1 công cụ trong Java Swing
Giao diện của công cụ này :
3.4.3 In hóa ơn đề tài
Để thuận tiện cho việc xuất, in hóa ơn cho khách hàng ồng thời lưu trữ hóađề tài đề tài
ơn khách hàng cho khách sạn Nhóm ã nghiên cứu và viết lớp
package Model ể thực hiện in hóa ơn Ở dạng thực thi HTML, và mặc ịnh xuấtđề tài đề tài đề tài
ra file văn bản word
Trang 31Kết quả khi in ra:
Trang 323.4.4 Tối ưu giao diện bằng việc thiết kế trên Photoshop
Trước khi chương trình ược code, giao diện chuẩn ược thiết kế trên đề tài đề tài
photoshop, ảm bảo tính thẩm mĩ đề tài
3.4.5 Chương trình Setting i kèm đề tài
Setting là 1 công cụ phát triển kèm theo chương trình chính này, có nhiệm vụ cấu hình kết nối và khởi tạo CSDL (trong trường hợp chưa có CSDL ban ầu) đề tàiCông cụ này tối ưu hóa việc thiết lập CSDL cho người sử dụng, thay vì copy file sql, thực thi… thì chỉ cần nhập cấu hình kết nối, còn lại chương trình sẽ tự ộng đề tàilàm
Đoạn code mô tả cách Setting xây dựng CSDL:
Trang 33Chương 4 : XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA
4.1 Kết quả chương trình minh họa
Sau khoảng 8 tuần tích cực xây dựng, hoàn thiện chương trình, chúng em ã thuđề tàiược những kết quả hết sức khả quan
đề tài
Về kết quả ạt ược :đề tài đề tài
Kỹ năng lập trình java tương ối tốt.đề tài
Kỹ năng phân tích thiết kế hướng ối tượng một chương trình.đề tài
Kỹ năng làm việc nhóm
Kỹ năng bẩy lỗi và kiểm thử phần mềm
Làm việc, thao tác với CSDL
Về chương trình :
Chương trình chạy tốt ổn ịnh.đề tài
Hoàn hiện hầu hết các chức năng cơ bản nhất
Giao diện chương trình bắt mắt, thao tác sử dụng dễ dàng trực quan
Trang 344.2 Giao diện chương trình
Dialog ăng nhập đề tài
Trang 35Giao diện chương trình chính
Giao diện trang quản trị
Trang 36Dialog thêm khách hàng
Trang 37KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Đây là chương trình gần như là ầu tiên nhóm chúng em xây dựng nên chắcđề tàichắn sẽ còn nhiều thiếu sót cả về kỹ năng thiết kế hệ thống, kỹ năng lập trình cũng nhưlàm báo cáo, rất mong thầy và mọi người thông cảm cũng như óng góp ý kiến ểđề tài đề tàichúng em có thể hoàn thiện chương trình hơn nữa Sau ây là một số ưu nhược iểmđề tài đề tàicủa chương trình so với yêu cầu của bài toán ặt ra.đề tài
1 Về ưu iểm : đề tài
Hoàn thiện tất cả những yêu cầu chức năng của bài toán ưa ra Như cácđề tàithao tác Quản lý phòng, Quản lý khách hàng, Đặt phòng, Trả phòng, Hóa
ơn, Thống kê kế toán
đề tài
Chương trình ược thiết kế với giao diện rất ẹp, hợp lý và vô cùng trựcđề tài đề tàiquan với những thao tác như Nhập thông số phòng, khách hàng Các thaotác Tìm kiếm, Thao tác Thuê phòng
Chương trình ược óng gói 1 cách gọn nhẹ, thao tác cài ặt dễ dàng như 1đề tài đề tài đề tàichương trình Window bình thường Dễ dàng sử dụng cho người mới tiếpcận
2 Về nhược iểm : đề tài
Chương trình vẫn còn khuyết i chức năng ặt phòng Khách hàng chỉ cóđề tài đề tàithể ặt, thuê phòng vào ngày hiện tại và không thể ặt phòng trước ngàyđề tài đề tàió
Trang 38 Nghiên cứu, xử lý thời gian, sắp xếp phòng ể bổ sung và hoàn thiện chứcđề tàinăng ặt phòng Sẽ cho khách hàng ặt phòng trước qua iện thoại hoặcđề tài đề tài đề tàiemail trước khi khách hàng trực tiếp ến nhận phòng.đề tài
Để giải quyết vấn ề về bẫy lỗi và lập trình phần mềm, nhóm sẽ viết riêngđề tàinhững hàm xử lý lỗi, hiển thị thông báo, chỉ ra cụ thể phần lỗi trong nhữngthao tác của người dung chương trình
Trang 39TÀI LIỆU THAM KHẢO
[1] Phân tích và thiết kế hệ thống thông tin - Nguyễn Văn Ba - 2003.
[2] Java how to program 9th Edition
[3] Và các nguồn tham khảo trên Internet