Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.15 MB, 40 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">DANH SÁCH SINH VIÊN THAM GIA THỰC HỆN
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI...1
CHƯƠNG 3: PHÂN TÍCH CHƯƠNG TRÌNH...7
1. Mơ tả u cầu...7
2. Phân tích nhu cầu và dữ liệu...7
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
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">PHỤ LỤC – BẢNG PHÂN CƠNG NHIỆM VỤ TRONG NHĨM...33
TÀI LIỆU THAM KHẢO...34
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">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 tốn và theo dõi tình hình th 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 th, về loại phịng th, khu vực th, tình trạng phịng th và các dịch vụ đi kèm phịng th đó. 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ọ
1
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">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í th 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 th 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
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">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 tồn vẹn và an toàn của dữ liệu.
3
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">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.
Hình 2: Kiến trúc ADO.NET 4
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">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à tố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 qt 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.
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
5
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">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
6
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">CHƯƠNG 3: PHÂN TÍCH CHƯƠNG TRÌNH 1. Mơ tả 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í th 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í th ở. 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í th phịng, khách th 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 th. Đồng thời, lập hóa đơn thanh tốn cho khách dựa trên thơng tin người th, 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
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">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 th 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 th, 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
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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ệu Sau đây là chi tiết từng bảng:
Bảng 3: Bảng dịch vụ
9
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Bả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
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">GioiTinh nvarchar(50), null
Bảng 8: Thông tin khách
MaKhachTro PK, FK, nvarchar(10), not null
Bảng 9: Thơng tin th phịng
Bảng 10: Bảng trả phòng
Bảng 11: Bảng phiếu thu
11
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">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 th đ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 th.
12
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">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 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
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 tồn bộ chức năng có trong chương trình. Thành phần của nó gồm:
13
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">- Thanh cơng cụ gồm có: thanh chức năng, thống kê, thêm, quản lí và tài khoả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 đã th.
- Chính giữa màn hình chính là khu vực để hiển thị các form chức năng được gọ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.
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 th, 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.
14
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">Đố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 th 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 th 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 th. 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
15
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="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á th 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á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ư
16
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">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ê.
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 th 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
17
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">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 hồ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.
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
18
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">+ 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 tố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.
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 th, và có thể tìm kiếm theo mã khách để xem thông tin nhanh.
19
</div>