Baocaodoancuoiki - do an cuoi ki
Thương Mại Điện Tử (Trường Đại học Kinh tế - Tài chính Thành phố Hồ Chí Minh)
BỘ GIÁO DỤC ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KINH TẾ - TÀI CHÍNH TP. HỒ CHÍ MINH
ĐỒ ÁN SỞ LẬP TRÌNH
XÂY DỰNG ỨNG DỤNG QUẢN CĂN HỘ MINI
Phan Thị Bảo Ngọc 215120345
Trương Đoàn Minh Thư 215042163
Phan Duy Thịnh 215122057
Nguyễn Hoàng Liêm - 215051029
MỤC LỤC
I.
do chọn đề tài ........................................................................................................ 1
II.
Mục đích và ý nghĩa đề tài ......................................................................................... 2
1.
Mục đích: .............................................................................................................. 2
2.
Ý nghĩa: ................................................................................................................. 2
III.
Đặt vấn đề ................................................................................................................. 2
IV.
Phân tích yêu cầu bài toán ...................................................................................... 2
V.
Thiết kế sở dữ liệu ................................................................................................. 3
1.
Bảng NhanVien ..................................................................................................... 3
2.
Bảng Lau ............................................................................................................... 3
3.
Bảng CanHo .......................................................................................................... 3
4.
Bảng NguoiThue ................................................................................................... 4
5.
Bảng Lau ............................................................................................................... 4
6.
Bảng CanHo .......................................................................................................... 4
7.
Bảng NguoiThue ................................................................................................... 5
8.
Bảng LoaiHoaDon ................................................................................................ 5
9.
Bảng HoaDon ........................................................................................................ 5
VI.
Xây dựng ứng dụng.................................................................................................. 6
1.
Lựa chọn ngôn ngữ lập trình ............................................................................... 6
2.
Lựa chọn sở dữ liệu ......................................................................................... 6
3.
Giới thiệu DevExpress .......................................................................................... 7
4.
hình 3 lớp ........................................................................................................ 8
a.
Giới thiệu ........................................................................................................... 8
b.
Lớp Data Access Object (DAO) ....................................................................... 8
c.
Lớp Business (BUS) ......................................................................................... 10
e. Lớp giao diện (GUI) ........................................................................................ 11
5.
Xây dựng chức năng ........................................................................................... 12
a.
Chức năng đăng nhập ..................................................................................... 12
b.
Giao diện chính ................................................................................................ 12
d.
Quản Lầu ..................................................................................................... 15
e.
Quản căn hộ ................................................................................................. 16
f.
Quản khách thuê ......................................................................................... 17
g.
Quản dịch vụ ............................................................................................... 18
h.
Quản hóa đơn .............................................................................................. 19
KẾT LUẬN ....................................................................................................................... 20
I.
NHỮNG VẤN ĐỀ ĐẠT ĐƯỢC .............................................................................. 20
II.
NHỮNG VẤN ĐỀ CHƯA ĐẠT ĐƯỢC ................................................................ 20
III.
HƯỚNG PHÁT TRIỂN ........................................................................................ 20
BẢNG BÁO CÁO MỨC ĐỘ PHÂN CÔNG CÔNG VIC .......................................... 21
I.
do chọn đề tài
Ngày nay trong thời đại công nghệ thông tin phát triển một cách bão, thì việc quản
xử tốt các thông tin mang một ý nghĩa rất quan trọng. Những người hoặc nhóm
người nắm được, hiểu biết cách sử dụng thông tin tsẽ những thành công nhất
định.
Trong đó việc ứng dụng tin học vào trong cuộc sống điều cấp thiết của mỗi người.
Với việc công nghệ thông tin ngày ng phát triển một cách mạnh mẽ hàng ngày hàng giờ,
sẽ tác dụng không nhỏ giúp con người dễ dàng hơn trong cuộc sống. Như công việc
được xử nhanh chóng, hiệu quả, chính xác,… Do đó cùng với sphát triển của công
nghệ thông tin thì thay việc sử dụng sổ ch, giấy ghi chép để lưu trữ thông tin, mọi
người đã dần chuyển hướng sang việc sử dụng công nghệ để lưu trữ.
Tronghội thực tế, các khu căn hộ mong muốn thể quản lý, thống kê doanh thu,
tra cứu, xử yêu cầu, kết nối với các dân cư một cách nhanh chóng. Với những nhu cầu
ấy thì phần mềm quản lý, lưu trữ thông tin chung rất cần thiết đã được xây dựng. Nhưng
để làm được các phần mềm này thì điều quan trọng nhất phân tích hệ thống làm việc,
qua đó có thể thiết kế một phần mềm hoàn chỉnh có tác dụng cao nhất có thể.
Do vậy nhóm em xin trình bày đồ án “Xây dựng ứng dụng quản căn hộ mini”.
Do quy thời gian thực hiện đồ án hạn nên sẽ nhiều trục trặc khuyết
điểm chưa được hoàn thiện. Nếu điều kiên thời gian chúng em sẽ bổ sung nâng cấp
giúp đồ án phát triển hoàn thiện hơn thể ứng dụng đạt hiểu quả cao trong việc xây dựng
Ứng dụng quản lý căn hộ mini.
Chúng em xin gửi lời cảm ơn đặc biệt đến thầy Nguyễn Giang với vai trò
giảng viên hướng dẫn, đã tận tâm chỉ bảo cho chúng em qua từng buổi học trên lớp cũng
như trả lời mọi thắc mắc khi chúng em cần. Nếu không sự giúp đỡ của thầy, bài thu
hoạch này của chúng em sẽ khó hoàn thiện được. Một lần nữa chúng em xin chân thành
cảm ơn thầy.
1
II.
Mục đích và ý nghĩa đề tài:
1.
Mục đích:
Hệ thống phần mềm giúp cả dân lẫn ban quản lý tòa nhà thể dễ dàng tra cứu
thông tin, quản người dùng, xử yêu cầu của dân kết nối với dân nhanh chóng
tiện dụng mọi lúc, mọi nơi chỉ thông qua điện thoại thông minh.
2.
Ý nghĩa:
"Thời gian ng bạc" - Chương trình được tạo ra theo tiêu chí đã nêu, một chương
trình giúp người dùng dễ dàng quản mọi thứ một cách nhanh chóng, thuận tiện hơn trong
công việc quản lý
III.
Đặt vấn đề
Hiện nay cùng với sự phát triển của xã hội, nhu cầu về nhà ở đang ngày một trở nên quan
trọng hơn. Qua thời gian, dân số ngày một càng đông nhưng quỹ đất để xây dựng nhà ở
lại hạn,vậy bên cạnh những ngôi nhà riêng đã từ xưa thì những tòa nhà cao tầng,
tòa nhà chung đang hiện diện nhiều hơn đặc biệt tại các thành phố lớn như TP. Hồ Chí
Minh, thủ đô Hà Nội,… Nơi mà mật độ dân số cao mà diện tích đất ở lại ít.
Để quản các tòa nhà này, ban đầu người ta dựa vào hoàn toàn giấy tờ sổ sách. Cách
quản này phù hợp với những tòa nhà số lượng phòng người thuê ít. Nhưng khi
phát triển lên thì cách quản này gặp nhiều bất cập như vấn đề tìm kiếm dữ liệu, thông
tin mất nhiều thời gian, lưu trên giấy tờ thể xảy ra mất mát tốn nhiều không gian để
lưu trữ, Vấn để đặt ra cần phương pháp, công cụ quản hiện đại hơn, hiệu quả
hơn phương pháp truyển thống này. Hiện nay, với sự phát triển của ngành Công Nghệ
Thông Tin, những vấn đề trên có thể được giải quyết một cách dễ dàng.
IV.
Phân tích yêu cầu bài toán
Bài toán đặt ra được dựa trên một tòa nhà với các yêu cầu như trong tả đề tài. Từ
tả, chúng ta thể thấy đối với yêu cầu này sẽ cần xây dựng các chức năng như quản
căn hộ trong tòa nhà, quản khách thuê, quản nhân viên, hóa đơn dịch vụ tạo báo
o.
2
V.
Thiết kế sở dữ liệu
1.
Bảng NhanVien
Bảng NhanVien sẽ nơi u trữ thông tin của nhân viên. Bảng này bao gồm
NhanVien(Manv, hoten, loainv, matkhau).
Trong đó:
-
Manv: Đây nhân viên, khóa chính của bảng kiểu dữ liệu nchar(10).
Manv còn tên đăng nhập của nhân viên.
-
hoten: Họ tên nhân viên, kiểu dữ liệu nvarchar(50).
-
loainv: Trường này để phân biệt quyền hạn của nhân viên, có 2 quyền là admin
và user. Có kiểu dữ liệu là bit, quyền admin sẽ là true, nhân viên là false.
-
Matkhau: Mật khẩu đăng nhập của nhân viên. Dữ liệu trong cột này sẽ được
hóa MD5 để đảm bảo tính bảo mật.
2.
Bảng Lau
Bảng Lau chứa thông tin các lầu trong tòa nhà. Lầu được cho thành một bảng riêng
để dễ dàng thêm lầu mới vào khi sau này tòa nhà thêm sự mở rộng.
Cấu trúc bảng: Lau(id, tenlau, mota).
-
Id: Đây của từng lầu, kiểu inttự động tăng.
-
Tenlau: Tên hiển thị của lầu trên ứng dụng, kiểu nvarchar(50).
-
mota: Mô tả của từng lầu, có kiểu nvarchar(MAX). Trường này có thể bỏ trống
nếu như không có mô tả gì.
3.
Bảng CanHo
Bảng CanHo chứa các thông tin của một căn hộ, dụ như căn hộ, diện tích, giá
thuê, mô tả.
Cấu trúc bảng: CanHo(mach, dientich, tang, gia, mota).
-
Mach: n hộ, kiểu dữ liệu nchar(10), đây khóa chính của bảng.
-
Dientich: Diện tích căn hộ, kiểu dữ liệu float.
-
Gia: Giá cho thuê của căn hộ, kiểu dữ liệu int.
-
Mota: tả căn hộ, kiểu dữ liệu nvarchar(MAX).
3
4.
Bảng NguoiThue
Thông tin về người thuê căn hộ sẽ được lưu trong bảng này.
Cấu trúc bảng: NguoiThue(mant, hoten, cccd, sdt, mach).
-
Mant: người thuê, đây cũng khóa chính của bảng. kiểu dữ liệu nchar(10).
-
Hoten: Họ tên người thuê, kiểu dữ liệu nvarchar(50).
-
Cccd: Số căn cước công dân hoặc chứng minh nhân dân của người thuê, kiểu
dữ liệu nchar(12). Trường này có thể bỏ trống.
-
Sdt: Số điện thoại của người thuê, có kiểu dữ liệu nchar(11). Trường này có thể
bỏ trống.
-
Mach: n hộ người thuê đã thuê. Đây khóa ngoại sẽ liên kết đến bảng
CanHo. Mach có kiểu dữ liệu là nchar(10).
5.
Bảng Lau
Bảng Lau chứa thông tin các lầu trong tòa nhà. Lầu được cho thành một bảng riêng
để dễ dàng thêm lầu mới vào khi sau này tòa nhà thêm sự mở rộng.
Cấu trúc bảng: Lau(id, tenlau, mota).
-
Id: Đây của từng lầu, kiểu inttự động tăng.
-
Tenlau: Tên hiển thị của lầu trên ứng dụng, kiểu nvarchar(50).
-
mota: Mô tả của từng lầu, có kiểu nvarchar(MAX). Trường này có thể bỏ trống
nếu như không có mô tả gì.
6.
Bảng CanHo
Bảng CanHo chứa các thông tin của một căn hộ, dụ như căn hộ, diện tích, giá
thuê, mô tả.
Cấu trúc bảng: CanHo(mach, dientich, tang, gia, mota).
-
Mach: n hộ, kiểu dữ liệu nchar(10), đây khóa chính của bảng.
-
Dientich: Diện tích căn hộ, kiểu dữ liệu float.
-
Gia: Giá cho thuê của căn hộ, kiểu dữ liệu int.
-
Mota: tả căn hộ, kiểu dữ liệu nvarchar(MAX).
4
7.
Bảng NguoiThue
Thông tin về người thuê căn hộ sẽ được lưu trong bảng này.
Cấu trúc bảng: NguoiThue(mant, hoten, cccd, sdt, mach).
-
Mant: người thuê, đây cũng khóa chính của bảng. kiểu dữ liệu nchar(10).
-
Hoten: Họ tên người thuê, kiểu dữ liệu nvarchar(50).
-
Cccd: Số căn cước công dân hoặc chứng minh nhân dân của người thuê, kiểu
dữ liệu nchar(12). Trường này có thể bỏ trống.
-
Sdt: Số điện thoại của người thuê, có kiểu dữ liệu nchar(11). Trường này có thể
bỏ trống.
-
Mach: n hộ người thuê đã thuê. Đây khóa ngoại sẽ liên kết đến bảng
CanHo. Mach có kiểu dữ liệu là nchar(10).
8.
Bảng LoaiHoaDon
Bảng này chứa thông tin về các loại hóa đơn người thuê sẽ phải đóngdụ như hóa
đơn tiền điện, nước, wifi,…
Cấu trúc của bảng: LoaiHoaDon(maloai, tenloai, dongia).
-
Maloai: Đây là khóa chính của bảng, có kiểu dữ liệu int, được thiết lập tự động
tăng.
-
Tenloai: Tên của loại hóa đơn, kiểu dữ liệu nvarchar(50).
-
Dongia: Đơn giá của loại hóa đơn, kiểu dữ liệu int.
9.
Bảng HoaDon
Bảng HoaDon chứa các thông tin về hóa đơn người thuê đã trả.
Cấu trúc của bảng: HoaDon(mahd, mach, loaihd, thang, soluong, dongia).
-
Mahd: Mã hóa đơn, đây cũng khoá chính của bảng. kiểu dữ liệu
nchar(10).
-
Mach: căn hộ đóng tiền, đây khóa ngoại liên kết đến bảng KhachThue.
kiểu dữ liệu nchar(10).
-
Loaihd: Kiểu dữ liệu int. Loaihd khóa ngoại liên kết đến bảng LoaiHoaDon,
chứa thông tin về loại hóa đơn.
5
-
Thang: Tháng đóng tiền, kiểu dữ liệu date.
-
Soluong: Kiểu dữ liệu int, chứa thông tin số ợng phải đóng của hóa đơn.
-
Dongia: kiểu dữ liệu int, chứa thông tin về đơn giá của loại hóa đơn.
VI.
Xây dựng ứng dụng
1.
Lựa chọn ngôn ngữ lập trình
Hiện nay rất nhiều ngôn ngữ lập trình như PHP, Java, JavaScript, Python, C#, VB.Net,
… Mỗi ngôn ngữ đều có những ưu nhược điểm riêng của nó. Nhưng tựu chung lại các
ngôn ngữ trên đều ớng đến 3 ớng: ứng dụng Desktop, ứng dụng Web, ng dụng
Mobile.
Với mục đích xây dựng phần mềm quản tòa nhà, không thể đơn thuần xây dựng ứng
dụng mobile được sẽ cần sử dụng đến ứng dụng trên máy vi tính. Đối với ứng dụng web
cần đòi hỏi sự lưỡng kiểm soát chặt chẽ dữ liệu để tránh rỉ dữ liệu. vậy, việc
xây dựng ứng dụng quản một ứng dụng Desktop điều phù hợp nhất các ưu
điểm như:
-
Tốc độ xử dữ liệu nhanh chóng.
-
Đảm bảo an toàn, bảo mật thông tin.
-
thể chạy trên các phiên bản Windows khác nhau.
-
Thao tác trên nhiều giao diện.
Ứng dụng Desktop nhiều ngôn ngữ như VB.Net, C#,Chúng ta không thể xây dựng
một ứng dụng mới vào thời điểm hiện tại dựa trên ngôn ngữ VB.Net già nua được. vậy,
C# là ứng cử viên số 1 cho việc xây dựng ứng dụng này.
2.
Lựa chọn sở dữ liệu
Hiện nay 2 nhóm sở dữ liệu SQL và noSQL. noSQL thường được sử dụng đối với
các ứng dụng lớncó hỗ trợ phân tán. Nhưng để sử dụng noSQL cho việc xây dựng một
ứng dụng đầy ràng buộc thì noSQL không phù hợp để sử dụng.
Vậy nên, sở dữ liệu SQL sẽ phù hợp hơn noSQL đối với ứng dụng này. SQL Server
sẽ hệ quản trị sở dữ liệu được sử dụng. Còn điềutuyệt vời hơn khi sử dụng combo
do Microsoft phát triển để xây dựng ứng dụng chạy trên Windows nữa.
6
3.
Giới thiệu DevExpress
Khi xây dựng c ứng dụng Windows Form (WinForm), trong bộ công cụ của Visual
Studio đã sẵn các thành phần hỗ trợ xây dựng giao diện. Nhưng các thành phần mặc
định này giao diện không được bắt mắt, để tinh chỉnh lại thì mất rất nhiều thời gian và
công sức. Vì vậy DevExpress được sinh ra để giải quyết vấn đề này.
DevExpress được ra mắt lần đầu tiên vào năm 2011 được đông đảo lập trình viên .NET
sử dụng. DevExpress cung cấp sẵn các giao diện hiện đại được ưa chuộng nhất hiện nay.
Hình 1: Biểu tượng của DevExpress.
Sau khi cài đặt xong, khi m Visual Studio chúng ta thể thấy các thành phần của
DevExpress đã được thêm vào.
Hình 2: DevExpress sau khi được cài đặt
7
4.
hình 3 lớp
a.
Giới thiệu
hình 3 lớp một kiến trúc kiểu client/server trong đó giao diện người dùng (UI-
user interface), các quy tắc xử (BR-business rule hay BL-business logic), và việc u trữ
dữ liệu được phát triển như những module độc lập,hầu hết được duy trì trên các nền
tảng độc lập, hình 3 tầng (3-tiers) được coi một kiến trúc phần mềm một
mẫu thiết kế.
Đây kiến trúc triển khai ứng dụng mức vật lý. Kiến trúc gồm 3 module chính và riêng
biệt :
-
Tầng Presentation: hiển thị các thành phần giao diện để tương tác với người dùng
như tiếp nhận thông tin, thông báo lỗi, …
-
Tầng Business Logic: thực hiện các hành động nghiệp vụ của phần mềm n
tính toán, đánh giá tính hợp lệ của thông tin, Tầng này còn di chuyển, xử
thông tin giữa 2 tầng trên dưới.
-
Tầng Data: nơi lưu trữtrích xuất dữ liệu từ các hệ quản trị CSDL hay các file
trong hệ thống. Cho phép tầng Business logic thực hiện các truy vấn dữ liệu .
b.
Lớp Data Access Object (DAO)
Lớp này chức năng giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên
quan đến lưu trữ và truy vấn dữ liệu ( tìm kiếm, thêm, xóa, sửa,…).
Trong ứng dụng này, lớp DAO sẽ có một lớp kết nối sở dữ liệu. Trong lớp này sẽ chứa
phần code xử lý để thực hiện truy vấn dữ liệu.
8
Hình 3: Lớp KetNoiCSDL trong DAO.
Trong lớp KetNoiCSDL sẽ chứa chuỗi kết nối đến sở dữ liệu, hàm mở đóng kết nối,
hàm Execute() để thực hiện các câu lệnh không cần kết quả trả về như INSERT, UPDATE,
DELETE,… m LoadData() hàm sẽ thực hiện câu lệnh SELECT với kết quả trả về
được gắn vào DataTable.
Hình 4: Hàm Execute().
Hình 5: Hàm LoadData().
9
c.
Lớp Business (BUS)
Layer này phân ra 2 thành nhiệm vụ :
-
Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý
chính nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer
lưu xuống hệ quản trị CSDL.
-
Đây còn nơi kiểm tra các ràng buộc, tính toàn vẹnhợp lệ dữ liệu,
thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về Presentation
Layer. Mỗi bảng trong cơ sở dữ liệu sẽ có một lớp BUS riêng để thực hiện các thao tác
với bảng đó.
Hình 6: Các lớp BUS được xây dựng.
10
d.
Data Transfer Objects (DTO)
DTO được sử dụng để truyền dữ liệu giữa các lớp. Chúng thường cấu trúc dữ liệu (
DataSets, XML,… ) hay các lớp đối tượng đã được tùy chỉnh.
Mỗi table trong sở dữ liệu sẽ một DTO tương ứng để truyền dữ liệu qua lại giữa các
lớp.
Hình 7: Các lớp DTO được xây dựng.
e.
Lớp giao diện (GUI)
Lớp giao diện nơi sẽ giao tiếp trực tiếp với người dùng, trực tiếp nhận về các lệnh
người dùng muốn thực hiện. Lớp giao diện này chính là các Form được xây dựng để thực
hiện một chức năng nào đó.
11
Hình 8: Giao diện chính của chương trình.
5.
Xây dựng chức năng
a.
Chức năng đăng nhập
Chức năng đăng nhập sẽ được hiển thị đầu tiên khi ứng dụng được chạy. Người dùng sẽ
phải nhập tên đăng nhập mật khẩu để tiến hành đăng nhập. Nếu thông tin đăng nhập
đúng, ứng dụng sẽ hiển thị giao diện chính.
Hình 9: Màn hình đăng nhập.
b.
Giao diện chính
Giao diện chính sẽ được hiển thị sau khi người dùng đăng nhập thành công. Khi giao diện
đang được load sẽ kiểm tra quyền của user đăng nhập vào, nếu Admin thì hiển thị đầy
đủ chức năng. Nếu là User thì sẽ chỉ hiện các chức năng quản lý khách thuê, tạo hóa đơn.
Form này cũng sẽ Form mdiParent để khi gọi các chức năng con thì chúng sẽ được hiển
thị bên trong Form này.
12
Hình 10: Giao diện màn hình chính khi đăng nhập bằng quyền Admin User.
13
Hình 11: Giao diện chính khi mở các chức năng con.
c.
Quản nhân viên
Form quản nhân viên sẽ chứa màn hình để người quản thể thao tác, thực hiện việc
quản lý nhân viên như thêm, sửa, xóa,…
Màn hình chia làm 3 phần chính:
-
Thanh Ribbon bar: chứa các nút Thêm, Sửa, a.
-
Phần nhập liệu: chứa các textbox để nhập dữ liệu.
-
Phần danh sách: chứa bảng dữ liệu danh sách các nhân viên.
14
Hình 12: Giao diện chức năng quản nhân viên.
Hình 13: Khi người dùng nhập dữ liệu nhân viên mới.
d.
Quản Lầu
Chức năng này được dùng để quản lý các lầu có trong tòa nhà. Chức năng được xây dựng
trên Ribbon Form của DevExpress. Về các thao tác gồm: Thêm, Sửa, Xóa.
Màn hình của Form cũng được chia làm 3 phần chính như chức năng Quản Nhân Viên.
15
Hình 14: Giao diện chính của chức năng.
Hình 15: Dữ liệu được load từ dòng dữ liệu n TextBox.
e.
Quản căn hộ
Dữ liệu về các căn hộ có trong tòa nhà sẽ được quản lý tại Form này. Mã của căn hộ sẽ
được tự động tính, người quản chỉ cần nhập các thông tin còn lại của căn hộ bấm u.
16

Preview text:


Baocaodoancuoiki - do an cuoi ki
Thương Mại Điện Tử (Trường Đại học Kinh tế - Tài chính Thành phố Hồ Chí Minh)
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KINH TẾ - TÀI CHÍNH TP. HỒ CHÍ MINH
ĐỒ ÁN CƠ SỞ LẬP TRÌNH
XÂY DỰNG ỨNG DỤNG QUẢN LÝ CĂN HỘ MINI
Phan Thị Bảo Ngọc – 215120345
Trương Đoàn Minh Thư – 215042163
Phan Duy Thịnh – 215122057
Nguyễn Hoàng Liêm - 215051029 MỤC LỤC I.
Lý do chọn đề tài ........................................................................................................ 1
II. Mục đích và ý nghĩa đề tài ......................................................................................... 2 1.
Mục đích: .............................................................................................................. 2 2.
Ý nghĩa: ................................................................................................................. 2
III. Đặt vấn đề ................................................................................................................. 2 IV.
Phân tích yêu cầu bài toán ...................................................................................... 2
V. Thiết kế cơ sở dữ liệu ................................................................................................. 3 1.
Bảng NhanVien ..................................................................................................... 3 2.
Bảng Lau ............................................................................................................... 3 3.
Bảng CanHo .......................................................................................................... 3 4.
Bảng NguoiThue ................................................................................................... 4 5.
Bảng Lau ............................................................................................................... 4 6.
Bảng CanHo .......................................................................................................... 4 7.
Bảng NguoiThue ................................................................................................... 5 8.
Bảng LoaiHoaDon ................................................................................................ 5 9.
Bảng HoaDon ........................................................................................................ 5 VI.
Xây dựng ứng dụng.................................................................................................. 6 1.
Lựa chọn ngôn ngữ lập trình ............................................................................... 6 2.
Lựa chọn cơ sở dữ liệu ......................................................................................... 6 3.
Giới thiệu DevExpress .......................................................................................... 7 4.
Mô hình 3 lớp ........................................................................................................ 8 a.
Giới thiệu ........................................................................................................... 8 b.
Lớp Data Access Object (DAO) ....................................................................... 8 c.
Lớp Business (BUS) ......................................................................................... 10 e.
Lớp giao diện (GUI) ........................................................................................ 11 5.
Xây dựng chức năng ........................................................................................... 12 a.
Chức năng đăng nhập ..................................................................................... 12 b.
Giao diện chính ................................................................................................ 12 d.
Quản lý Lầu ..................................................................................................... 15 e.
Quản lý căn hộ ................................................................................................. 16 f.
Quản lý khách thuê ......................................................................................... 17 g.
Quản lý dịch vụ ............................................................................................... 18 h.
Quản lý hóa đơn .............................................................................................. 19
KẾT LUẬN ....................................................................................................................... 20
I. NHỮNG VẤN ĐỀ ĐẠT ĐƯỢC .............................................................................. 20
II. NHỮNG VẤN ĐỀ CHƯA ĐẠT ĐƯỢC ................................................................ 20
III. HƯỚNG PHÁT TRIỂN ........................................................................................ 20
BẢNG BÁO CÁO MỨC ĐỘ PHÂN CÔNG CÔNG VIỆC .......................................... 21 I.
Lý do chọn đề tài
Ngày nay trong thời đại công nghệ thông tin phát triển một cách vũ bão, thì việc quản
lý và xử lý tốt các thông tin mang một ý nghĩa rất quan trọng. Những người hoặc nhóm
người nắm được, hiểu rõ và biết cách sử dụng thông tin thì sẽ có những thành công nhất định.
Trong đó việc ứng dụng tin học vào trong cuộc sống là điều cấp thiết của mỗi người.
Với việc công nghệ thông tin ngày càng phát triển một cách mạnh mẽ hàng ngày hàng giờ,
nó sẽ có tác dụng không nhỏ giúp con người dễ dàng hơn trong cuộc sống. Như công việc
được xử lý nhanh chóng, hiệu quả, chính xác,… Do đó cùng với sự phát triển của công
nghệ thông tin thì thay vì việc sử dụng sổ sách, giấy ghi chép để lưu trữ thông tin, mọi
người đã dần chuyển hướng sang việc sử dụng công nghệ để lưu trữ.
Trong xã hội thực tế, các khu căn hộ mong muốn có thể quản lý, thống kê doanh thu,
tra cứu, xử lý yêu cầu, kết nối với các dân cư một cách nhanh chóng. Với những nhu cầu
ấy thì phần mềm quản lý, lưu trữ thông tin chung cư rất cần thiết đã được xây dựng. Nhưng
để làm được các phần mềm này thì điều quan trọng nhất là phân tích rõ hệ thống làm việc,
qua đó có thể thiết kế một phần mềm hoàn chỉnh có tác dụng cao nhất có thể.
Do vậy nhóm em xin trình bày đồ án “Xây dựng ứng dụng quản lý căn hộ mini”.
Do quy mô và thời gian thực hiện đồ án có hạn nên sẽ có nhiều trục trặc và khuyết
điểm chưa được hoàn thiện. Nếu có điều kiên và thời gian chúng em sẽ bổ sung nâng cấp
giúp đồ án phát triển hoàn thiện hơn có thể ứng dụng đạt hiểu quả cao trong việc xây dựng
Ứng dụng quản lý căn hộ mini.
Chúng em xin gửi lời cảm ơn đặc biệt đến thầy Nguyễn Hà Giang – với vai trò là
giảng viên hướng dẫn, đã tận tâm chỉ bảo cho chúng em qua từng buổi học trên lớp cũng
như trả lời mọi thắc mắc khi chúng em cần. Nếu không có sự giúp đỡ của thầy, bài thu
hoạch này của chúng em sẽ khó mà hoàn thiện được. Một lần nữa chúng em xin chân thành cảm ơn thầy. 1 II.
Mục đích và ý nghĩa đề tài: 1. Mục đích:
Hệ thống phần mềm giúp cả cư dân lẫn ban quản lý tòa nhà có thể dễ dàng tra cứu
thông tin, quản lý người dùng, xử lý yêu cầu của cư dân và kết nối với cư dân nhanh chóng
tiện dụng mọi lúc, mọi nơi chỉ thông qua điện thoại thông minh. 2. Ý nghĩa:
"Thời gian là vàng bạc" - Chương trình được tạo ra theo tiêu chí đã nêu, một chương
trình giúp người dùng dễ dàng quản lý mọi thứ một cách nhanh chóng, thuận tiện hơn trong công việc quản lý III. Đặt vấn đề
Hiện nay cùng với sự phát triển của xã hội, nhu cầu về nhà ở đang ngày một trở nên quan
trọng hơn. Qua thời gian, dân số ngày một càng đông nhưng quỹ đất để xây dựng nhà ở
lại có hạn, vì vậy bên cạnh những ngôi nhà riêng đã có từ xưa thì những tòa nhà cao tầng,
tòa nhà chung cư đang hiện diện nhiều hơn đặc biệt tại các thành phố lớn như TP. Hồ Chí
Minh, thủ đô Hà Nội,… Nơi mà mật độ dân số cao mà diện tích đất ở lại ít.
Để quản lý các tòa nhà này, ban đầu người ta dựa vào hoàn toàn giấy tờ sổ sách. Cách
quản lý này phù hợp với những tòa nhà có số lượng phòng và người thuê ít. Nhưng khi
phát triển lên thì cách quản lý này gặp nhiều bất cập như vấn đề tìm kiếm dữ liệu, thông
tin mất nhiều thời gian, lưu trên giấy tờ có thể xảy ra mất mát và tốn nhiều không gian để
lưu trữ, … Vấn để đặt ra là cần có phương pháp, công cụ quản lý hiện đại hơn, hiệu quả
hơn phương pháp truyển thống này. Hiện nay, với sự phát triển của ngành Công Nghệ
Thông Tin, những vấn đề trên có thể được giải quyết một cách dễ dàng.
IV. Phân tích yêu cầu bài toán
Bài toán đặt ra được dựa trên một tòa nhà với các yêu cầu như trong mô tả đề tài. Từ mô
tả, chúng ta có thể thấy đối với yêu cầu này sẽ cần xây dựng các chức năng như quản lý
căn hộ trong tòa nhà, quản lý khách thuê, quản lý nhân viên, hóa đơn dịch vụ và tạo báo cáo. 2
V. Thiết kế cơ sở dữ liệu 1. Bảng NhanVien
Bảng NhanVien sẽ là nơi lưu trữ thông tin của nhân viên. Bảng này bao gồm
NhanVien(Manv, hoten, loainv, matkhau). Trong đó:
- Manv: Đây là mã nhân viên, là khóa chính của bảng có kiểu dữ liệu nchar(10).
Manv còn là tên đăng nhập của nhân viên.
- hoten: Họ tên nhân viên, có kiểu dữ liệu nvarchar(50).
- loainv: Trường này để phân biệt quyền hạn của nhân viên, có 2 quyền là admin
và user. Có kiểu dữ liệu là bit, quyền admin sẽ là true, nhân viên là false.
- Matkhau: Mật khẩu đăng nhập của nhân viên. Dữ liệu trong cột này sẽ được mã
hóa MD5 để đảm bảo tính bảo mật. 2. Bảng Lau
Bảng Lau chứa thông tin các lầu có trong tòa nhà. Lầu được cho thành một bảng riêng
để dễ dàng thêm lầu mới vào khi sau này tòa nhà có thêm sự mở rộng.
Cấu trúc bảng: Lau(id, tenlau, mota).
- Id: Đây là mã của từng lầu, có kiểu int và tự động tăng.
- Tenlau: Tên hiển thị của lầu trên ứng dụng, có kiểu nvarchar(50).
- mota: Mô tả của từng lầu, có kiểu nvarchar(MAX). Trường này có thể bỏ trống
nếu như không có mô tả gì. 3. Bảng CanHo
Bảng CanHo chứa các thông tin của một căn hộ, ví dụ như mã căn hộ, diện tích, giá thuê, mô tả.
Cấu trúc bảng: CanHo(mach, dientich, tang, gia, mota).
- Mach: Mã căn hộ, có kiểu dữ liệu nchar(10), đây là khóa chính của bảng.
- Dientich: Diện tích căn hộ, có kiểu dữ liệu float.
- Gia: Giá cho thuê của căn hộ, có kiểu dữ liệu int.
- Mota: Mô tả căn hộ, kiểu dữ liệu nvarchar(MAX). 3 4. Bảng NguoiThue
Thông tin về người thuê căn hộ sẽ được lưu trong bảng này.
Cấu trúc bảng: NguoiThue(mant, hoten, cccd, sdt, mach).
- Mant: Mã người thuê, đây cũng là khóa chính của bảng. có kiểu dữ liệu nchar(10).
- Hoten: Họ tên người thuê, có kiểu dữ liệu nvarchar(50).
- Cccd: Số căn cước công dân hoặc chứng minh nhân dân của người thuê, có kiểu
dữ liệu nchar(12). Trường này có thể bỏ trống.
- Sdt: Số điện thoại của người thuê, có kiểu dữ liệu nchar(11). Trường này có thể bỏ trống.
- Mach: Mã căn hộ mà người thuê đã thuê. Đây là khóa ngoại sẽ liên kết đến bảng
CanHo. Mach có kiểu dữ liệu là nchar(10). 5. Bảng Lau
Bảng Lau chứa thông tin các lầu có trong tòa nhà. Lầu được cho thành một bảng riêng
để dễ dàng thêm lầu mới vào khi sau này tòa nhà có thêm sự mở rộng.
Cấu trúc bảng: Lau(id, tenlau, mota).
- Id: Đây là mã của từng lầu, có kiểu int và tự động tăng.
- Tenlau: Tên hiển thị của lầu trên ứng dụng, có kiểu nvarchar(50).
- mota: Mô tả của từng lầu, có kiểu nvarchar(MAX). Trường này có thể bỏ trống
nếu như không có mô tả gì. 6. Bảng CanHo
Bảng CanHo chứa các thông tin của một căn hộ, ví dụ như mã căn hộ, diện tích, giá thuê, mô tả.
Cấu trúc bảng: CanHo(mach, dientich, tang, gia, mota).
- Mach: Mã căn hộ, có kiểu dữ liệu nchar(10), đây là khóa chính của bảng.
- Dientich: Diện tích căn hộ, có kiểu dữ liệu float.
- Gia: Giá cho thuê của căn hộ, có kiểu dữ liệu int.
- Mota: Mô tả căn hộ, kiểu dữ liệu nvarchar(MAX). 4 7. Bảng NguoiThue
Thông tin về người thuê căn hộ sẽ được lưu trong bảng này.
Cấu trúc bảng: NguoiThue(mant, hoten, cccd, sdt, mach).
- Mant: Mã người thuê, đây cũng là khóa chính của bảng. có kiểu dữ liệu nchar(10).
- Hoten: Họ tên người thuê, có kiểu dữ liệu nvarchar(50).
- Cccd: Số căn cước công dân hoặc chứng minh nhân dân của người thuê, có kiểu
dữ liệu nchar(12). Trường này có thể bỏ trống.
- Sdt: Số điện thoại của người thuê, có kiểu dữ liệu nchar(11). Trường này có thể bỏ trống.
- Mach: Mã căn hộ mà người thuê đã thuê. Đây là khóa ngoại sẽ liên kết đến bảng
CanHo. Mach có kiểu dữ liệu là nchar(10). 8. Bảng LoaiHoaDon
Bảng này chứa thông tin về các loại hóa đơn mà người thuê sẽ phải đóng ví dụ như hóa
đơn tiền điện, nước, wifi,…
Cấu trúc của bảng: LoaiHoaDon(maloai, tenloai, dongia).
- Maloai: Đây là khóa chính của bảng, có kiểu dữ liệu int, được thiết lập tự động tăng.
- Tenloai: Tên của loại hóa đơn, có kiểu dữ liệu nvarchar(50).
- Dongia: Đơn giá của loại hóa đơn, có kiểu dữ liệu int. 9. Bảng HoaDon
Bảng HoaDon chứa các thông tin về hóa đơn mà người thuê đã trả.
Cấu trúc của bảng: HoaDon(mahd, mach, loaihd, thang, soluong, dongia).
- Mahd: Mã hóa đơn, đây cũng là khoá chính của bảng. Có kiểu dữ liệu nchar(10).
- Mach: Mã căn hộ đóng tiền, đây là khóa ngoại liên kết đến bảng KhachThue.
Có kiểu dữ liệu nchar(10).
- Loaihd: Kiểu dữ liệu int. Loaihd là khóa ngoại liên kết đến bảng LoaiHoaDon,
chứa thông tin về loại hóa đơn. 5
- Thang: Tháng đóng tiền, có kiểu dữ liệu date.
- Soluong: Kiểu dữ liệu int, chứa thông tin số lượng phải đóng của hóa đơn.
- Dongia: kiểu dữ liệu int, chứa thông tin về đơn giá của loại hóa đơn. VI.
Xây dựng ứng dụng
1. Lựa chọn ngôn ngữ lập trình
Hiện nay có rất nhiều ngôn ngữ lập trình như PHP, Java, JavaScript, Python, C#, VB.Net,
… Mỗi ngôn ngữ đều có những ưu và nhược điểm riêng của nó. Nhưng tựu chung lại các
ngôn ngữ trên đều hướng đến 3 hướng: ứng dụng Desktop, ứng dụng Web, ứng dụng Mobile.
Với mục đích xây dựng phần mềm quản lý tòa nhà, không thể đơn thuần xây dựng ứng
dụng mobile được vì sẽ cần sử dụng đến ứng dụng trên máy vi tính. Đối với ứng dụng web
cần đòi hỏi sự kĩ lưỡng và kiểm soát chặt chẽ dữ liệu để tránh rò rỉ dữ liệu. Vì vậy, việc
xây dựng ứng dụng quản lý là một ứng dụng Desktop là điều phù hợp nhất vì nó có các ưu điểm như:
- Tốc độ xử lý dữ liệu nhanh chóng.
- Đảm bảo an toàn, bảo mật thông tin.
- Có thể chạy trên các phiên bản Windows khác nhau.
- Thao tác trên nhiều giao diện.
Ứng dụng Desktop có nhiều ngôn ngữ như VB.Net, C#, … Chúng ta không thể xây dựng
một ứng dụng mới vào thời điểm hiện tại dựa trên ngôn ngữ VB.Net già nua được. Vì vậy,
C# là ứng cử viên số 1 cho việc xây dựng ứng dụng này.
2. Lựa chọn cơ sở dữ liệu
Hiện nay có 2 nhóm cơ sở dữ liệu là SQL và noSQL. noSQL thường được sử dụng đối với
các ứng dụng lớn vì có hỗ trợ phân tán. Nhưng để sử dụng noSQL cho việc xây dựng một
ứng dụng đầy ràng buộc thì noSQL không phù hợp để sử dụng.
Vậy nên, cơ sở dữ liệu SQL sẽ phù hợp hơn noSQL đối với ứng dụng này. Và SQL Server
sẽ là hệ quản trị cơ sở dữ liệu được sử dụng. Còn điều gì tuyệt vời hơn khi sử dụng combo
do Microsoft phát triển để xây dựng ứng dụng chạy trên Windows nữa. 6
3. Giới thiệu DevExpress
Khi xây dựng các ứng dụng Windows Form (WinForm), trong bộ công cụ của Visual
Studio đã có sẵn các thành phần hỗ trợ xây dựng giao diện. Nhưng các thành phần mặc
định này có giao diện không được bắt mắt, để tinh chỉnh lại thì mất rất nhiều thời gian và
công sức. Vì vậy DevExpress được sinh ra để giải quyết vấn đề này.
DevExpress được ra mắt lần đầu tiên vào năm 2011 và được đông đảo lập trình viên .NET
sử dụng. DevExpress cung cấp sẵn các giao diện hiện đại và được ưa chuộng nhất hiện nay.
Hình 1: Biểu tượng của DevExpress.
Sau khi cài đặt xong, khi mở Visual Studio chúng ta có thể thấy các thành phần của
DevExpress đã được thêm vào.
Hình 2: DevExpress sau khi được cài đặt 7 4. Mô hình 3 lớp a. Giới thiệu
Mô hình 3 lớp là một kiến trúc kiểu client/server mà trong đó giao diện người dùng (UI-
user interface), các quy tắc xử lý (BR-business rule hay BL-business logic), và việc lưu trữ
dữ liệu được phát triển như những module độc lập, và hầu hết là được duy trì trên các nền
tảng độc lập, và mô hình 3 tầng (3-tiers) được coi là một kiến trúc phần mềm và là một mẫu thiết kế.
Đây là kiến trúc triển khai ứng dụng ở mức vật lý. Kiến trúc gồm 3 module chính và riêng biệt :
- Tầng Presentation: hiển thị các thành phần giao diện để tương tác với người dùng
như tiếp nhận thông tin, thông báo lỗi, …
- Tầng Business Logic: thực hiện các hành động nghiệp vụ của phần mềm như
tính toán, đánh giá tính hợp lệ của thông tin, … Tầng này còn di chuyển, xử lí
thông tin giữa 2 tầng trên dưới.
- Tầng Data: nơi lưu trữ và trích xuất dữ liệu từ các hệ quản trị CSDL hay các file
trong hệ thống. Cho phép tầng Business logic thực hiện các truy vấn dữ liệu .
b. Lớp Data Access Object (DAO)
Lớp này có chức năng giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên
quan đến lưu trữ và truy vấn dữ liệu ( tìm kiếm, thêm, xóa, sửa,…).
Trong ứng dụng này, lớp DAO sẽ có một lớp kết nối cơ sở dữ liệu. Trong lớp này sẽ chứa
phần code xử lý để thực hiện truy vấn dữ liệu. 8
Hình 3: Lớp KetNoiCSDL trong DAO.
Trong lớp KetNoiCSDL sẽ chứa chuỗi kết nối đến cơ sở dữ liệu, hàm mở và đóng kết nối,
hàm Execute() để thực hiện các câu lệnh không cần kết quả trả về như INSERT, UPDATE,
DELETE,… Hàm LoadData() là hàm sẽ thực hiện câu lệnh SELECT với kết quả trả về
được gắn vào DataTable.
Hình 4: Hàm Execute().
Hình 5: Hàm LoadData(). 9
c. Lớp Business (BUS)
Layer này phân ra 2 thành nhiệm vụ :
- Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý
chính nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và
lưu xuống hệ quản trị CSDL.
- Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu,
thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về Presentation
Layer. Mỗi bảng trong cơ sở dữ liệu sẽ có một lớp BUS riêng để thực hiện các thao tác với bảng đó.
Hình 6: Các lớp BUS được xây dựng. 10
d. Data Transfer Objects (DTO)
DTO được sử dụng để truyền dữ liệu giữa các lớp. Chúng thường là cấu trúc dữ liệu (
DataSets, XML,… ) hay các lớp đối tượng đã được tùy chỉnh.
Mỗi table trong cơ sở dữ liệu sẽ có một DTO tương ứng để truyền dữ liệu qua lại giữa các lớp.
Hình 7: Các lớp DTO được xây dựng.
e. Lớp giao diện (GUI)
Lớp giao diện là nơi sẽ giao tiếp trực tiếp với người dùng, trực tiếp nhận về các lệnh mà
người dùng muốn thực hiện. Lớp giao diện này chính là các Form được xây dựng để thực
hiện một chức năng nào đó. 11
Hình 8: Giao diện chính của chương trình.
5. Xây dựng chức năng
a. Chức năng đăng nhập
Chức năng đăng nhập sẽ được hiển thị đầu tiên khi ứng dụng được chạy. Người dùng sẽ
phải nhập tên đăng nhập và mật khẩu để tiến hành đăng nhập. Nếu thông tin đăng nhập
đúng, ứng dụng sẽ hiển thị giao diện chính.
Hình 9: Màn hình đăng nhập. b. Giao diện chính
Giao diện chính sẽ được hiển thị sau khi người dùng đăng nhập thành công. Khi giao diện
đang được load sẽ kiểm tra quyền của user đăng nhập vào, nếu là Admin thì hiển thị đầy
đủ chức năng. Nếu là User thì sẽ chỉ hiện các chức năng quản lý khách thuê, tạo hóa đơn.
Form này cũng sẽ là Form mdiParent để khi gọi các chức năng con thì chúng sẽ được hiển thị bên trong Form này. 12
Hình 10: Giao diện màn hình chính khi đăng nhập bằng quyền Admin và User. 13
Hình 11: Giao diện chính khi mở các chức năng con.
c. Quản lý nhân viên
Form quản lý nhân viên sẽ chứa màn hình để người quản lý có thể thao tác, thực hiện việc
quản lý nhân viên như thêm, sửa, xóa,…
Màn hình chia làm 3 phần chính:
- Thanh Ribbon bar: chứa các nút Thêm, Sửa, Xóa.
- Phần nhập liệu: chứa các textbox để nhập dữ liệu.
- Phần danh sách: chứa bảng dữ liệu danh sách các nhân viên. 14
Hình 12: Giao diện chức năng quản lý nhân viên.
Hình 13: Khi người dùng nhập dữ liệu nhân viên mới. d. Quản lý Lầu
Chức năng này được dùng để quản lý các lầu có trong tòa nhà. Chức năng được xây dựng
trên Ribbon Form của DevExpress. Về các thao tác gồm: Thêm, Sửa, Xóa.
Màn hình của Form cũng được chia làm 3 phần chính như chức năng Quản Lý Nhân Viên. 15
Hình 14: Giao diện chính của chức năng.
Hình 15: Dữ liệu được load từ dòng dữ liệu lên TextBox.
e. Quản lý căn hộ
Dữ liệu về các căn hộ có trong tòa nhà sẽ được quản lý tại Form này. Mã của căn hộ sẽ
được tự động tính, người quản lý chỉ cần nhập các thông tin còn lại của căn hộ và bấm lưu. 16