Xây dựng phần mềm quản lý nhà trọ | Đồ án cuối kì môn lập trình windows Trường đại học sư phạm kỹ thuật TP. Hồ Chí Minh
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ập bả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ời gian và hiệu quả hơn. Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!
Môn: Lập trình trên Windows (WIPR230579)
Trường: Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Thông tin:
Tác giả:
Preview text:
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
KHOA: CÔNG NGHỆ THÔNG TIN ĐỒ ÁN CUỐI KÌ
MÔN LẬP TRÌNH WINDOWS ĐỀ TÀI
“XÂY DỰNG PHẦN MỀM
QUẢN LÝ NHÀ TRỌ”
MÃ LỚP: WIPR230579_22_2_09
NHÓM THỰC HIỆN: NHÓM 06
GIÁO VIÊN HƯỚNG DẪN: TS. Lê Văn Vinh
Thành phố Hồ Chí Minh, tháng 6 năm 2023
DANH 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ố Tỉ lệ Họ và tên T sinh viên hoàn thành 1 Phạm Bá Thành 21110923 100 % 2 Lê Quang Lâm 21110894 100 % 3 Trương Hoàng Quang 21110616 100 % 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Ụ
CHƯƠ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
1.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
CHƯƠ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ập bả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ời gian 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ềm này giúp tổ chức và quản lí các
thông tin về khách hàng, phòng trống, đặt phò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ày
khô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ảo tính chính xác và tin cậy trong các hoạt động
kinh doanh. Bên cạnh đó, phần mềm cũng mang lại sự tiện lợi
cho khách hàng khi cho phép họ dễ dàng đặt phò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òng thuê, 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ính thủ công, chân tay. Mang lại hiệu quả cho việc 1
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ọ 4. 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 đă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 tin khi 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
CHƯƠ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ệm hiể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ười dùng thông qua các giao diện
như giao diện đồ họa (GUI). Tầng này chủ yếu chứ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 kinh doanh 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ực hiện các nghiệp vụ và quyết
định logic liên quan đến dữ liệu và quy trình kinh doanh. Tầng 3
này có thể bao gồm các lớp, đối tượng và các phương thức để
thực hiệ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. Tầ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ừng tầ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ệc phá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ấp mộ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ển bở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 ứng dụ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ệnh trên nguồn dữ liệu đó inset, update,
delete, read. Phần DataSet là các thư viện lớp (độc lập với Data
Provider) tạo ra các đối tượng để quản lý dữ liệu không phụ
thuộc ngồn dữ liệu đến từ đâu. 4 Hình 2: Kiến trúc ADO.NET 5.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ình C#, 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ã
truy vấ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ường nă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 database thông qua cơ chế ánh xạ Object/Relational 5
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 framework
Entity Framework cho phép lập trình viên mô hình hóa cơ sở
dữ liệu dưới dạ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 tiế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 SQL Server, 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 6
- Thư viện giao diện: DevComponents.DotNetBar2.dll 7
CHƯƠ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ùng chung 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ận lại các thông tin liên quan đến khách trọ để
phục vụ quản lí khách trong thời gian 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 đầu thuê 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ái phò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ập hóa đơn mỗi tháng. 8
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ã khu vực và tên của khu vực đó.
7.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 đối tượ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ác nhau.
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úng thông qua mã dịch vụ, tên dịch vụ và đơn giá.
7.5 Quản lí khách hàng
Thông tin khách hàng được lưu trữ trên cơ sở dữ liệu một cách
bảo mật, dễ dàng truy vấn và thực hiện các thao tác quản lí.
8. Các chức năng chính
8.1 Chức năng lưu trữ
- 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
8.2 Chức năng nghiệp vụ - Quản lí khách hàng
- Quản lí đăng kí thuê phòng 9
- Quản lí nhận, trả phòng - Quản lí dịch vụ - 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
- 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ệu
Sau đây là chi tiết từng bảng: Tên field Mô tả id nchar(50), null pass nchar(50), null Bảng 1: Bảng đăng nhập Tên field Mô tả id nchar(50), null pass nchar(50), null Bảng 2: Bảng ghi nhớ Tên field Mô tả 10 Id PK, int, not null TenDichVu nvarchar(50), null Gia Bigint, null Bảng 3: Bảng dịch vụ Tên field Mô tả MaKhuVuc PK, nchar(10), not null TenKhuVuc nvarchar(50), null Bảng 4: Bảng khu vực Tên field Mô tả MaLoaiPhong PK, nchar(10), not null TenLoaiPhong nvarchar(50), null DienTich float,null DonGia float,null GhiChu nvarchar(50), null Bảng 5: Bảng loại phòng Tên field Mô tả MaPhong PK, nchar(10), not null MaLoaiPhong FK, nvarchar(10), not null MaKhuVuc FK, nvarchar(10), not null TenPhong nvarchar(50), not null Day nchar(10), not null TrangThai nvarchar(10), not null GhiChu nvarchar(50), null Bảng 6: Bảng phòng Tên field Mô tả Id PK, int, not null MaLoaiPhong FK, nvarchar(10), null MaKhuVuc FK, nvarchar(10), null Ho nvarchar(50), null Ten nvarchar(50), null GioiTinh nvarchar(50), null NgaySinh date, null 11 CMND nvarchar(50), null QueQuan nvarchar(50), null NgheNghiep nvarchar(50), null
Bảng 7: Bảng thông tin đăng kí phòng Tên field Mô tả MaKhachTro PK, nchar(10), not null MaPhong FK, nchar(10), not null Ho nvarchar(50), null Ten nvarchar(50), null GioiTinh nvarchar(50), null AnhNhanDien image, null NgaySinh date, null CMND nchar(10), null QueQuan nvarchar(50), null NgheNghiep nvarchar(50), null GhiChu nvarchar(50), null Bảng 8: Thông tin khách Tên field Mô tả MaHD PK, nchar(10), not null MaKhachTro PK, FK, nvarchar(10), not null MaPhong FK, nchar(10), not null NgayThue date, not null TienDatCoc bigint, null GhiChu nvarchar(50), null
Bảng 9: Thông tin thuê phòng Tên field Mô tả Id PK, int, not null MaPhong FK, nchar(10), null MaKhachTro FK, nchar(10), null NgayTraPhong date, null Bảng 10: Bảng trả phòng Tên field Mô tả MaPT PK, float, not null MaPhong FK, nchar(10), null 12 NgayLap date, null NgayThu date, null TienNha bigint, null SkNuoc int, null TienNuoc bigint, null TongTien bigint, null TrangThai nvarchar(50), null Bảng 11: Bảng phiếu thu 13
CHƯƠ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ủa form 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 MyApp
Khi nhấn vào button “Khách thuê”, tức người sử dụng là khách
thuê đang muố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 tin thuê. 14 Hì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ác
khô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 Login 15