Tuy nhiên việc ứng dụng công nghệ thông tin vào đời sống nói chung và cụ thể là việc quản lý ra vào toà nhà không phải việc dễ dàng cần có độingũ cán bộ nhân viên có đủ chuyên môn nghiệp
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN
-*** -BÀI TẬP LỚN MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
ĐỀ TÀI: Quản lý ra vào tòa nhà
Nhóm 6Nguyễn Đức Mạnh – 11202507
Nguyễn Hoa Sơn – 11203449
Nguyễn Văn Chí – 11200637
Nguyễn Thị Mai Trang – 11208099
Nguyễn Văn Hiếu – 11201503
GIẢNG VIÊN: Phạm Minh Hoàn
HÀ NỘI, NĂM 2022
Trang 2MỤC LỤ
LỜI MỞ ĐẦU 4
I GIỚI THIỆU BÀI TOÁN QUẢN LÝ RA VÀO TÒA NHÀ 5
1 Đặt vấn đề: 5
2 Mục tiêu: 6
3 Xác định yêu cầu 6
3.1 Yêu cầu chức năng 6
3.2 Yêu cầu phi chức năng 7
II KHẢO SÁT HỆ THỐNG QUẢN LÝ RA VÀO TÒA NHÀ 8
1 Hệ thống cửa: (Đầu vào dữ liệu) 8
1.1 Ý tưởng thiết kế: 8
1.2 Các thành phần: 8
1.3 Cách thức hoạt động: 8
1.4 Yêu cầu đối với các thành phần 8
2 Đối tượng ra vào 9
2.1.Quản lý: 9
2.2.Nhân viên: 9
2.3.Cư dân: 9
3 Kiểm tra dữ liệu đầu vào 10
4 Phân quyền 11
4.1 Quản lý: 11
4.2 Nhân viên: 12
4.3 Cư dân: 12
III PHÂN TÍCH HỆ THỐNG QUẢN LÝ RA VÀO TÒA NHÀ 13
1 Phân tích đầu vào dữ liệu (Hệ thống cửa) 13
1.1 Đối với cửa ra vào chung 13
1.1.1.Đầu vào dữ liệu 13
Trang 31.1.2.Phương thức nhận dữ liệu: 13
1.1.3.Phương pháp 13
1.2 Đối với các cửa yêu cầu có phận sự 14
1.3 Đối với hệ thống người dùng 14
2 Phân tích đối tượng người 15
2.1 Lớp người: 16
2.2 Lớp nhân viên: 16
2.3 Lớp quản lí: 16
2.4 Lớp cư dân: 16
2.5 Lớp Logs: 16
3 Phân tích kiểm tra dữ liệu đầu vào 16
3.1 Những khu vực chung 17
3.2 Những khu vực chuyên biệt 19
4 Phân quyền 19
4.1.Phân tích phân quyền của các đối tượng trong toà nhà 19
4.1.1.Quản lý: 19
4.1.2.Nhân viên: 19
4.1.3.Cư dân: 20
4.2.Ý tưởng xây dựng code 20
4.3.Sơ đồ quy trình nghiệp vụ ra vào tòa nhà 21
IV THIẾT KẾ HỆ THỐNG QUẢN LÝ RA VÀO TÒA NHÀ 22
1 Lập trình hệ thống vào ra tòa nhà thông minh theo phương pháp lập trình hướng đối tượng (ngôn ngữ C++) 22
1.1 Mô tả phương pháp lập trình - Lập trình hướng đối tượng với C++ 22
1.1.1.Lập trình hướng đối tượng là gì ? 22
1.1.2.Đặc điểm, tính chất cơ bản của lập trình hướng đối tượng 22
1.1.3.Ưu điểm khi sử dụng lập trình hướng đối tượng 23
1.1.4.Nhược điểm: 23
2
Trang 41.1.5.Lập trình hướng đối tượng với C++ 24
1.2 Mô hình chung của hệ thống kiểm soát vào ra tòa nhà sử dụng phương pháp OOP 24
2 Thiết kế 25
2.1 Sơ đồ phân cấp lớp 25
2.2 Người dùng 25
2.2.1.Class People 25
2.2.2.Class Manager, Class Employee, Class Resident: 26
2.2.3 Class User 27
2.3 Class Log: 28
2.4 Class DateTime: 29
2.5 Class Door: 29
2.6 Class Menu: 30
2.7 Class Command: 31
2.8 Main 32
V THỰC HIỆN 34
1 Đăng nhập vào tòa nhà 34
1.1.Đăng nhập bằng ID sai 34
1.2.Đăng nhập bằng ID đúng 34
2.Chức năng ra vào 35
2.1 Chức năng vào 35
2.2 Chọn cửa ra vào 35
3.Chức năng quản lý 36
3.1.Đăng nhập 36
3.2 Chức năng hiển thị danh sách người dùng 37
3.3 Chức năng hiển thị danh sách người ở (cư dân trong tòa nhà) 37
3.4 Chức năng chỉnh sửa danh sách người dùng 38
4 Thoát 39
Trang 5LỜI KẾT 40
4
Trang 6LỜI MỞ ĐẦU
Thế giới ngày càng phát triển, dân số gia tăng, xu hướng đô thị hoá
ngày càng cao dẫn đến sự gia tăng chóng mặt của các toà chung cư, cao ốc.Các toà chung cư, cao ốc giải quyết được vấn đề nhà trong điều kiện đất đaitrật hẹp của thành phố tuy nhiên việc quản lý các toà cao ốc lại không phải làviệc dễ dàng Để đảm bảo an toàn an ninh, mỗi căn trung cư, cao ốc cần thuêrất nhiều nhân sự giám sát tuy vậy, các nguy cơ tìm ẩn vẫn còn rất cao kèmtheo chí phí thuê nhân công lớn Các nhà quản lý vẫn luôn tìm kiếm các giảipháp tốt nhất để khắc phục vấn đề trên
Ngày nay, việc áp dựng khoa học kỹ thuật nói chung và công nghệthông tin nói riêng ngày cả phổ biến, thể hiện được tính hiệu quả và ưu việtcủa nó Các nhà quản lý ngày càng quan tâm đến việc ứng dụng công nghệthông tin vào đời sống Và việc ứng dụng quản lý thông tin vào hệ thống ravào toà nhà là điều tất yếu cần phải làm để nâng cao hiệu quả kinh doanh, tínhbảo mật, giảm chi phí thuê nhân công
Tuy nhiên việc ứng dụng công nghệ thông tin vào đời sống nói chung
và cụ thể là việc quản lý ra vào toà nhà không phải việc dễ dàng cần có độingũ cán bộ nhân viên có đủ chuyên môn nghiệp vụ và hệ thống phần mềmđược thiết kế hướng tới từng đối tượng sử dụng, đảm bảo được các yêu cầu vàchuyên môn nghiệp vụ cũng như các yêu cầu phi chức năng như dễ dàng sựdụng, tính bảo mật cao
Các yếu tố trên đã chứng minh được tính thực tiễn và cấp thiết của đềtài “Xây dựng hệ thống quản lý ra vào toà nhà bằng phương pháp lập trìnhhướng đối tượng” Vì thời gian có hạn, cũng như kiến thức của chúng em cònnhiều hạn chế nên không thể tránh khỏi những sai sót trong ý tưởng xây dựngtriển khai cũng như cách trình bày, kính mong nhận được sự nhân xét, phêbình, góp ý từ các quý thầy cô và mọi người để chúng em có thể học hỏi vàphấn đấu hoàn thành tốt hơn trong thời gian tới
Chúng em xin chân thành cảm ơn thầy Phạm Minh Hoàn đã đưa ra đềtài, định hướng và hỗ trợ chúng em trong suốt quá trình hoàn thiện đề tài này
Trang 7I GIỚI THIỆU BÀI TOÁN QUẢN LÝ RA VÀO TÒA NHÀ
1 Đặt vấn đề:
Hiện nay ở Việt Nam, các toà cao ốc, văn phòng cho thuê, khu chung
cư,… xuất hiện ngày càng nhiều Những khu vực này luôn có các phần tàinguyên sử dụng chung như cửa ra vào, bãi đỗ xe, showroom,…có nhiềungười ra vào, đi lại Điều này dẫn tới nguy cơ mất an toàn và an ninh trật tựtăng cao Để hạn chế tối đa nguy cơ trên quản lý các toà nhà đã cho thuê thêmnhiều nhân viên an ninh, bảo vệ, tuy nhiên cách này vẫn con nhiều hạn chế vàtốn quá nhiều chi phí cho việc thuê nhân công Các nhà quản lý vẫn luôn tìmkiếm một giải pháp đảm bảo an ninh và tiếp kiệm tối đa chi phí
Một hệ thống quản lý an ninh toàn diện cho cả toà nhà là giải pháp tối
ưu trong việc đảm bảo an ninh và tiết kiệm chí phí thuê nhân công Tuy nhiên,chi phí lặp đặt các thiết bị an ninh trong toàn bộ toà nhà có thể tốn quá nhiềuchi phí và hệ thống có thể không được sự dụng tối ưu tất cả các chức năng.Chính vì điều này một giải pháp mới được đưa ra đó là tập trung tối ưu hoámột phần chức năng của hệ thống lớn tạo thành một hệ thống hoàn chỉnh cóliên kết với hệ thống lớn – hệ thống quản lý ra vào toà nhà Hệ thống này sẽtập trung kiểm soát, lưu trữ thông tin ở khu vực quan trọng, tập trung nhiềungười đi lại, cụ thể là khu vực cửa ra vào Giải pháp này mang lại hiệu quả tốthơn và giảm thiểu chi phí đầu tư thiết bị dư thừa
6
Trang 82 Mục tiêu:
Mục tiêu là tạo ra hệ thống ứng dụng công nghệ thông tin để kiểm soátchặt chẽ việc ra vào toà nhà, và phân quyền sử dụng các cửa phòng riêng; Xâydựng hệ thống cấp phát ID và quản lý việc ra vào toà nhà, sử dụng các cửabằng mã ID để kiểm soát một cách nhanh gọn và hiệu quả, đảm bảo an ninhđồng thời phục vụ nhanh chóng hoạt động ra vào toà nhà cư dân trong toànhà, không cho các đối tượng khác ra vào như khách vãng lai …; Tạo ra hệthống dễ dàng cài đặt và sử dụng, linh hoạt trong cập nhật và nâng cấp nhưngvẫn đảm bảo các yếu tố về bảo mật thông tin
3 Xác định yêu cầu
3.1 Yêu cầu chức năng
- Hệ thống cho phép người quản lý theo dõi mọi hoạt động ra vào toànhà
được cấp thẻ, xác minh danh tính rõ ràng mới được vào toà nhà
- Lưu lại thông tin và thời gian ra, vào toà nhà của tất cả mọi người(quản lý, nhân viên, cư dân)
Trang 93.2 Yêu cầu phi chức năng
- Hệ thống phân quyền sử dụng để đảm bảo vấn đề bảo mật thông tin
- Hệ thống xử lý linh hoạt, nhanh chóng vừa đảm bảo việc giám sát anninh vừa tiết kiệm thời gian cho người dùng, không có các thủ tục rườm rà,khó chịu
- Hệ thống dễ dàng lặp đặt, sử dụng, mang lại hiệu quả ứng dụng thựctiễn cao
8
Trang 10II KHẢO SÁT HỆ THỐNG QUẢN LÝ RA VÀO TÒA NHÀ
1 Hệ thống cửa: (Đầu vào dữ liệu)
1.1 Ý tưởng thiết kế:
Trước khi vào tòa nhà sẽ có các cửa để chặn không cho các thành viênkhông được phép truy cập Các thành viên muốn qua trạm kiểm soát thì phảixác nhận thông tin như thẻ cảm ứng Nếu được phép đi qua thì khi quẹt thẻ;đầu đọc thẻ sẽ gửi lệnh đến trung tâm điều khiển Tại đây, trung tâm điềukhiển sẽ phát lệnh khiến cánh cửa mở đủ để cho một thành viên bước vào tòanhà
1.2 Các thành phần:
- Mỗi cửa trang bị 1 Thiết bị đọc thẻ (A), 1 hệ thống điều khiển cửa (B)
- Thiết bị đọc thẻ và Hệ thống điều khiển cửa kết nối với Hệ thống kiểmtra dữ liệu đầu vào
1.3 Cách thức hoạt động:
Khi người dùng quẹt thẻ, thiết bị đọc thẻ sẽ đọc thông tin trên thẻ, ghivào 1 bản ghi và gửi yêu cầu tới hệ thống kiểm tra để xác thực Hệ thốngkiểm tra xác thực và gửi phản hồi tới hệ thống điều khiển cửa tại nơi vừa gửiyêu cầu Hệ thống điều khiển cửa thực hiện mở/giữ nguyên trạng thái đóngtheo phản hồi của hệ thống kiểm tra
1.4 Yêu cầu đối với các thành phần
- Thiết bị đọc thẻ phải có chức năng quét thẻ (đọc thông tin trên thẻ) vàgửi thông tin (truyền vào hàm) tới Hệ thống kiểm tra dữ liệu đầu vào
- Thiết bị điều khiển cửa có chức năng đóng/mở cửa theo phản hồi từ Hệthống kiểm tra dữ liệu đầu vào
còn lại phải được thực thi tự động, chính xác, nhanh chóng.
Trang 112 Đối tượng ra vào
Mỗi đối tượng ra vào đều có chức năng và nhiệm vụ riêng Bài toán ra vào tòa nhà hướng tới 3 đối tượng người sử dụng chính
2.3.Cư dân:
Cư dân sống trong toà nhà được cấp thẻ để ra vào toà nhà Thẻ ra vàogiúp cư dân ra vào toà nhà một cách dễ dàng đồng thời cũng đảm bảo an toàncho chính mình và cho cả toà nhà
10
Trang 123 Kiểm tra dữ liệu đầu vào
Hiện nay, tại Việt Nam, có rất nhiều những tòa nhà lớn xuất hiện nhưcác chung cư cao tầng, các công ty tập đoàn lớn Những tòa nhà kiểu cấu trúccao tầng như vậy sẽ đem lại hiệu quả về sức chứa cũng như tiết kiệm đượckhông gian diện tích Tuy nhiên, việc có nhiều người cùng ra vào ở một tòanhà sẽ khiến cho vấn đề an ninh gặp rất nhiều khó khăn Để khắc phục tìnhtrạng này, các hệ thống kiểm soát quá trình ra vào của mọi người được xâydựng nhằm giúp bộ phận an ninh có thể nắm rõ được có những ai vào và rakhỏi tòa nhà trong một ngày, khiến cho bảo mật an ninh được cải thiện rõ rệt
a) Nguyên lý
Hệ thống sẽ bao gồm có các cửa chặn tích hợp máy quét Thành viên của
tòa nhà sẽ được phát thẻ thành viên, mỗi thẻ sẽ được mã hóa bởi mã IDriêng Mỗi người sẽ có duy nhất một thẻ và mỗi thẻ chỉ có duy nhất mộtmã
Mỗi người dùng đã đăng ký làm thẻ thành viên sẽ có thông tin trong hệ
thống quản lý, bao gồm các thông tin cá nhân như mã ID, họ tên, ngàysinh, giới tính, chức vụ,
b) Đối tượng: (Nhân viên + Quản lý + Cư dân)
- Khi người dùng quẹt thẻ, máy sẽ xác định mã ID trên thẻ, từ đó truyềnthông tin về phần mềm quản lý để tìm kiếm thông tin người dùng có mã ID
Trang 13tương ứng trên hệ thống Nếu đã tìm được mã tương ứng, hệ thống sẽ truyềntín hiệu về cửa để mở cửa cho người dùng có thể ra hoặc vào tòa nhà
- Nếu không tìm được thông tin người dùng trong hệ thống, máy sẽkhông mở cửa và yêu cầu người dùng kiểm tra lại Nếu quét nhiều lần vẫnkhông được, máy sẽ yêu cầu hỗ trợ từ bộ phận an ninh để kiểm tra lại thôngtin người dùng
- Bên cạnh việc kiểm tra dữ liệu của người dùng, máy sẽ ghi lại thời gianvào/ra của người đó để hệ thống có thể kiểm soát thời gian tốt hơn, thuận tiệncho những trường hợp cần kiểm chứng thông tin
- Đối với người dùng là quản lý, máy cũng sẽ kiểm tra thông tin (mã ID)tương tự với nhân viên
Họ và tên: string (chỉ gồm chữ cái, viết hoa chữ cái đầu mỗi thành phần
tên)
Mã ID: string (gồm 2 chữ cái, 4 số, vd: QL01234, trong đó 2 chữ cái viết
hoa là viết tắt chức vụ (QL là Quản lý, CD là Cư dân, NV là Nhân viên);chữ số đầu tiên là giới tính (0: Nam, 1: Nữ, 2: khác); 3 chữ số còn lại là
mã số)
Giới tính: int, chỉ nhận 3 giá trị 0, 1, 2 (0: Nam, 1: Nữ, 2: khác)
Ngày sinh: Theo định dạng dd/mm/yyyy
- Hệ thống sẽ báo lỗi nếu kiểu dữ liệu bị sai và yêu cầu nhập lại
Trang 14Quản lý có quyền kiểm soát, phân quyền cho các đối tượng khác baogồm cả đối tượng trong và ngoài toà nhà Quản lý có quyền thêm người dùng
và là người duy nhất có quyền in danh sách ra vào toà nhà Quản lí có
quyền sử dụng phòng an ninh hay phòng quản lí
4.2 Nhân viên:
Làm nhiệm vụ theo phân công của quản lí Nhân viên chỉ có quyền hoạt
động ở khu vực sảnh Khi nhân viên được điều lên phòng thì cũng không có
quyền vào trực tiếp mà phải được cư dân mở cửa cho vào
Trang 16III PHÂN TÍCH HỆ THỐNG QUẢN LÝ RA VÀO TÒA NHÀ
1 Phân tích đầu vào dữ liệu (Hệ thống cửa)
1.1 Đối với cửa ra vào chung
1.1.1.Đầu vào dữ liệu
ID của người dùng cần được thu thập được và đối chiếu với databasethông qua hệ thống kiểm tra dữ liệu một cách nhanh chóng và chính xác
+Người dùng tại cửa nhập tài khoản – mật khẩu (Đầu vào dữ liệu)
+Dữ liệu nhập vào phải đúng format cho sẵn
+Không được thay đổi dữ liệu nhập vào trong khi tương tác
Trang 17+Thông tin được gửi tới hệ thống kiểm tra dữ liệu và hệ thống kiểm tra thựchiện phần còn lại.
Cách thức thực hiện:
Ta cần 1 class để thực hiện tương tác giữa người dùng với hệ thống
(commandClass) Trong class đó sẽ có phương thức để người dùng nhập
dữ liệu (getId(), getPassword(), ).
commandClass cần được kết nối với các đối tượng còn lại (thông qua các
thuộc tính, kế thừa, …) để sử dụng các phương thức cơ bản như: in dữ liệu
người ra vào trong class Logs, thêm người dùng trong class Users, …
1.2 Đối với các cửa yêu cầu có phận sự
Tương tự với hệ thống cửa chung song ở phần kiểm tra dữ liệu cầnkiểm tra thêm thuộc tính quyền tại lớp user
1.3 Đối với hệ thống người dùng
- Tất yếu hệ thống cần có chức năng thêm, sửa, … người dùng Đây cũng
là 1 đầu vào dữ liệu cần xây dựng ngoài hệ thống cửa Riêng với các chứcnăng này thì chỉ có cấp quản lý trở lên mới được phép sử dụng
- Ý tưởng: sử dụng commandClass để phát triển giao diện người dùng.Với các hàm thành phần như in dữ liêu, nhập dữ liệu, thêm, sửa xóa ngườidùng …
16
Trang 182 Phân tích đối tượng người
Đối tượng gồm người ở (cư dân), quản lí, nhân viên:
Trang 192.1 Lớp người:
Đây là lớp cơ sở cho 3 lớp tiếp theo là lớp Nhanvien, Quanly, CuDan.Lớp người gồm có các thuộc tính cơ bản là ID ra vào toà nhà, Họ và tên, Tuổi,Giới tính, Chức vụ
2.2 Lớp nhân viên:
Lớp Nhân viên kế thừa từ lớp Người nên cũng có các thuộc tính cơ bản
là ID, Họ tên, Tuổi, Giới tính, Chức vụ Lớp Nhân viên gồm có Bảo vệ và Lễtân, họ là người trực tiếp sử dụng hệ thống
2.4 Lớp cư dân:
Lớp Cư dân kế thừa các thuộc tính cơ bản của lớp Người Lớp Cư dân
được cấp ID từ khi bắt đầu vào ở trong toà nhà
2.5 Lớp Logs:
Lớp Logs là lớp chứa thông tin ra vào toà nhà của các đối tượng, cáclớp khác trong hệ thống bảo gồm thời gian ra vào cụ thể và trạng thái của cácđối tượng: ví dụ như đã vào và ra toà nhà hoặc đã vào toà nhà nhưng chưa rakhỏi toà nhà
3 Phân tích kiểm tra dữ liệu đầu vào
Để bảo đảm tính an ninh cũng như thuận tiện cho người dùng có thể ravào các khu trong tòa nhà, hệ thống kiểm soát đầu vào cần được xây dựngmột cách cẩn thận và chính xác
18
Trang 20Với yêu cầu đề bài đưa ra, chúng ta sẽ kiểm tra dữ liệu dựa trên phân
khu mà người dùng muốn vào: khu vực chung (cửa chung mà ai cũng có thể
ra vào), và khu vực riêng tư (những phòng riêng biệt mà chỉ một số người
dùng nhất định mới được phép vào).
3.1 Những khu vực chung
Một số khu vực chung mà tại đó cửa sẽ cho phép bất cứ ai có thẻ thành
viên của tòa nhà được ra vào tự do (cửa chính của tòa nhà, thang máy, ).
Tại những cửa này, máy quét sẽ được cài đặt quét thẻ thành viên ngườidùng, sau đó đầu đọc sẽ giải mã bộ mã vừa quét để tìm ra ID trên thẻ Tiếptheo đó, máy quét sẽ phát tín hiệu kiểm tra về hệ thống quản lý Hệ thốngquản lý, dựa trên những câu lệnh được lập trình và những thuật toán được càiđặt, sẽ tiến hành kiểm tra trong database xem có tồn tại ID vừa được quétkhông Nếu có, hệ thống sẽ phản hồi lại tín hiệu, mở cửa và cho người dùng
có thể truy cập vào khu vực
Code gợi ý check ID
+Có thể lưu trữ ID vào vector hoặc mảng, mình giả dụ ID được lưu trữ trênvector có tên là IDs
+Có thể cài đoạn code này vào thành một method của class, hoặc tạo thành 1hàm riêng để check thông tin
bool checkID(string ID)
Trang 21bool check = false;
for(int i=0;i<IDs.size();i++){
if(ID == IDs[i]) {
check =true;break;
Trang 22
3.2 Những khu vực chuyên biệt
- Bên cạnh những khu vực chung, có một số khu vực của tòa nhà mà chỉ
có những người dùng có thẩm quyền mới có quyền vào như thang máy choquản lý, phòng quản lý, phòng hệ thống giám sát, phòng bảo vệ,
- Với những phòng như vậy, hệ thống quét bên cạnh việc check ID liệungười dùng có tồn tại trong hệ thống quản lý không thì còn check cả thẩmquyền của người dùng
- Trong thẻ người dùng sẽ có một mã thứ hai, và với những khu chuyênbiệt, máy quét sẽ tích hợp thêm một đèn quét nữa, đèn quét này sẽ quét mãthứ hai này, giải mã để tìm ra mã thẩm quyền của người dùng
- Sau khi đã kiểm tra ID, hệ thống sẽ tiếp tục kiểm tra mã thẩm quyền, đểxem người dùng có đủ thẩm quyền tiến vào khu vực này không, kết hợp cùngvới check cả mật khẩu
+Nếu ID không hợp lệ, ngay lập tức hệ thống sẽ không cho phép mở
cửa và không cần check thẩm quyền