Tải bản đầy đủ (.pdf) (44 trang)

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à

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 (3.05 MB, 44 trang )

lOMoARcPSD|9242611

TRƯỜ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 6
Nguyễ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


MỤ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

1


1.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 tồ 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


1.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 số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

3


LỜI KẾT........................................................................................................40

4



LỜI MỞ ĐẦU
Thế giới ngày càng phát triển, dân số gia tăng, xu hướng đơ thị hố
ngày càng cao dẫn đến sự gia tăng chóng mặt của các tồ 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 đai
trậ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èm
theo chí phí th nhân cơng lớn. Các nhà quản lý vẫn ln tìm kiếm các giải
phá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ệt
củ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 ra
và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ính
bảo mật, giảm chi phí th 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ó đội
ngũ cán bộ nhân viên có đủ chun 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 tồ nhà bằng phương pháp lập trình
hướng đối tượng”. Vì thời gian có hạn, cũng như kiến thức của chúng em cịn
nhiều hạn chế nên khơng thể tránh khỏi những sai sót trong ý tưởng xây dựng
triể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 q 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 q trình hồn thiện đề tài này.

5


I. GIỚI THIỆU BÀI TỐ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 ln có các phần tài
nguyên sử dụng chung như cửa ra vào, bãi đỗ xe, showroom,…có nhiều
ngườ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êm
nhiề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 ln tìm
kiế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í th 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 q nhiều
chi 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 hố
một phần chức năng của hệ thống lớn tạo thành một hệ thống hồ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 sốt, lưu trữ thơng tin ở khu vực quan trọng, tập trung nhiều
ngườ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ốt
hơn và giảm thiểu chi phí đầu tư thiết bị dư thừa.

6


2. 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 sốt
chặ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ây
dự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ửa
bằ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 tồ nhà cư dân trong tồ
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ưng
vẫ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 tồ
nhà.
Kiểm sốt chặt chẽ hoạt động ra vào tồ nhà: Chỉ có các đối tượng
được cấp thẻ, xác minh danh tính rõ ràng mới được vào tồ 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)
7


3.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 an
ninh 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ực
tiễn cao.


8


II. 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ên
không được phép truy cập. Các thành viên muốn qua trạm kiểm sốt thì phải
xá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ều
khiể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òa
nhà.
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ểm
tra 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ẻ, ghi
và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ống
kiể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ửi
yêu cầu. Hệ thống điều khiển cửa thực hiện mở/giữ nguyên trạng thái đóng
theo 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 qt 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.


 Lưu ý: đầu vào dữ liệu duy nhất là dữ liệu từ thẻ được quẹt, mọi thao tác
còn lại phải được thực thi tự động, chính xác, nhanh chóng.

9


2. Đố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 tốn ra
vào tòa nhà hướng tới 3 đối tượng người sử dụng chính.
2.1.Quản lý:
Quản lý sẽ kiểm sốt mọi hoạt động trong toà nhà đảm bảo mọi hoạt
động của toà nhà diễn ra một cách tốt nhất, an toàn nhất.
2.2.Nhân viên:
Nhân viên bao gồm lễ tân và bảo vệ. Cả hai hoạt động theo chỉ đạo trực
tiếp và gián tiếp của quản lý toà nhà, đảm bảo an ninh và chất lượng phục vụ
tốt nhất. Nhiệm vụ chính của lễ tân là cấp thẻ cho cư dân, ghi chú thông tin
của họ khi ra vào tồ nhà. Nhiệm vụ chính của bảo vệ là đảm bảo an ninh,
không cho các đối tượng khả nghi, những người khơng có thẻ tự do ra vào toà
nhà, trực ở các khu vực quan trong như cửa ra vào và thang máy.
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ào
giú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àn
cho chính mình và cho cả tồ nhà.

10


3. 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 đồn lớn. Những tòa nhà kiểu cấu trúc
cao tầng như vậy sẽ đem lại hiệu quả về sức chứa cũng như tiết kiệm được
khơng gian diện tích. Tuy nhiên, việc có nhiều người cùng ra vào ở một tòa
nhà sẽ khiến cho vấn đề an ninh gặp rất nhiều khó khăn. Để khắc phục tình
trạng này, các hệ thống kiểm sốt quá trình ra vào của mọi người được xây
dựng nhằm giúp bộ phận an ninh có thể nắm rõ được có những ai vào và ra
khỏ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 qt. 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ã ID
riêng. Mỗi người sẽ có duy nhất một thẻ và mỗi thẻ chỉ có duy nhất một
mã.
 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ày
sinh, 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ền
thơng tin về phần mềm quản lý để tìm kiếm thơng tin người dùng có mã ID

11


tương ứng trên hệ thống. Nếu đã tìm được mã tương ứng, hệ thống sẽ truyền
tí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ẫn
không được, máy sẽ yêu cầu hỗ trợ từ bộ phận an ninh để kiểm tra lại thông
tin 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 gian

và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ện
cho 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
c) Thêm người dùng
Nếu người dùng là nhân viên mới của tòa nhà, cần liên hệ với bộ phận
quản lý để làm thẻ.
Người dùng sẽ phải khai báo các thông tin cá nhân như mã ID, họ và
tên, giới tính, ngày tháng năm sinh, chức vụ,..... Mỗi thơng tin sẽ có những
u cầu về mặt dữ liệu như :
 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
4. Phân quyền
Mỗi đối tượng được cấp quyền sử dụng toà nhà dài hạn theo 1 cấp độ nhất
định.
4.1. Quản lý:

12


Quản lý có quyền kiểm sốt, phân quyền cho các đối tượng khác bao
gồm cả đối tượng trong và ngoài tồ 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 tồ 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.
4.3. Cư dân:
Cư dân sống trong tồ nhà có quyền sử dụng cửa ra vào, các khu vực
chung và nhà ở. Cư dân có quyền yêu cầu quản lí về việc xem danh sách ra
vào tòa nhà khi gặp phải vấn đề về an ninh trong tòa nhà.

13


14


III. 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 database
thông qua hệ thống kiểm tra dữ liệu một cách nhanh chóng và chính xác.

1.1.2.Phương thức nhận dữ liệu:
Khi quẹt thẻ, máy quét quét mã vạch và giải mã thành thơng tin. Ta có
thể xây dựng máy qt như một đối tượng với phương thức quan trọng nhất là
“scanIt” - thực hiện chuyển đổi mã vạch thành thông tin. Từ đó ta mới có thể
đem so sánh với database (sử dụng các hàm checkID(), checkQuyen(), …).
1.1.3.Phương pháp

Tuy nhiên vấn đề nằm ở chỗ rất khó để tìm hiểu về việc quẹt thẻ nên sử
dụng phương pháp cổ điển sẽ dễ thực thi hơn: tài khoản – mật khẩu.
 Mô phỏng ý tưởng:
+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.

15


+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ực
hiệ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ần
kiể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ức
nă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ười
dùng …
 Mơ phỏng:


16


2. 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:

17


2.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 tồ 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.3. Lớp quản lí:
Lớp Quản lý cũng kế thừa các thuộc tính cơ bản của lớp Người và có
tất cả các chức năng của lớp Nhân viên, ngoài ra lớp Quản lý có thêm chức
năng in danh sách thơng tin người ra vào và chỉ duy nhất quản lý có chức
năng này. Người quản lý sẽ sử dụng danh sách này kết hợp cùng với hệ thống
Camera trong toà nhà để theo dõi và đảm bảo an ninh, trật tự.
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ác
lớ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 ra
khỏi tồ 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ể ra
vào các khu trong tịa nhà, hệ thống kiểm sốt đầu vào cần được xây dựng
một cách cẩn thận và chính xác.

18


Vớ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ười
dùng, sau đó đầu đọc sẽ giải mã bộ mã vừa quét để tìm ra ID trên thẻ. Tiếp
theo đó, máy qt sẽ phát tín hiệu kiểm tra về hệ thống quản lý. Hệ thống
quản lý, dựa trên những câu lệnh được lập trình và những thuật tố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 qt
khơ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ên
vector 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 1
hàm riêng để check thông tin.

bool checkID(string ID)

19


{
bool check = false;
for(int i=0;i{
if(ID == IDs[i])
{
check =true;
break;
}
}
return check;
}

20


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 cho
quả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ệu
người dùng có tồn tại trong hệ thống quản lý khơng thì cịn check cả thẩm
quyề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ên
biệ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ùng
vớ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.

21


+Nếu ID hợp lệ, hệ thống sẽ tiếp tục tìm kiếm thẩm quyền của người
dùng này. ví dụ :1. Quản lý; 2. Cư dân; 3. Nhân viên. Sau đó hệ thống tiếp tục
truy cập vào hệ thống cửa, kiểm tra xem loại cửa đang cần kiểm tra yêu cầu
thẩm quyền là gì, sau đó mới gửi tín hiệu quyết định mở cửa hay khơng cho
người dùng.
4. Phân quyền
4.1.Phân tích phân quyền của các đối tượng trong toà nhà
4.1.1.Quản lý:
Quản lý có nhiệm vụ kiểm sốt mọi hoạt động trong tồ nhà đảm bảo
mọi hoạt động của toà nhà diễn ra một cách tốt nhất, an tồn nhất. Quản lý có
quyền kiểm soát, phân quyền cho các đối tượng khác bao gồ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 ra vào cửa
dụng cửa phịng quản lý.
4.1.2.Nhân viên:
Nhân viên bao gồm lễ tân và bảo vệ. Cả hai hoạt động theo chỉ đạo trực
tiếp và gián tiếp của quản lý toà nhà, đảm bảo an ninh và chất lượng phục vụ
tốt nhất. Nhiệm vụ chính của lễ tân là cấp thẻ cho cư dân. Nhân viên chỉ có
quyền ra vào cửa chính và khơng có khu vực sử dụng riêng.
4.1.3.Cư dân:

Cư dân là người sống trong toà nhà được cấp thẻ để ra vào toà nhà. Thẻ
ra vào giú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 tồn cho chính mình và cho cả tồ nhà. Cư dân có quyền sử dụng các khu
vực dùng chung như ra vào cửa chính. Đồng thời có quyền sử dụng khu vực
riêng là nhà riêng tương đương với quyền sử dụng cửa phòng ở.
4.2.Ý tưởng xây dựng code
-Hàm kiểm tra quyền ( checkQuyen(int id, int role))
Hàm checkQuyen(int id, int role) có tác dụng kiểm tra ID nhập vào thuộc đối
tượng nào, từ đó phân quyền cho họ. Trong hàm này, quy định:
1- Cư dân

22


2- Nhân viên
3- Quản lý
bool checkQuyen(int id, int role) {
if (role == 1) {
for (CuDan i : dsCuDan) {
if (id == i.getId()) {
return true;
}
}
}
if (role == 2) {
for (NhanVien i : dsNhanVien) {
if (id == i.getId()) {
return true;
}
}

}
if (role == 3) {
for (QuanLy i : dsQuanLy) {
if (id == i.getId()) {
return true;
}
}
}
return false;}
4.3.Sơ đồ quy trình nghiệp vụ ra vào tòa nhà

23


24


×