Đồ án cuối kỳ môn Lập trình trên Windows đề tài "Xây dựng phần mềm quản lý nhà trọ"

Đồ án cuối kỳ môn Lập trình trên Windows đề tài "Xây dựng phần mềm quản lý nhà trọ" của Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

lOMoARcPSD|36991220
ĐỒ ÁN CUỐI KÌ
MÔN LẬP TRÌNH WINDOWS
MÃ LỚP: WIPR230579_22_2_09
NHÓM THỰC HIỆN: NHÓM 06
GIÁO VIÊN ỚNG DN: TS. Văn Vinh
Thành ph H Chí Minh, tháng 6 năm 2023
BỘ GIÁO DỤC VÀ ĐÀO TẠO
THÀNH PHỐ HỒ CHÍ MINH
KHOA: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI
“XÂY DỰNG PHẦN MỀM
QUẢN LÝ NHÀ TRỌ”
lOMoARcPSD|36991220
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
lOMoARcPSD| 36991220
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
lOMoARcPSD|36991220
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
1. Lí do chọn đề tài
Trước đây, quản nhà trọ thường phụ thuộc vào các công cụ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 thu chi, quản 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à mt 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 quản tài chính một cách hiệu quả tự động hóa. Điều này kng chỉ
giúp tiết kiệm thời gian công sức cho nhà quản lí, mà còn đảm bảo tính chính
xác 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
theo dõi tình hình thuê trọ.
thế, sau khi 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í ntrọ 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 quản lí thu chi mỗi tháng của nhà
trọ. Phần mm 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ọ
lOMoARcPSD|36991220
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 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.
lOMoARcPSD|36991220
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 tương tác với người dùng. 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 nơi chứa các luật quy tắc kinh
doanh của ứng dụng. xcác yêu cầu từ tầng giao diện người dùng, thực
hiện các nghiệp vụ quyết định logic liên quan đến dữ liệu quy trình kinh
doanh. Tầng này thể bao gồm các lớp, đối tượng 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.
lOMoARcPSD|36991220
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 bảo tứng dụng. cũng tạo điều kiện cho việc
phát triển đồng thời độ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 n
kết nối đến sở dữ liệu, thực hiện truy vấn, thêm, sửa, xóa dữ liệu xử 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 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.
lOMoARcPSD|36991220
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 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 tính toán dữ liệu tcá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),
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 dễ bảo trì. cung cấp một cách tiếp cận khái quát
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 một nền tảng được sử dụng để làm việc với database thông
qua chế ánh xạ Object/Relational Mapping (ORM). Nhờ đó, bạn 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.
lOMoARcPSD|36991220
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 sở dữ liệu dưới dạng
các đối tượng và quan hgiữa chúng. Thay vì viết các truy vấn SQL trực tiếp, lập
trình viên 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 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
- Thư viện giao diện: DevComponents.DotNetBar2.dll
lOMoARcPSD|36991220
CHƯƠNG 3: PHÂN TÍCH CHƯƠNG TRÌNH
1. Mô tả yêu cầu
Xây dựng phần mm 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 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 đăng 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 thuê ở. Tất cả thông tin đăng ký được nhà trọ quản dựa trên
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 thông tin nhận phòng: Sau khi thực hiện thủ tục đăng thuê phòng,
khách thuê sẽ được chủ trọ cấp phòng 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 việc trả phòng: Khi khách trọ nhu cầu rời đi, chủ trọ nhiệm vụ
kiểm tra lại thông tin khách, những dịch vhọ đã 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. 7.2 Quản lí khu vực
Nhà trọ có các khu vực khác nhau, đquản 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ụ:
lOMoARcPSD|36991220
Bên cạnh việc thuê phòng, khách hàng còn 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 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
- 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áng9. Mô hình cơ sở dữ liệu
lOMoARcPSD|36991220
Hình 4: Sơ đồ cơ sở dữ liệu
Sau đây là chi tiết từng bảng:
Bảng 1: Bảng đăng nhập
Bảng 2: Bảng ghi nhớ
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ả
id
nchar(50), null
nchar(50), null
pass
Tên field
Mô tả
id
nchar(50), null
nchar(50), null
pass
Tên field
Mô tả
Id
PK, int, not null
nvarchar(50), null
TenDichVu
Bigint, null
Gia
lOMoARcPSD|36991220
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ả
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ả
Id
PK, int, not null
FK, nvarchar(10), null
MaLoaiPhong
FK, nvarchar(10), null
MaKhuVuc
nvarchar(50), null
Ho
nvarchar(50), null
Ten
nvarchar(50), null
GioiTinh
date, null
NgaySinh
nvarchar(50), null
CMND
nvarchar(50), null
QueQuan
nvarchar(50), null
NgheNghiep
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
nvarchar(50), null
Ho
nvarchar(50), null
Ten
lOMoARcPSD|36991220
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
CHƯƠNG 4: THÀNH PHẦN CHƯƠNG TRÌNH
1. Danh mục giao diện
GioiTinh
nvarchar(50), null
AnhNhanDien
image, null
NgaySinh
date, null
nchar(10), null
CMND
nvarchar(50), null
QueQuan
nvarchar(50), null
NgheNghiep
nvarchar(50), null
GhiChu
Bảng 8: Thông tin khách
Tên field
Mô tả
Id
PK, int, not null
FK, nchar(10), null
MaPhong
FK, nchar(10), null
MaKhachTro
date, null
NgayTraPhong
Bảng 10: Bảng trả phòng
Tên field
Mô tả
MaPT
PK, float, not null
MaPhong
FK, nchar(10), null
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
lOMoARcPSD|36991220
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 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ê.
Hình 6: Form Thông tin th
Còn khi bấm vào nút “Chủ trọ”, tức người sử dụng người quản 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
lOMoARcPSD|36991220
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 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
Nếu đăng nhập thành công, người quản 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:
- Thanh công cụ gồm có: thanh chức năng, thống kê, thêm, quản
tàikhoản. - Bên tay trái thông tin tài khoản, đổi mật khẩu, đăng xuất. Một
khung thông tin thống chọn khu vực để xem số phòng trống số phòng đã
thuê.
- Chính giữa màn hình chính 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 mt lúc và chuyển đổi form, tắt
form mt cách dễ dàng.
lOMoARcPSD|36991220
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
2 mục đích chính theo dõi 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 hiển thị danh sách các phòng đã được thuê, các phòng còn
trống bằng các treeview.
Đối với các phòng đã được thuê, khi nhấn vào một phòng bất kì, danh sách
khách thuê của phòng đó sẽ được hiện ngay listview bên dưới.
lOMoARcPSD|36991220
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ách
hàng sẽ hiện ra, mục đích form này là hiển thị hình ảnh và thông tin liên quan của
khách đang thuê. Form này còn có chức năng cập nhật thông tin và thay đổi hình
ảnh của khách.
Hình 10: Form Thông tin khách hàng
Đối với danh sách phòng chưa được thuê, khi nhấn vào mt phòng bất kì, thông
tin của phòng trống đó bao gồm phòng, loại phòng, diện tích giá thuê sẽ
được hiển thị trong khung “Thông tin phòng trống” ở bên tay phải.
lOMoARcPSD|36991220
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ách
thu 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 phòng tương ứng trong listview để thực hiện xem chi tiết a đơn.
Thông tin hóa đơn sxuất hiện người quản nhấn nút “Xác nhận” đã đóng
tiề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ư cách là
khách thuê. Từ đó chủ trsẽ xem xét thông tin 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ê.
lOMoARcPSD|36991220
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 xác nhận ngày cho thuê. Khi chế độ tnhậ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ười
vào các phòng được đăng kí cho thuê từ trước đó. Người quản schọn khu vự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ác khách
đăng của phòng đó sẽ xuất hiện listview phía dưới. Còn khung thông tin khách
đăng để 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ười mới được thêm
và lưu ý chỉ có thể thêm 4 người trong 1 phòng.
lOMoARcPSD|36991220
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ách phòng
đó có nhu cầu rời đi. Người quản lí tìm kiếm khu vực, danh sách các phòng được
hiện ra listview bên dưới. Khi nhấn vào phòng cần trả, danh sách khá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óa thông tin của khách
đã rời đi.
Hình 16: Form Trả phòng
+ Với thao tác tính tiền phòng, Form Tính tiền sẽ thực hiện chức năng lập hóa
đơn cho từng tháng. Sau khi chọn khu vực, danh sách các phòng chưa thanh toán
tiền nhà, tiền dịch vụ sđược hiện lên. Khi người thuê đóng tiền cung cấp tên
phòng để người quản kiểm tra thông tin lập hóa đơn tháng đó. Hệ thống sẽ
lưu hóa đơn và xóa phòng đó khỏi danh sách chưa đóng tiền.
lOMoARcPSD|36991220
Hình 17: Form Tính tiền
9.2 Thanh thống kê
Thanh công cụ thống gồm các chức năng thống kê: danh sách người thuê,
danh sách phòng, doanh thu, danh sách dịch vụ danh sách loại phòng. Các
thống này nhóm sử dụng Microsotf Report để thực hiện báo cáo. Với danh sách
người thuê, người quản lí sẽ xem được mã phòng và tổng số khách đang thuê, và
có thể tìm kiếm theo mã khách để xem thông tin nhanh.
Hình 18: Form Thống kê người thuê
+ Khi nhập khách và nhấn nút tìm kiếm, thông tin của mã khách đó sẽ được
hiện lên bảng báo cáo thông tin khách
lOMoARcPSD|36991220
Hình 19: Report thông tin khách
+ Với thống kê danh sách phòng, mục đích form thống kê danh sách phòng là
cho biết số phòng trống, số phòng được thuê bảng danh sách chi tiết các phòng.
Người quản lí có thể tìm kiếm theo mã phòng để xem thông tin nhanh chóng.
Hình 20: Form Thống kê danh sách phòng
+ Khi ta nhập mã phòng và nhấn nút tìm kiếm, thông tin của mã phòng sẽ được
hiện lên bảng báo cáo thông tin phòng.
lOMoARcPSD|36991220
Hình 21: Report thông tin phòng
+ Với thống doanh thu, mục đích form này cho người quản xem được
doanh thu của mỗi tháng (hình 21) và tổng doanh thu của nhà trọ (hình 22)
Hình 22: Form Thống kê doanh thu theo tháng
Hình 23: Form Thống kê doanh thu tổng
+ Với thống các loại dịch vụ, form này cho biết danh sách các loại dịch v
đang có của nhà trọ: gồmmã dịch vụ, tên dịch vụ và giá cho mi loại.
lOMoARcPSD|36991220
Hình 24: Form Thống kê danh sách loại dịch vụ
+ Với thống kê các loại phòng, form này cho biết danh sách các loại phòng mà
nhà trọ đang phục vụ cho nhu cầu của khách hàng.
Hình 25: Form Thống kê danh sách loại phòng
9.3 Thanh thêm
Thanh công cụ thêm gồm có 2 chức năng:
+ Thêm khu vực, mục đích mở rộng khu vực cho thuê của chủ nhà trọ. Các
thông tin cần điền khu vực tên khu vực (có thể tên quận). Lưu ý
khu vực không được trùng với các khu vực đã có.
Hình 26: Form Thêm khu vực
+ Thêm loại phòng, tùy vào mc đích kinh doanh người quản lí thể thêm
phòng trống cho khu vực hiện có, khi thêm scập nhật vào danh sách phòng trống
lOMoARcPSD|36991220
trong khu vực đó. Người quản lí cần nhập phòng không được trùng với phòng
hiện có, và các thông tin liên quan.
Hình 27: Form Thêm phòng
9.4 Thanh quản lí
Thanh quản này bao gồm các chức năng quản dịch vụ, quản loại phòng
quản doanh thu. Để quản thì phần mềm xây dựng các chức năng bản
trong đó là thêm, sửa, xóa phục vụ mục đích thay đổi giá cả, tên dịch vụ hoặc xóa
khi không cần thiêt.
+ Với quản lí dịch vụ, formy sẽ hiển thị danh sách các dịch vụ đang có của
nhà trọ, khi người quản muốn thao tác với dịch vụ nào thì nhấn vào dòng dịch
vụ đó.
lOMoARcPSD|36991220
Hình 28: Form Quản lí dịch v
+ Với quản loại phòng, cũng tương tự như quản lí dịch vụ, người quản lí
thể cập nhật thông tin loại phòng, điều chỉnh giá,...
Hình 29: Form Quản lí loại phòng
+ Với quản doanh thu, form này sẽ cho người quản lí thấy doanh thu từng
tháng một cách trực quan nhất, có thể chọn từng tháng để xem doanh thu, quản lí
doanh thu tháng và doanh thu tổng.
Hình 30: Form Quản lí doanh thu
9.5 Thanh tài khoản
Thanh tài khoản giúp cho người quản lí có thể quản lí tài khoản đăng nhập của
mình: thêm tài khoản, xem thông tin tài khoản và đổi mật khẩu.
lOMoARcPSD|36991220
+ Chức năng thêm tài khoản: người dùng thể thêm tài khoản và thực hiện
các chức năng đã đề cập bên trên một cách bình thường, tài khoản mới cần thêm
các thông tin cho việc kinh doanh của mình
Hình 31: Form Thêm tài khoản
+ Chức năng xem thông tin tài khoản: dùng để xem tình trạng kích hoạt của tài
khoản, tên chủ sở hữu tài khoản
Hình 32: Form Thông tin tài khoản
+ Chức năng đổi mật khẩu: người dùng có thể đổi mật khẩu cho tài khoản
lOMoARcPSD|36991220
Hình 33: Form Đổi mật khẩu
10. Kiến trúc phần mềm
10.1 Sơ đồ lớp
Hình 34: Sơ đồ lớp tổng quát
10.2 Giải thích các lớp
- Lớp tài khoản: lớp này bao gồm thông tin tên tài khoản mật khẩu của
người sử dụng phần mềm. Mục đích của lớp này để lưu trữ thông tin đăng nhập,
lOMoARcPSD| 36991220
thực hiện chức năng đăng nhập vào hệ thống và thể thêm, xóa tài khoản hoặc
đổi mật khẩu. Chức năng lưu tài khoản được lưu trong lớp ghi nhớ
- Lớp ghi nhớ: lớp này chính là lớp lưu tài khoản mật khẩu của người dùng
để phục vụ những lần đăng nhập sau này.
- Lớp khu vực: lớp này tên của các khu vực riêng biệt. Lớp này
phục vụ việc quản lí các phòng thuộc các khu vực một cách dễ dàng. Chức năng
lấy khu vực để thực hiện việc tìm kiếm nhà trọ, thêm khu vực đphù hợp cho
người quản lí có nhu cầu mở rộng khu vực.
- Lớp loại phòng: gồm mã, tên loại phòng đi kèm mức giá, diện tích. Các
loại phòng thể phòng nhỏ, vừa, lớn,... Chức năng của lớp này cho phép người
sử dụng tìm kiếm phòng trọ phù hợp với nhu cầu, thêm loại phòng (nếu có),
có thể điều chỉnh thông tin của loại phòng đó tùy vào mục đích kinh doanh.
- Lớp phòng: lớp này sẽ mang thông tin khu vực, loại phòng, tên loại
phòng, dãy và trạng thái được thuê hay đang trống. Khi người dùng chọn được
khu vực và loại phòng, một danh sách các phòng sẽ hiện ra theo thông tin tìm
kiếm đó. Mục đích của lớp này cho phép người dùng tìm kiếm các phòng trống
để thực hiện cho thuê, phòng đã được thuê tthực hiện tra cứu thông tin người
thuê. Chức năng lấy phòng để thực hiện lập phiếu thu hóa đơn. tất nhiên
người dùng cũng có thể điều chỉnh trạng thái phòng.
- Lớp khách: lớp này bao gồm các thông tin cơ bản của một khách thuê để
tiện trong việc quản người thuê phòng. Chức năng của lớp này giúp ta lấy thông
tin của người thuê khi tìm kiếm, thêm khách khi họ lập hợp đồng thuê, trả phòng
khi khách có nhu cầu rời đi và chức năng cập nhật thông tin để tránh sai sót.
- Lớp thông tin thuê phòng: có thể coi đây là một hợp đồng, nó cho biết ai
đang thuê phòng nào thông qua mã phòng và mã khách trọ, các hợp đồng có tính
riêng biệt đối với mỗi khách nhờ hợp đồng. Hợp đồng còn chứa thông tin ngày
thuê, tiền đặt cọc một sghi chú. Mục đích của lớp này giúp người quản
thống kê được tình hình kinh doanh cho thuê trọ, ngoài ra còn có chức năng thêm
thông tin thuê (lập hợp đồng), hay trả phòng khi người thuê rời đi.
lOMoARcPSD|36991220
- Lớp dịch vụ: đây lớp chứa các thông tin về dịch vụ nhà trọ đang
cung cấp, với mã dịch vụ, tên dịch vụ và giá đi kèm. Các dịch vụ thể điện,
nước, wifi, dọn rác,... Người quản lí có thể bổ sung nhờ chức năng thêm dịch vụ,
điều chỉnh gnhờ chức năng cập nhật, hoặc xóa dịch vụ khỏi hệ thống khi không
còn cung cấp dịch vụ đó nữa.
- Lớp thông tin đăng thuê: lớp này chứa các thông tin bắt buộc người
nhu cầu thuê phòng sau khi tìm kiếm phòng phù hợp phải cung cấp. Các thông tin
như họ tên, giới tính, ngày sinh, chứng minh nhân dân, ảnh thẻ, quê quán, nghề
nghiệp,... Những thông tin này được lưu trên hệ thống theo một danh sách và ch
người quản lí trọ phê duyệt để thực hiện lập hợp đồng cho thuê.
-Lớp phiếu thu: lớp này bao gồm thông tin phiếu thu, mỗi phiếu thu để thu
tiền của mỗi phòng thông qua mã phòng. Người cho thuê sẽ thu tiền phòng tiền
dịch vụ mỗi tháng. Với lớp này, người quản thể thống được tình trạng
đóng tiền của mỗi phòng theo từng tháng. Lấy tổng doanh thu để xem doanh thu
tổng, cập nhật thông tin phiếu thu nếu cần thiết. Lấy các phòng chưa thu để nhắc
nhở đến hạn thu tiền. Trong phiếu thu có ngày thu và ngày lập phục vụ cho chức
năng thống kê doanh thu.
lOMoARcPSD|36991220
CHƯƠNG 5: KẾT LUẬN 1. Kết quả đt được
- Thực hiện đầy đủ 3 phiên bản ADO.NET, LINQ và ENTITY như yêu cầu.
- Xây dựng phần mm theo mô hình 3 tầng.
- Thiết kế giao diện trực quan, dễ sử dụng các chức năng liên quan đến đề
tài.
- Viết câu lệnh dễ hiểu, trực quan và không phức tạp.
- Vận dụng thành thạo các kiến thức của các chương trong môn Lập
trìnhWindows như kết nối sdữ liệu với 3 công nghệ khác nhau, tạo báo
cáo bằng Microsoft Report.
- Hiểu sâu về hơn về lập trình giao diện, tìm hiểu được thêm các thư viện
mới.
- Làm việc nhóm hiệu quả, hoàn thành đúng tiến độ công việc, qua đó họchỏi,
trau dồi kinh nghiệm khi làm bài tập nhóm, cách giao tiếp và làm việc với tinh
thần trách nhiệm nhóm cao.
11. Hạn chế
- mặt hạn chế thời gian thực hiện đề tài, nhóm vẫn chưa mở rộng
đượcthêm nhiều chức năng nâng cao cho phần mm.
- Cách tổ chức cơ sở dữ liệu còn chưa được tốt.
- Vẫn còn hạn chế về bảo mật và quyền riêng tư cho thông tin khách hàng
12. Hướng phát triển
- Xử lí các lỗi ngoài ý muốn, các lỗi khi kết nối cơ sở dữ liệu.
- Cải thiện chương trình, mở rộng chức năng.
- Nâng cao tính linh động cho chương trình.
- Bảo mật dữ liệu tốt hơn.
PHỤ LỤC BẢNG
Bảng 1: Bảng đăng nhập.......................................................................................9
Bảng 2: Bảng ghi nhớ............................................................................................9
Bảng 3: Bảng dịch vụ............................................................................................9
Bảng 4: Bảng khu vực.........................................................................................10
Bảng 5: Bảng loại phòng.....................................................................................10
lOMoARcPSD|36991220
Bảng 6: Bảng phòng............................................................................................10
Bảng 7: Bảng thông tin đăng kí phòng................................................................11
Bảng 8: Thông tin khách.....................................................................................11
Bảng 9: Thông tin thuê phòng.............................................................................12
Bảng 10: Bảng trả phòng.....................................................................................12
Bảng 11: Bảng phiếu thu.....................................................................................12
lOMoARcPSD|36991220
PHỤ LỤC HÌNH ẢNH
Hình 1: Mô hình 3 tầng ......................................................................................... 3
Hình 2: Kiến trúc ADO.NET ................................................................................ 5
Hình 3: Kiến trúc Entity framework ..................................................................... 6
Hình 4: Sơ đồ cơ sở dữ liệu .................................................................................. 9
Hình 5: Form MyApp ......................................................................................... 12
Hình 6: Form Thông tin th.............................................................................. 12
Hình 7: Form Login ............................................................................................ 13
Hình 8: Form Admin ........................................................................................... 14
Hình 9: Form Trạng thái (hiển thị chọn danh sách phòng đã được thuê) ........... 15
Hình 10: Form Thông tin khách hàng ................................................................. 15
Hình 11: Form Trạng thái (hiển thị chọn danh sách phòng trống) ..................... 16
Hình 12: Form Danh sách thu tiền ...................................................................... 16
Hình 13: Form Cho thuê (hiển thị danh sách đăng kí phòng) ............................ 17
Hình 14: Form Cho thuê (hiển thị nơi nhập thông tin đăng ký) ......................... 17
Hình 15: Form Thêm người ................................................................................ 18
Hình 16: Form Trả phòng ................................................................................... 18
Hình 17: Form Tính tiền ..................................................................................... 19
Hình 18: Form Thống kê người thuê .................................................................. 19
Hình 19: Report thông tin khách ......................................................................... 20
Hình 20: Form Thống kê danh sách phòng ......................................................... 20
Hình 21: Report thông tin phòng ........................................................................ 21
Hình 22: Form Thống kê doanh thu theo tháng .................................................. 21
Hình 23: Form Thống kê doanh thu tổng ........................................................... 21
Hình 24: Form Thống kê danh sách loại dịch vụ ................................................ 22
Hình 25: Form Thống kê danh sách loại phòng.................................................. 22
Hình 26: Form Thêm khu vực ............................................................................ 22
Hình 27: Form Thêm phòng ............................................................................... 23
Hình 28: Form Quản lí dịch v ........................................................................... 24
lOMoARcPSD|36991220
Hình 29: Form Quản lí loại phòng ...................................................................... 24
Hình 30: Form Quản lí doanh thu ....................................................................... 24
Hình 31: Form Thêm tài khoản ........................................................................... 25
Hình 32: Form Thông tin tài khoản .................................................................... 25
Hình 33: Form Đổi mật khẩu .............................................................................. 26
Hình 34: Sơ đồ lớp tổng quát .............................................................................. 26
lOMoARcPSD|36991220
PHỤ LỤC – BẢNG PHÂN CÔNG NHIỆM VỤ TRONG NHÓM
Mức độ
hoàn thành
Người thực hiện Nội dung thực hiện
(Tốt / Khá /
Kém)
PHẦN ENTITY
Làm chức năng của các form:
Lê Quang Lâm ThemNguoi, TraPhong,
QLDichVu, QLLoaiPhong,
Làm chức năng các form:
Guest, Infomation, Login,
Tốt
Phạm Bá Thành MyApp, TKNguoiThue,
ChangePass, ThemKhuVuc,
ThemTaiKhoan, TrangThai
Làm chức năng của các form:
Trương Hoàng Quang
TinhTien, DoanhThu, Dsthutien
PHẦN LINQ
Sửa tầng nghiệp vụ:
Lê Quang Lâm BLTTDKiPhong, BLTTKhach,
BLTTThuePhong
Sửa tầng nghiệp vụ:
Phạm Bá Thành BLLoaiPhong, BLPhieuThu, Tốt
BLPhong
Sửa tầng nghiệp vụ:
Trương Hoàng Quang BLDangNhap, BLDichVu,
BLKhuVuc
PHẦN ADO.NET
Sửa tầng nghiệp vụ:
Lê Quang Lâm BLTTDKiPhong, BLTTKhach,
BLTTThuePhong
Sửa tầng nghiệp vụ:
Phạm Bá Thành BLLoaiPhong, BLPhieuThu,
Tốt
BLPhong
lOMoARcPSD|36991220
Sửa tầng nghiệp vụ:
Trương Hoàng Quang BLDangNhap, BLDichVu,
BLKhuVuc
PHẦN GIAO DIỆN
Phạm Bá Thành Form Admin, Guest, Information, Tốt
MyApp, TrangThai, TinhTien,
TraPhong, ChoThue, DSThuTien,
DoanhThu, ThemNguoi
AccountInformation, Login,
TKNguoiThue, Changepass,
Lê Quang Lâm
QLDichVu, QLLoaiPhong,
ThemKV, ThemPhong, ThemTK
Các form report: DichVu,
Trương Hoàng Quang DoanhThuThang, DSPhong,
LoaiPhong
CÔNG VIỆC KHÁC
Làm chức năng các report:
ReportDichVu,
Phạm Bá Thành, ReportDoanhThuThang,
Trương Hoàng Quang ReportDSPhong, ReportPhong,
ReportLoaiPhong, ReportKhach, Tốt
ReportTTKhach
Lê Quang Lâm Làm báo cáo Word
Phạm Bá Thành Sửa chữa chương trình
lOMoARcPSD|36991220
TÀI LIỆU THAM KHẢO
1. Tài liệu, Slide, thầy Lê Văn Vinh.
2. Dương Quang Thiện, .NET Toàn Tập, nxb Tổng hợp, TP.HCM, 2005
3. Chris Sells, Windows Forms Programming in C#, nxb Addison Wesley, 2003.
4. Lê Ngọc Sơn, Tìm Hiểu Về Mô Hình 3 Lớp (3 Layer), truy cập (1/6/2023):
https://viblo.asia/p/tim-hieu-ve-mo-hinh-3-lop-3-layer-Qbq5Qmyz5D8
| 1/38

Preview text:

lOMoARcPSD| 36991220
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 lOMoARcPSD| 36991220 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 lOMoAR cPSD| 36991220
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 lOMoARcPSD| 36991220
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 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ọ lOMoARcPSD| 36991220 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. lOMoARcPSD| 36991220
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 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. lOMoARcPSD| 36991220
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. lOMoARcPSD| 36991220 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 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. lOMoARcPSD| 36991220
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
- Thư viện giao diện: DevComponents.DotNetBar2.dll lOMoARcPSD| 36991220
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. 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ụ: lOMoARcPSD| 36991220
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
- 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áng9. Mô hình cơ sở dữ liệu lOMoARcPSD| 36991220
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ả 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 lOMoARcPSD| 36991220 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 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 lOMoARcPSD| 36991220 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 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
CHƯƠNG 4: THÀNH PHẦN CHƯƠNG TRÌNH
1. Danh mục giao diện lOMoARcPSD| 36991220
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ê.
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 lOMoARcPSD| 36991220
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
Nế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: -
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ột
khung 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ắt form một cách dễ dàng. lOMoARcPSD| 36991220 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òn trống bằng các treeview.
Đối với các phòng đã được thuê, khi nhấn vào một phòng bất kì, danh sách
khách thuê của phòng đó sẽ được hiện ngay listview bên dưới. lOMoARcPSD| 36991220
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ách
hàng sẽ hiện ra, mục đích form này là hiển thị hình ảnh và thông tin liên quan của
khách đang thuê. Form này còn có chức năng cập nhật thông tin và thay đổi hình ảnh của khách.
Hình 10: Form Thông tin khách hàng
Đố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. lOMoARcPSD| 36991220
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ách
thu 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” đã đóng
tiề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ư cá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ê. lOMoARcPSD| 36991220
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ười
vào các phòng được đăng kí cho thuê từ trước đó. Người quản lí sẽ chọn khu vự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ác khách
đăng kí của phòng đó sẽ xuất hiện ở listview phía dưới. Còn khung thông tin 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ười mới được thêm
và lưu ý chỉ có thể thêm 4 người trong 1 phòng. lOMoARcPSD| 36991220 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ách phòng
đó có nhu cầu rời đi. Người quản lí tìm kiếm khu vực, danh sách các phòng được
hiện ra listview bên dưới. Khi nhấn vào phòng cần trả, danh sách khá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óa thông tin của khách đã rời đi. Hình 16: Form Trả phòng
+ Với thao tác tính tiền phòng, Form Tính tiền sẽ thực hiện chức năng lập hóa
đơn cho từng tháng. Sau khi chọn khu vực, danh sách các phòng chưa thanh toán
tiền nhà, tiền dịch vụ sẽ được hiện lên. Khi người thuê đóng tiền cung cấp tên
phòng để người quản lí kiểm tra thông tin và lập hóa đơn tháng đó. Hệ thống sẽ
lưu hóa đơn và xóa phòng đó khỏi danh sách chưa đóng tiền. lOMoARcPSD| 36991220 Hình 17: Form Tính tiền 9.2 Thanh thống kê
Thanh công cụ thống kê gồm có các chức năng thống kê: danh sách người thuê,
danh sách phòng, doanh thu, danh sách dịch vụ và danh sách loại phòng. Các
thống kê này nhóm sử dụng Microsotf Report để thực hiện báo cáo. Với danh sách
người thuê, người quản lí sẽ xem được mã phòng và tổng số khách đang thuê, và
có thể tìm kiếm theo mã khách để xem thông tin nhanh.
Hình 18: Form Thống kê người thuê
+ Khi nhập mã khách và nhấn nút tìm kiếm, thông tin của mã khách đó sẽ được
hiện lên bảng báo cáo thông tin khách lOMoARcPSD| 36991220
Hình 19: Report thông tin khách
+ Với thống kê danh sách phòng, mục đích form thống kê danh sách phòng là
cho biết số phòng trống, số phòng được thuê và bảng danh sách chi tiết các phòng.
Người quản lí có thể tìm kiếm theo mã phòng để xem thông tin nhanh chóng.
Hình 20: Form Thống kê danh sách phòng
+ Khi ta nhập mã phòng và nhấn nút tìm kiếm, thông tin của mã phòng sẽ được
hiện lên bảng báo cáo thông tin phòng. lOMoARcPSD| 36991220
Hình 21: Report thông tin phòng
+ Với thống kê doanh thu, mục đích form này cho người quản lí xem được
doanh thu của mỗi tháng (hình 21) và tổng doanh thu của nhà trọ (hình 22)
Hình 22: Form Thống kê doanh thu theo tháng
Hình 23: Form Thống kê doanh thu tổng
+ Với thống kê các loại dịch vụ, form này cho biết danh sách các loại dịch vụ
đang có của nhà trọ: gồm có mã dịch vụ, tên dịch vụ và giá cho mỗi loại. lOMoARcPSD| 36991220
Hình 24: Form Thống kê danh sách loại dịch vụ
+ Với thống kê các loại phòng, form này cho biết danh sách các loại phòng mà
nhà trọ đang phục vụ cho nhu cầu của khách hàng.
Hình 25: Form Thống kê danh sách loại phòng 9.3 Thanh thêm
Thanh công cụ thêm gồm có 2 chức năng:
+ Thêm khu vực, mục đích mở rộng khu vực cho thuê của chủ nhà trọ. Các
thông tin cần điền là mã khu vực và tên khu vực (có thể là tên quận). Lưu ý mã
khu vực không được trùng với các khu vực đã có.
Hình 26: Form Thêm khu vực
+ Thêm loại phòng, tùy vào mục đích kinh doanh mà người quản lí có thể thêm
phòng trống cho khu vực hiện có, khi thêm sẽ cập nhật vào danh sách phòng trống lOMoARcPSD| 36991220
trong khu vực đó. Người quản lí cần nhập mã phòng không được trùng với phòng
hiện có, và các thông tin liên quan. Hình 27: Form Thêm phòng 9.4 Thanh quản lí
Thanh quản lí này bao gồm các chức năng quản lí dịch vụ, quản lí loại phòng
và quản lí doanh thu. Để quản lí thì phần mềm xây dựng các chức năng cơ bản
trong đó là thêm, sửa, xóa phục vụ mục đích thay đổi giá cả, tên dịch vụ hoặc xóa khi không cần thiêt.
+ Với quản lí dịch vụ, form này sẽ hiển thị danh sách các dịch vụ đang có của
nhà trọ, khi người quản lí muốn thao tác với dịch vụ nào thì nhấn vào dòng dịch vụ đó. lOMoARcPSD| 36991220
Hình 28: Form Quản lí dịch vụ
+ Với quản lí loại phòng, cũng tương tự như quản lí dịch vụ, người quản lí có
thể cập nhật thông tin loại phòng, điều chỉnh giá,...
Hình 29: Form Quản lí loại phòng
+ Với quản lí doanh thu, form này sẽ cho người quản lí thấy doanh thu từng
tháng một cách trực quan nhất, có thể chọn từng tháng để xem doanh thu, quản lí
doanh thu tháng và doanh thu tổng.
Hình 30: Form Quản lí doanh thu 9.5 Thanh tài khoản
Thanh tài khoản giúp cho người quản lí có thể quản lí tài khoản đăng nhập của
mình: thêm tài khoản, xem thông tin tài khoản và đổi mật khẩu. lOMoARcPSD| 36991220
+ Chức năng thêm tài khoản: người dùng có thể thêm tài khoản và thực hiện
các chức năng đã đề cập bên trên một cách bình thường, tài khoản mới cần thêm
các thông tin cho việc kinh doanh của mình
Hình 31: Form Thêm tài khoản
+ Chức năng xem thông tin tài khoản: dùng để xem tình trạng kích hoạt của tài
khoản, tên chủ sở hữu tài khoản
Hình 32: Form Thông tin tài khoản
+ Chức năng đổi mật khẩu: người dùng có thể đổi mật khẩu cho tài khoản lOMoARcPSD| 36991220
Hình 33: Form Đổi mật khẩu
10. Kiến trúc phần mềm 10.1 Sơ đồ lớp
Hình 34: Sơ đồ lớp tổng quát
10.2 Giải thích các lớp -
Lớp tài khoản: lớp này bao gồm thông tin tên tài khoản và mật khẩu của
người sử dụng phần mềm. Mục đích của lớp này để lưu trữ thông tin đăng nhập, lOMoAR cPSD| 36991220
thực hiện chức năng đăng nhập vào hệ thống và có thể thêm, xóa tài khoản hoặc
đổi mật khẩu. Chức năng lưu tài khoản được lưu trong lớp ghi nhớ -
Lớp ghi nhớ: lớp này chính là lớp lưu tài khoản mật khẩu của người dùng
để phục vụ những lần đăng nhập sau này. -
Lớp khu vực: lớp này có mã và tên của các khu vực riêng biệt. Lớp này
phục vụ việc quản lí các phòng thuộc các khu vực một cách dễ dàng. Chức năng
lấy khu vực để thực hiện việc tìm kiếm nhà trọ, thêm khu vực để phù hợp cho
người quản lí có nhu cầu mở rộng khu vực. -
Lớp loại phòng: gồm mã, tên loại phòng và đi kèm mức giá, diện tích. Các
loại phòng có thể là phòng nhỏ, vừa, lớn,... Chức năng của lớp này cho phép người
sử dụng tìm kiếm phòng trọ phù hợp với nhu cầu, thêm loại phòng (nếu có), và
có thể điều chỉnh thông tin của loại phòng đó tùy vào mục đích kinh doanh. -
Lớp phòng: lớp này sẽ mang thông tin mã khu vực, mã loại phòng, tên loại
phòng, dãy và trạng thái được thuê hay đang trống. Khi người dùng chọn được
khu vực và loại phòng, một danh sách các phòng sẽ hiện ra theo thông tin tìm
kiếm đó. Mục đích của lớp này là cho phép người dùng tìm kiếm các phòng trống
để thực hiện cho thuê, phòng đã được thuê thì thực hiện tra cứu thông tin người
thuê. Chức năng lấy mã phòng để thực hiện lập phiếu thu hóa đơn. Và tất nhiên
người dùng cũng có thể điều chỉnh trạng thái phòng. -
Lớp khách: lớp này bao gồm các thông tin cơ bản của một khách thuê để
tiện trong việc quản lí người thuê phòng. Chức năng của lớp này giúp ta lấy thông
tin của người thuê khi tìm kiếm, thêm khách khi họ lập hợp đồng thuê, trả phòng
khi khách có nhu cầu rời đi và chức năng cập nhật thông tin để tránh sai sót. -
Lớp thông tin thuê phòng: có thể coi đây là một hợp đồng, nó cho biết ai
đang thuê phòng nào thông qua mã phòng và mã khách trọ, các hợp đồng có tính
riêng biệt đối với mỗi khách nhờ mã hợp đồng. Hợp đồng còn chứa thông tin ngày
thuê, tiền đặt cọc và một số ghi chú. Mục đích của lớp này giúp người quản lí
thống kê được tình hình kinh doanh cho thuê trọ, ngoài ra còn có chức năng thêm
thông tin thuê (lập hợp đồng), hay trả phòng khi người thuê rời đi. lOMoARcPSD| 36991220 -
Lớp dịch vụ: đây là lớp chứa các thông tin về dịch vụ mà nhà trọ đang
cung cấp, với mã dịch vụ, tên dịch vụ và giá đi kèm. Các dịch vụ có thể là điện,
nước, wifi, dọn rác,... Người quản lí có thể bổ sung nhờ chức năng thêm dịch vụ,
điều chỉnh giá nhờ chức năng cập nhật, hoặc xóa dịch vụ khỏi hệ thống khi không
còn cung cấp dịch vụ đó nữa. -
Lớp thông tin đăng kí thuê: lớp này chứa các thông tin bắt buộc người có
nhu cầu thuê phòng sau khi tìm kiếm phòng phù hợp phải cung cấp. Các thông tin
như họ tên, giới tính, ngày sinh, chứng minh nhân dân, ảnh thẻ, quê quán, nghề
nghiệp,... Những thông tin này được lưu trên hệ thống theo một danh sách và chờ
người quản lí trọ phê duyệt để thực hiện lập hợp đồng cho thuê.
-Lớp phiếu thu: lớp này bao gồm thông tin mã phiếu thu, mỗi phiếu thu để thu
tiền của mỗi phòng thông qua mã phòng. Người cho thuê sẽ thu tiền phòng và tiền
dịch vụ mỗi tháng. Với lớp này, người quản lí có thể thống kê được tình trạng
đóng tiền của mỗi phòng theo từng tháng. Lấy tổng doanh thu để xem doanh thu
tổng, cập nhật thông tin phiếu thu nếu cần thiết. Lấy các phòng chưa thu để nhắc
nhở đến hạn thu tiền. Trong phiếu thu có ngày thu và ngày lập phục vụ cho chức năng thống kê doanh thu. lOMoARcPSD| 36991220
CHƯƠNG 5: KẾT LUẬN 1. Kết quả đạt được
- Thực hiện đầy đủ 3 phiên bản ADO.NET, LINQ và ENTITY như yêu cầu.
- Xây dựng phần mềm theo mô hình 3 tầng.
- Thiết kế giao diện trực quan, dễ sử dụng các chức năng liên quan đến đề tài.
- Viết câu lệnh dễ hiểu, trực quan và không phức tạp.
- Vận dụng thành thạo các kiến thức của các chương trong môn Lập
trìnhWindows như kết nối cơ sở dữ liệu với 3 công nghệ khác nhau, tạo báo cáo bằng Microsoft Report.
- Hiểu sâu về hơn về lập trình giao diện, tìm hiểu được thêm các thư viện mới.
- Làm việc nhóm hiệu quả, hoàn thành đúng tiến độ công việc, qua đó họchỏi,
trau dồi kinh nghiệm khi làm bài tập nhóm, cách giao tiếp và làm việc với tinh
thần trách nhiệm nhóm cao. 11. Hạn chế
- Vì mặt hạn chế thời gian thực hiện đề tài, nhóm vẫn chưa mở rộng
đượcthêm nhiều chức năng nâng cao cho phần mềm.
- Cách tổ chức cơ sở dữ liệu còn chưa được tốt.
- Vẫn còn hạn chế về bảo mật và quyền riêng tư cho thông tin khách hàng
12. Hướng phát triển
- Xử lí các lỗi ngoài ý muốn, các lỗi khi kết nối cơ sở dữ liệu.
- Cải thiện chương trình, mở rộng chức năng.
- Nâng cao tính linh động cho chương trình.
- Bảo mật dữ liệu tốt hơn. PHỤ LỤC BẢNG
Bảng 1: Bảng đăng nhập.......................................................................................9
Bảng 2: Bảng ghi nhớ............................................................................................9
Bảng 3: Bảng dịch vụ............................................................................................9
Bảng 4: Bảng khu vực.........................................................................................10
Bảng 5: Bảng loại phòng.....................................................................................10 lOMoARcPSD| 36991220
Bảng 6: Bảng phòng............................................................................................10
Bảng 7: Bảng thông tin đăng kí phòng................................................................11
Bảng 8: Thông tin khách.....................................................................................11
Bảng 9: Thông tin thuê phòng.............................................................................12
Bảng 10: Bảng trả phòng.....................................................................................12
Bảng 11: Bảng phiếu thu.....................................................................................12 lOMoARcPSD| 36991220
PHỤ LỤC HÌNH ẢNH
Hình 1: Mô hình 3 tầng ......................................................................................... 3
Hình 2: Kiến trúc ADO.NET ................................................................................ 5
Hình 3: Kiến trúc Entity framework ..................................................................... 6
Hình 4: Sơ đồ cơ sở dữ liệu .................................................................................. 9
Hình 5: Form MyApp ......................................................................................... 12
Hình 6: Form Thông tin thuê .............................................................................. 12
Hình 7: Form Login ............................................................................................ 13
Hình 8: Form Admin ........................................................................................... 14
Hình 9: Form Trạng thái (hiển thị chọn danh sách phòng đã được thuê) ........... 15
Hình 10: Form Thông tin khách hàng ................................................................. 15
Hình 11: Form Trạng thái (hiển thị chọn danh sách phòng trống) ..................... 16
Hình 12: Form Danh sách thu tiền ...................................................................... 16
Hình 13: Form Cho thuê (hiển thị danh sách đăng kí phòng) ............................ 17
Hình 14: Form Cho thuê (hiển thị nơi nhập thông tin đăng ký) ......................... 17
Hình 15: Form Thêm người ................................................................................ 18
Hình 16: Form Trả phòng ................................................................................... 18
Hình 17: Form Tính tiền ..................................................................................... 19
Hình 18: Form Thống kê người thuê .................................................................. 19
Hình 19: Report thông tin khách ......................................................................... 20
Hình 20: Form Thống kê danh sách phòng ......................................................... 20
Hình 21: Report thông tin phòng ........................................................................ 21
Hình 22: Form Thống kê doanh thu theo tháng .................................................. 21
Hình 23: Form Thống kê doanh thu tổng ........................................................... 21
Hình 24: Form Thống kê danh sách loại dịch vụ ................................................ 22
Hình 25: Form Thống kê danh sách loại phòng.................................................. 22
Hình 26: Form Thêm khu vực ............................................................................ 22
Hình 27: Form Thêm phòng ............................................................................... 23
Hình 28: Form Quản lí dịch vụ ........................................................................... 24 lOMoARcPSD| 36991220
Hình 29: Form Quản lí loại phòng ...................................................................... 24
Hình 30: Form Quản lí doanh thu ....................................................................... 24
Hình 31: Form Thêm tài khoản ........................................................................... 25
Hình 32: Form Thông tin tài khoản .................................................................... 25
Hình 33: Form Đổi mật khẩu .............................................................................. 26
Hình 34: Sơ đồ lớp tổng quát .............................................................................. 26 lOMoARcPSD| 36991220
PHỤ LỤC – BẢNG PHÂN CÔNG NHIỆM VỤ TRONG NHÓM Mức độ hoàn thành Người thực hiện
Nội dung thực hiện (Tốt / Khá / Kém) PHẦN ENTITY
Làm chức năng của các form: Lê Quang Lâm ThemNguoi, TraPhong, QLDichVu, QLLoaiPhong, Làm chức năng các form: Guest, Infomation, Login, Tốt Phạm Bá Thành MyApp, TKNguoiThue, ChangePass, ThemKhuVuc, ThemTaiKhoan, TrangThai
Làm chức năng của các form: Trương Hoàng Quang TinhTien, DoanhThu, Dsthutien PHẦN LINQ Sửa tầng nghiệp vụ: Lê Quang Lâm BLTTDKiPhong, BLTTKhach, BLTTThuePhong Sửa tầng nghiệp vụ: Phạm Bá Thành BLLoaiPhong, BLPhieuThu, Tốt BLPhong Sửa tầng nghiệp vụ: Trương Hoàng Quang BLDangNhap, BLDichVu, BLKhuVuc PHẦN ADO.NET Sửa tầng nghiệp vụ: Lê Quang Lâm BLTTDKiPhong, BLTTKhach, BLTTThuePhong Sửa tầng nghiệp vụ: Phạm Bá Thành BLLoaiPhong, BLPhieuThu, Tốt BLPhong lOMoARcPSD| 36991220 Sửa tầng nghiệp vụ: Trương Hoàng Quang BLDangNhap, BLDichVu, BLKhuVuc PHẦN GIAO DIỆN Phạm Bá Thành
Form Admin, Guest, Information, Tốt MyApp, TrangThai, TinhTien, TraPhong, ChoThue, DSThuTien, DoanhThu, ThemNguoi AccountInformation, Login, TKNguoiThue, Changepass, Lê Quang Lâm QLDichVu, QLLoaiPhong, ThemKV, ThemPhong, ThemTK Các form report: DichVu, Trương Hoàng Quang DoanhThuThang, DSPhong, LoaiPhong CÔNG VIỆC KHÁC
Làm chức năng các report: ReportDichVu, Phạm Bá Thành, ReportDoanhThuThang, Trương Hoàng Quang ReportDSPhong, ReportPhong, ReportLoaiPhong, ReportKhach, Tốt ReportTTKhach Lê Quang Lâm Làm báo cáo Word Phạm Bá Thành Sửa chữa chương trình lOMoARcPSD| 36991220
TÀI LIỆU THAM KHẢO
1. Tài liệu, Slide, thầy Lê Văn Vinh.
2. Dương Quang Thiện, .NET Toàn Tập, nxb Tổng hợp, TP.HCM, 2005
3. Chris Sells, Windows Forms Programming in C#, nxb Addison Wesley, 2003.
4. Lê Ngọc Sơn, Tìm Hiểu Về Mô Hình 3 Lớp (3 Layer), truy cập (1/6/2023):
https://viblo.asia/p/tim-hieu-ve-mo-hinh-3-lop-3-layer-Qbq5Qmyz5D8