Mô tảKhách hàng tìm kiếm thông tin phòng trọ phù hợp ở khu vực mình ở, chọn loại phòng, các loại dịch vụ phù hợp với nhu cầu và mức giá.Khách hàng phải cung cấp thông tin cho chủ trọ khi
Trang 1ĐỒ ÁN CUỐI KÌ
MÔN LẬP TRÌNH WINDOWS
MÃ LỚP: WIPR230579_22_2_09NHÓM THỰC HIỆN: NHÓM 06GIÁO VIÊN HƯỚNG DẪN: TS Lê Văn Vinh
Thành phố Hồ Chí Minh, tháng 6 năm 2023
BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬTTHÀNH PHỐ HỒ CHÍ MINHKHOA: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI
“XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÀ TRỌ”
Trang 2DANH SÁCH SINH VIÊN THAM GIA THỰC HỆN
HỌC KÌ 2, NĂM HỌC: 2022 – 2023
Nhóm 06 Tên đề tài: Xây dựng phần mềm quản lí nhà trọ
ST
Mã số sinh viên
Tỉ lệ hoàn thành
Ghi chú:
- Tỉ lệ: 100%
- Trưởng nhóm: Phạm Bá Thành
Nhận xét của giáo viên:
Ngày tháng năm Giáo viên chấm điểm
MỤC LỤ
Trang 3CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1
1 Lí do chọn đề tài 1
2 Mục tiêu phát triển 1
3 Đối tượng 1
4 Mô tả 2
CHƯƠNG 2: CƠ SỞ LÍ THUYẾT 3
1 Mô hình 3 tầng 3
2 Các công nghệ kết nối cơ sở dữ liệu 4
2.1 ADO.NET framework 4
2.2 Ngôn ngữ LINQ 5
2.3 Entity framework 5
3 Các công cụ hỗ trợ 6
CHƯƠNG 3: PHÂN TÍCH CHƯƠNG TRÌNH 7
1 Mô tả yêu cầu 7
2 Phân tích nhu cầu và dữ liệu 7
2.1 Quản lí phòng 7
2.2 Quản lí khu vực 7
2.3 Quản lí loại phòng 8
2.4 Quản lí dịch vụ: 8
2.5 Quản lí khách hàng 8
3 Các chức năng chính 8
3.1 Chức năng lưu trữ 8
3.2 Chức năng nghiệp vụ 8
3.3 Chức năng báo cáo 8
4 Mô hình cơ sở dữ liệu 9
CHƯƠNG 4: THÀNH PHẦN CHƯƠNG TRÌNH 13
1 Danh mục giao diện 13
1.1 Thanh chức năng 15
Trang 41.2 Thanh thống kê 20
1.3 Thanh thêm 22
1.4 Thanh quản lí 23
1.5 Thanh tài khoản 24
2 Kiến trúc phần mềm 26
PHẦN KẾT LUẬN 29
PHỤ LỤC BẢNG 30
PHỤ LỤC HÌNH ẢNH 31
PHỤ LỤC – BẢNG PHÂN CÔNG NHIỆM VỤ TRONG NHÓM 33
TÀI LIỆU THAM KHẢO 34
Trang 5CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
1 Lí do chọn đề tài
Trước đây, quản lí nhà trọ thường phụ thuộc vào các công cụ và quy trình thủcông như viết tay, sử dụng giấy tờ, sổ sách để ghi nhận thông tin khách hàng, lậpbảng kê thu chi, và quản lí phòng trống Nhưng với sự phát triển của công nghệthông tin hiện nay thì chúng ta cần một giải pháp nhanh chóng, tiết kiệm thờigian và hiệu quả hơn
Xây dựng một phần mềm quản lí nhà trọ là một lựa chọn hợp lý và cần thiết
để đáp ứng nhu cầu ngày càng tăng về nhà trọ trong xã hội hiện đại Phần mềmnày giúp tổ chức và quản lí các thông tin về khách hàng, phòng trống, đặtphòng, thu tiền và quản lí tài chính một cách hiệu quả và tự động hóa Điều nàykhông chỉ giúp tiết kiệm thời gian và công sức cho nhà quản lí, mà còn đảm bảotính chính xác và tin cậy trong các hoạt động kinh doanh Bên cạnh đó, phầnmềm cũng mang lại sự tiện lợi cho khách hàng khi cho phép họ dễ dàng đặtphòng, thanh toán và theo dõi tình hình thuê trọ
Vì thế, sau khi có kiến thức môn lập trình Window, nhóm chúng em quyếtđịnh xây dựng “Phần mềm quản lí nhà trọ”
2 Mục tiêu phát triển
Xây dựng phần mềm cung cấp đầy đủ thông tin người thuê, về loại phòngthuê, khu vực thuê, tình trạng phòng thuê và các dịch vụ đi kèm phòng thuê đó.Quản lí được doanh thu, các hợp đồng cho nhà trọ
Giúp cho việc quản lí nhà trọ trở nên dễ dàng, thuận tiện hơn, giảm thiểu tínhthủ công, chân tay Mang lại hiệu quả cho việc quản lí thu chi mỗi tháng của nhàtrọ Phần mềm xây dựng cần mang tính trực quan, tối ưu và dễ sử dụng
3 Đối tượng
- Người chủ khách trọ
- Khách thuê trọ
1
Trang 64 Mô tả
Khách hàng tìm kiếm thông tin phòng trọ phù hợp ở khu vực mình ở, chọnloại phòng, các loại dịch vụ phù hợp với nhu cầu và mức giá
Khách hàng phải cung cấp thông tin cho chủ trọ khi đăng kí thuê phòng như:
họ tên, năm sinh, chứng minh nhân dân, địa chỉ,… và chủ trọ sẽ nhập, lưu trữcác thông tin của khách hàng trên hệ thống
Chủ trọ cung cấp thông tin của phòng trọ và các dịch vụ liên quan, thông báo
về tiền đặt cọc và lập hợp đồng cho thuê
Thêm thông tin người thuê trên hệ thống để quản lí
Tra cứu, thêm, cập nhật thông tin khách hàng, trạng thái phòng Xóa thông tinkhi người thuê rời đi
Chủ trọ xuất hóa đơn tiền phòng, tiền điện, quản lí doanh thu hàng tháng
2
Trang 7CHƯƠNG 2: CƠ SỞ LÍ THUYẾT
1 Mô hình 3 tầng
Hình 1: Mô hình 3 tầng
Mô hình 3 tầng, trong tiếng Anh được gọi là "Three-Tier Architecture", là một
mô hình phát triển phần mềm phổ biến trong xây dựng ứng dụng Các tầng trong
mô hình 3 tầng bao gồm:
Tầng giao diện người dùng (Presentation Layer): Tầng này chịu trách nhiệmhiển thị thông tin và tương tác với người dùng Nó tương tác trực tiếp với ngườidùng thông qua các giao diện như giao diện đồ họa (GUI) Tầng này chủ yếuchứa các thành phần giao diện người dùng như form, menu, nút bấm,…Tầng Logic (Business Layer): Tầng logic là nơi chứa các luật và quy tắc kinhdoanh của ứng dụng Nó xử lý các yêu cầu từ tầng giao diện người dùng, thựchiện các nghiệp vụ và quyết định logic liên quan đến dữ liệu và quy trình kinhdoanh Tầng này có thể bao gồm các lớp, đối tượng và các phương thức để thựchiện các chức năng nghiệp vụ cụ thể của ứng dụng
Tầng dữ liệu (Data Layer): Tầng dữ liệu là nơi lưu trữ và truy cập dữ liệu củaứng dụng Nó có trách nhiệm đảm bảo tính toàn vẹn và an toàn của dữ liệu
3
Trang 8Tầng này giao tiếp với các nguồn dữ liệu như cơ sở dữ liệu, tệp tin, dịch vụ web
để thực hiện các thao tác lưu trữ và truy xuất dữ liệu
Mô hình 3 tầng giúp phân chia rõ ràng các trách nhiệm và chức năng của từngtầng, giúp dễ dàng quản lý và bảo trì ứng dụng Nó cũng tạo điều kiện cho việcphát triển đồng thời và độc lập giữa các tầng, cho phép thay đổi hoặc nâng cấpmột tầng mà không ảnh hưởng đến các tầng khác
5 Các công nghệ kết nối cơ sở dữ liệu
5.1 ADO.NET framework
ADO.NET (ActiveX Data Objects NET) là một framework được phát triểnbởi Microsoft cho phép lập trình viên tương tác với cơ sở dữ liệu trong các ứngdụng NET Nó cung cấp các đối tượng và phương thức để thực hiện các hoạtđộng như kết nối đến cơ sở dữ liệu, thực hiện truy vấn, thêm, sửa, xóa dữ liệu và
xử lý dữ liệu trả về từ cơ sở dữ liệu Nó hỗ trợ các nguồn dữ liệu khác nhau nhưMicrosoft SQL Server, Oracle, MySQL,…
Hai phần chính là DataSet và DataProvider Phần DataProvider là các thưviện lớp cung cấp chức năng tạo kết nối đến nguồn dữ liệu, thi hành các lệnhtrên nguồn dữ liệu đó inset, update, delete, read Phần DataSet là các thư việnlớp (độc lập với Data Provider) tạo ra các đối tượng để quản lý dữ liệu khôngphụ thuộc ngồn dữ liệu đến từ đâu
Hình 2: Kiến trúc ADO.NET
4
Trang 95.2 Ngôn ngữ LINQ
LINQ (Language Integrated Query) - ngôn ngữ truy vấn tích hợp - nó tích hợp
cú pháp truy vấn (gần giống các câu lệnh SQL) vào bên trong ngôn ngữ lập trìnhC#, cho nó C# khả năng truy cập các nguồn dữ liệu khác nhau (SQL Db, XML,List, ) với cùng cú pháp
Lập trình viên có thể sử dụng các phương thức và toán tử truy vấn tích hợp đểlọc, sắp xếp, nhóm, kết hợp và tính toán dữ liệu từ các nguồn khác nhau LINQ
hỗ trợ các tập hợp dữ liệu như danh sách (List), mảng (Array), tập hợp (Set), cơ
sở dữ liệu (Database) và các nguồn dữ liệu XML,…Với LINQ, việc viết mã truyvấn dễ dàng hơn, dễ hiểu và dễ bảo trì Nó cung cấp một cách tiếp cận khái quát
và thống nhất cho việc truy vấn dữ liệu trong ứng dụng NET, giúp tăng cườngnăng suất và giảm thiểu lỗi
5.3 Entity framework
Entity Framework là một nền tảng được sử dụng để làm việc với databasethông qua cơ chế ánh xạ Object/Relational Mapping (ORM) Nhờ đó, bạn có thểtruy vấn, thao tác với database gián tiếp thông qua các đối tượng lập trình
Hình 3: Kiến trúc Entity frameworkEntity Framework cho phép lập trình viên mô hình hóa cơ sở dữ liệu dướidạng các đối tượng và quan hệ giữa chúng Thay vì viết các truy vấn SQL trực
5
Trang 10tiếp, lập trình viên có thể làm việc với các đối tượng được định nghĩa trong EF,
và EF sẽ tự động chuyển đổi các hoạt động CRUD (Create, Read, Update,Delete) thành các truy vấn cơ sở dữ liệu tương ứng
Entity Framework hỗ trợ nhiều nguồn cơ sở dữ liệu, bao gồm Microsoft SQLServer, Oracle, MySQL, PostgreSQL và SQLite Nó cung cấp các tính năng nhưlazy loading (tải lười biếng), change tracking (theo dõi thay đổi), caching (bộnhớ đệm), và khả năng tạo ra cơ sở dữ liệu từ các đối tượng được định nghĩa
6 Các công cụ hỗ trợ
- Môi trường lập trình: Microsoft Visual Studio 2022
- Nền tảng: Windows Form App (.NET FRAMEWORK)
- Ngôn ngữ lập trình: C#
- Hệ quản trị cơ sở dữ liệu: SQL Sever 2019
- Thư viện giao diện: DevComponents.DotNetBar2.dll
6
Trang 11CHƯƠNG 3: PHÂN TÍCH CHƯƠNG TRÌNH
1 Mô tả yêu cầu
Xây dựng phần mềm quản lí nhà trọ phát triển qua 3 phiên bản:
- Phiên bản 1: Sử dụng ADO.NET
- Phiên bản 2: Sử dụng LINQ to SQL
- Phiên bản 3: Sử dụng Entity Framework
Phần mềm xây dựng dựa trên mô hình 3 tầng Các phiên bản đều phải dùngchung một giao diện (forms)
7 Phân tích nhu cầu và dữ liệu
7.1 Quản lí phòng
Quản lí đăng kí thuê phòng: Khi khách đến thuê phòng, chủ trọ phải ghi nhậnlại các thông tin liên quan đến khách trọ để phục vụ quản lí khách trong thờigian họ đăng kí thuê ở Tất cả thông tin đăng ký được nhà trọ quản lí dựa trên
mã khách, họ tên, chứng minh nhân dân, nghề nghiệp, địa chỉ, số điện thoại,ngày đăng kí
Quản lí thông tin nhận phòng: Sau khi thực hiện thủ tục đăng kí thuê phòng,khách thuê sẽ được chủ trọ cấp phòng và chính thức ghi nhận thời gian bắt đầuthuê phòng Chủ phòng sẽ lập hợp đồng, thu tiền đặt cọc và cập nhật trạng tháiphòng trên hệ thống
Quản lí việc trả phòng: Khi khách trọ có nhu cầu rời đi, chủ trọ có nhiệm vụkiểm tra lại thông tin khách, những dịch vụ mà họ đã sử dụng, thời gian thuê.Đồng thời, lập hóa đơn thanh toán cho khách dựa trên thông tin người thuê, sốphòng, dịch vụ sử dụng và thời gian trả phòng Đối với khách ở qua tháng thì lậphóa đơn mỗi tháng
7.2 Quản lí khu vực
Nhà trọ có các khu vực khác nhau, để quản lí thì hệ thống ghi nhận mã khuvực và tên của khu vực đó
7
Trang 127.3 Quản lí loại phòng
Chia các loại phòng thành từng loại để đa dạng hóa nhu cầu của từng đốitượng khách cụ thể, mỗi loại phòng có mã loại phòng, diện tích và mức giá khácnhau
7.4 Quản lí dịch vụ:
Bên cạnh việc thuê phòng, khách hàng còn có nhu cầu sử dụng các loại dịch
vụ Để đáp ứng điều đó, nhà trọ cung cấp các loại dịch vụ và quản lí chúngthông qua mã dịch vụ, tên dịch vụ và đơn giá
- Lưu trữ thông tin tài khoản đăng nhập
- Lưu trữ thông tin khách hàng
- Lưu trữ thông tin thuê, trả phòng
- Lưu trữ thông tin phòng, tình trạng phòng
- Lưu trữ thông tin dịch vụ, các dịch vụ khách sử dụng
- Lưu trữ thông các khu vực cho thuê, các loại phòng
- Quản lí hóa đơn
- Quản lí doanh thu
8.3 Chức năng báo cáo
- Báo cáo danh sách người thuê phòng
- Báo cáo hóa đơn
8
Trang 13- Báo cáo doanh thu từng tháng
9 Mô hình cơ sở dữ liệu
Hình 4: Sơ đồ cơ sở dữ liệuSau đây là chi tiết từng bảng:
Bảng 3: Bảng dịch vụ
9
Trang 14Bảng 4: Bảng khu vực
Bảng 5: Bảng loại phòng
Bảng 6: Bảng phòng
Bảng 7: Bảng thông tin đăng kí phòng
10
Trang 15GioiTinh nvarchar(50), null
Bảng 8: Thông tin khách
MaKhachTro PK, FK, nvarchar(10), not null
Bảng 9: Thông tin thuê phòng
Bảng 10: Bảng trả phòng
Bảng 11: Bảng phiếu thu
11
Trang 16CHƯƠNG 4: THÀNH PHẦN CHƯƠNG TRÌNH
1 Danh mục giao diện
Khi bắt đầu chạy chương trình, form MyApp sẽ được mở ra Mục đích củaform này là cho người dùng chọn tư cách người đang sử dụng phần mềm – chủtrọ hay là khách thuê
Hình 5: Form MyAppKhi nhấn vào button “Khách thuê”, tức người sử dụng là khách thuê đangmuốn tìm kiếm thông tin phòng và thực hiện điền thông tin cá nhân để gửi đăng
kí nếu thấy được phòng phù hợp, ngược lại có thể bấm hủy trên Form thông tinthuê
12
Trang 17Hình 6: Form Thông tin thuêCòn khi bấm vào nút “Chủ trọ”, tức người sử dụng là người quản lí nhà trọ,một form Login sẽ hiện ra để thực hiện thao tác đăng nhập, biểu tượng con mắt
để hiển thị/ẩn mật khẩu Chức năng lưu mật khẩu để ghi nhớ cho những lầnđăng nhập sau Sau đó, nút “Login” sẽ kiểm tra thông tin điền có chính xáckhông, nếu sai thì gửi thông báo đã sai tài khoản hoặc mật khẩu
Hình 7: Form LoginNếu đăng nhập thành công, người quản lí sẽ được chuyển đến màn hình quản
lí nhà trọ - form Admin Form này có thể coi là trang chủ chính của phần mềm
để gọi toàn bộ chức năng có trong chương trình Thành phần của nó gồm:
13
Trang 18- Thanh công cụ gồm có: thanh chức năng, thống kê, thêm, quản lí và tàikhoản - Bên tay trái là thông tin tài khoản, đổi mật khẩu, và đăng xuất Mộtkhung thông tin thống kê chọn khu vực để xem số phòng trống và số phòng đãthuê.
- Chính giữa màn hình chính là khu vực để hiển thị các form chức năng đượcgọi, ta có thể thực hiện gọi nhiều form cùng một lúc và chuyển đổi form, tắtform một cách dễ dàng
9.1 Thanh chức năng
Như đã đề cập, các chức năng chính của phần mềm đều nằm trên thanh công
cụ của form Admin (hình 9) Trước tiên, ta tìm hiểu thanh chức năng, thanh này
có 2 mục đích chính là theo dõi và thực hiện các thao tác
- Theo dõi: trạng thái, danh sách thu tiền
- Thao tác: cho thuê, thêm người, trả phòng, tính tiền phòng
Hình 8: Form Admin+ Chức năng theo dõi trạng thái do form Trạng thái phòng đảm nhiệm Mụcđích của form này là hiển thị danh sách các phòng đã được thuê, các phòng còntrống bằng các treeview
14
Trang 19Đối với các phòng đã được thuê, khi nhấn vào một phòng bất kì, danh sáchkhách thuê của phòng đó sẽ được hiện ngay listview bên dưới.
Hình 9: Form Trạng thái (hiển thị chọn danh sách phòng đã được thuê)Khi nhấn vào một thông tin của một khách thuê bất kì, form Thông tin kháchhàng sẽ hiện ra, mục đích form này là hiển thị hình ảnh và thông tin liên quancủa khách đang thuê Form này còn có chức năng cập nhật thông tin và thay đổihình ảnh của khách
Hình 10: Form Thông tin khách hàng
15
Trang 20Đối với danh sách phòng chưa được thuê, khi nhấn vào một phòng bất kì,thông tin của phòng trống đó bao gồm mã phòng, loại phòng, diện tích và giáthuê sẽ được hiển thị trong khung “Thông tin phòng trống” ở bên tay phải.
Hình 11: Form Trạng thái (hiển thị chọn danh sách phòng trống)+ Chức năng theo dõi thứ hai là xem danh sách thu tiền trong form Danh sáchthu tiền Form này giúp người quản lí có thể chọn khu vực, sau đó cho chọn hợpđồng với mã phòng tương ứng trong listview để thực hiện xem chi tiết hóa đơn.Thông tin hóa đơn sẽ xuất hiện và người quản lí nhấn nút “Xác nhận” đã đóngtiền Hệ thống sẽ xóa thông tin vừa mới chọn khỏi danh sách
Hình 12: Form Danh sách thu tiền+ Với thao tác cho thuê, form Cho thuê được xây dựng với 2 mục đích làchứa danh sách các khách đã gửi thông đăng ký ở form MyApp (hình 5) với tư
16
Trang 21cách là khách thuê Từ đó chủ trọ sẽ xem xét thông tin có hợp lệ hay không đểquyết định cho thuê phòng, nhấn xác nhận lưu và ngày cho thuê.
Hình 13: Form Cho thuê (hiển thị danh sách đăng kí phòng)Mục đích thứ 2 là thực hiện tự nhập thông tin đăng kí cho khách và quyếtđịnh cho thuê bằng cách nhấn lưu và xác nhận ngày cho thuê Khi ở chế độ tựnhập, các thông tin ở mục đích 1 bị khóa không thể nhấn
Hình 14: Form Cho thuê (hiển thị nơi nhập thông tin đăng ký)+ Với thao tác thêm người, form Thêm người thực hiện chức năng thêm ngườivào các phòng được đăng kí cho thuê từ trước đó Người quản lí sẽ chọn khuvực, chọn loại phòng và tìm kiếm tên phòng Khi chọn một phòng, thông tin cáckhách đăng kí của phòng đó sẽ xuất hiện ở listview phía dưới Còn khung thông
17
Trang 22tin khách đăng kí để thực hiện điền thông tin khách vào Sau khi nhấn lưu, quátrình thêm người vào phòng hoàn tất, thông tin phòng sẽ được cập nhật ngườimới được thêm và lưu ý chỉ có thể thêm 4 người trong 1 phòng.
Hình 15: Form Thêm người+ Với thao tác trả phòng, form Trả phòng thực hiện trả phòng khi kháchphòng đó có nhu cầu rời đi Người quản lí tìm kiếm khu vực, danh sách cácphòng được hiện ra listview bên dưới Khi nhấn vào phòng cần trả, danh sáchkhách ở trong phòng đó được hiện ra listview dưới cùng Khi nhấn xác nhận,căn phòng được trả và hệ thống sẽ cập nhật lại danh sách phòng trống và xóathông tin của khách đã rời đi
Hình 16: Form Trả phòng
18