1. Trang chủ
  2. » Giáo Dục - Đào Tạo

đồ án Hệ thống quản lí bãi đỗ xe tự động

32 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Huỳnh Trọng Nghĩa – 22520003Lê Trần Gia Bảo - 22520105

 Nhận xét của giảng viên

Trang 3

BẢNG CHI TIẾT CÔNG VIỆC TỪNG THÀNH VIÊN

Thiết kế dữ liệu X X Hoàn thành

Chức năng nhận dạng biển số xe X Hoàn thành

Chức năng lập phiếu gửi xe X Hoàn thành

Chức năng xuất hình biển số xe khi xe ra X Hoàn thành

Chức năng xuất xe khỏi bãi X Hoàn thành

Chức năng hiện thị chỗ trống trong bãi X X Hoàn thành

Chức năng thống kê doanh thu trong ngày X X Hoàn thànhChức năng tra cứu hạn sử dụng của phiếu

Trang 4

Thiết kế kiến trúc phần mềm X Hoàn thành

Lời mở đầu

 Nhận được được sự hỗ trợ từ thầy Đỗ Văn Tiến – Phó khoa khoa KHMT Qua sựhướng dẫn của thầy, nhóm chúng em thực hiện đồ án: “Hệ thống quản lí bãi đỗxe tự động”

Có thể thầy sẽ thầy buồn cười, nhưng ý tưởng cho đồ án này được hình thành bằng việc “đi tắm” (Người sáng lập ra ý tưởng này đi tắm ở trong một tòa nhà

trong VinHomes Grand Park – nơi giúp nhóm em hình thành ý tưởng cho đề tàinày)

Đề tài mà nhóm làm được dựa trên khuôn mẫu là hệ thống bãi giữ xe của

VinHomes, với các tính năng được tham khảo, nhưng đồng thời nhóm cũng xemxét về các hạn chế về phần cứng, nên đã đưa ra các tính năng mới làm phương ánthay thế cho tính năng gốc của hệ thống được dựa trên.

Chúng em đã rất cố gắng để chỉnh chu đề tài nhất có thể Tuy vậy nhóm em vẫnkhó tránh khỏi các sai sót nhất định Rất mong sự đóng góp ý kiến từ thầy đểnhóm em phát hiện các sai lầm và khắc phục trong tương lai.

Trang 5

ĐỒ ÁN NHẬP MÔN CÔNG NGHỆ PHẦN MỀMMỤC LỤC

 Nội dung

PHẦN I: THÔNG TIN CHUNG 5

1 Môi trường phát triển ứng dụng dự kiến 5

2 Yêu cầu đặt ra cho hệ thống: 6

2.1 Lập phiếu giữ xe theo ngày: 6

2.2 Lập phiếu giữ xe theo tháng: 7

2.3 Nhận trả tiền gửi xe 7

2.4 Thống kê số chỗ trống còn lại 8

2.5 Lập báo cáo doanh thu trong ngày hiện tại 8

2.6 Tra cứu hạn sử dụng phiếu tháng 8

PHẦN III: MÔ HÌNH USE-CASE 9

1 Sơ đồ use-case 9

2 Đặc tả use-case 9

2.1 Đặc tả use-case lấy thông tin từ biển số xe: 9

Trang 6

2.1.1 Tóm tắt 9

2.1.1.1 Dòng sự kiện chính 9

2.1.2 Các yêu cầu đặc biệt 9

2.1.3 Trạng thái hệ thống khi bắt đầu thực hiện use-case 10

2.1.4 Trạng thái hệ thống sau khi thực hiện use-case 10

2.1.5 Điểm mở rộng 10

2.2 Đặc tả use-case lập phiếu giữ xe theo ngày/tháng 10

2.2.1 Tóm tắt 10

2.2.2 Các yêu cầu đặc biệt 10

2.2.3 Trạng thái hệ thống khi bắt đầu thực hiện use-case 10

2.2.4 Trạng thái hệ thống sau khi thực hiện use-case 10

2.2.5 Điểm mở rộng 11

2.3 Đặc tả use-case đối chiếu biển số xe lúc vào/ra 11

2.3.1 Tóm tắt 11

2.3.2 Các yêu cầu đặc biệt 11

2.3.3 Trạng thái hệ thống khi bắt đầu thực hiện use-case 11

2.3.4 Trạng thái hệ thống sau khi thực hiện use-case 11

2.3.5 Điểm mở rộng 12

2.5 Đặc tả use-case kiểm tra thời hạn phiếu gửi xe (phiếu tháng) 12

2.5.1 Tóm tắt 12

2.5.2 Các yêu cầu đặc biệt 12

2.5.3 Trạng thái hệ thống khi bắt đầu thực hiện use-case 12

2.5.4 Trạng thái hệ thống sau khi thực hiện use-case 12

2.5.5 Điểm mở rộng 12

2.6 Đặc tả use-case kiểm tra chỗ trống trong bãi 12

2.6.1 Tóm tắt 12

2.6.2 Các yêu cầu đặc biệt 12

2.6.3 Trạng thái hệ thống khi bắt đầu thực hiện use-case 12

2.6.4 Trạng thái hệ thống sau khi thực hiện use-case 12

2.6.5 Điểm mở rộng 13

2.7 Đặc tả use-case nhận thông tin báo cáo doanh thu 13

Trang 7

2.7.1 Tóm tắt 13

2.7.2 Các yêu cầu đặc biệt 13

2.7.3 Trạng thái hệ thống khi bắt đầu thực hiện use-case 13

2.7.4 Trạng thái hệ thống sau khi thực hiện use-case 13

2.7.5 Điểm mở rộng 13

PHẦN IV: PHÂN TÍCH 13

1 Sơ đồ lớp (mức phân tích) 13

2 Danh sách các lớp đối tượng và quan hệ 14

3 Mô tả chi tiết từng lớp đối tượng 14

2 Mô tả chi tiết các kiểu dữ liệu trong sơ đồ logic 15

PHẦN VI: THIẾT KẾ KIẾN TRÚC 16

1 Kiến trúc hệ thống 16

2 Mô tả chi tiết từng thành phần trong hệ thống 19

PHẦN VII: THIẾT KẾ GIAO DIỆN 20

1 Sơ đồ luồng màn hình 20

2 Danh sách các màn hình 20

3 Mô tả chi tiết các màn hình 21

3.1 Màn hình tổng 21

3.2 Màn hình bảng điều khiển (xe vào) 22

3.3 Màn hình bảng điều khiển (xe ra) 24

Trang 8

TÀI LIỆU THAM KHẢO 29

Trang 9

PHẦN I: THÔNG TIN CHUNG

1 Môi trường phát triển ứng dụng dự kiến

 Visual Studio 2022 SQLite

 Windows 11 Python

Trang 10

1.1 Mục đích của đề tài

Phần mềm quản lí bãi đỗ xe thông minh là một giải pháp giúp giải quyết cácvấn đề được đề cập ở trên, nâng cao hiệu quả trong việc giải quyết vấn đề thực tiễnngày nay.

1.2 Các phần mềm cùng loại hiện đang có Phần mềm quản lí bãi đỗ xe ở UIT Phần mềm quản lí bãi đỗ xe ở VinHomes1.3 Những hạn chế của vấn đề đó

 Chưa cho biết vị trí đỗ xe xảy ra việc việc xe chạy lòng vòng để kiếm chỗđể

 Chưa cho biết thông tin chỗ trống

 Chưa có một bảng giúp tổng hợp thông tin doanh thu của bãi đỗ

2 Yêu cầu đặt ra cho hệ thống:

 Lập phiếu giữ xe theo ngày Lập phiếu giữ xe theo tháng  Nhận trả tiền gửi xe

 Thống kê số chỗ trống còn lại

 Lập báo cáo doanh thu trong ngày hiện tại Tra cứu hạn sử dụng phiếu tháng

2.1 Lập phiếu giữ xe theo ngày:

Chức năng này là chức năng quan trọng, nòng cốt của phần mềm, xe khi vào bãi sẽ được hệ thống cung cấp một mã phiếu, và sẽ được chọn đăng kí theo phiếu

(ngày), và loại xe.

- Sau khi đăng kí, cho xe vào bãi.

Trang 11

2.2 Lập phiếu giữ xe theo tháng:

Tương tự với chức năng 2.1, nhưng xe sẽ được chọn đăng kí theo dạng phiếutháng (chỉ trả tiền một lần cho cả tháng)

 Quy trình:

- Nếu chưa có phiếu tháng, chủ xe vẫn chạy xe vào và dừng lại ở vị tríđịnh sẵn sao cho camera thấy rõ biển số

- Người quản lí sẽ chụp biển số lại và trích xuất thông tin biển

- Người quản lí sẽ đăng kí thông tin gồm biển số, mã phiếu, loại phiếu(tháng), và loại xe.

- Sau khi đăng kí, cho xe vào bãi.

- Nếu đã có phiếu tháng, sau khi nhập mã phiếu thì thông tin sẽ được hiểnthị ngay, và chủ xe có thể vào ngay lập tức, không cần thêm thông tin gìthêm

2.3 Nhận trả tiền gửi xe

Hệ thống sẽ tính xem xe đã ở bãi đỗ được bao nhiêu ngày, và sẽ tính giá gửixe tương ứng với số ngày đó, trong trường hợp chủ xe có vé tháng, sẽ không tínhtiền gửi xe.

 Quy trình:

- Chủ xe tiến hành chạy xe ra bãi, dừng lại ở nơi được quy định nhằmmục đích kiểm tra xem có phải là chiếc xe lưu trong phiếu không- Người quản lí sẽ nhập mã phiếu đã cấp trước đó cho chủ phiếu, hệ

thống sẽ cung cấp thông tin loại phiếu, và hình chụp của biển số xe lúcvào bãi ứng với mã phiếu đó Tiến hành kiểm tra tính hợp lệ

- Nếu là phiếu ngày, hệ thống sẽ tính tiền và chủ xe sẽ trả tiền theo nhưgiá tính và rời bãi

- Nếu là phiếu tháng, sau khi kiểm tra hợp lệ xong chủ xe có thể rời bãingay.

Trang 12

- Người quản lí chuyển sang tab “Chỗ trống hiện tại”

- Hệ thống đánh dấu vị trí đó đã được đỗ và hiển thị trên màn hình2.5 Lập báo cáo doanh thu trong ngày hiện tại

Hệ thống sẽ hiển thị thông tin báo cáo doanh thu trong ngày, đồng thờicả về tỉ lệ phân bố lượng xe vào trong ngày

Quy trình

-  Người quản lí sẽ chuyển sang tab “Báo cáo”

- Hệ thống sẽ thu thập dữ liệu đã được lưu và sẽ tiến hành hiển thị thôngtin lên màn hình.

2.6 Tra cứu hạn sử dụng phiếu tháng

Tính năng này nhóm chưa hoàn thành phát triển.

PHẦN III: MÔ HÌNH USE-CASE

1 Sơ đồ use-case2 Đặc tả use-case

2.1 Đặc tả use-case lấy thông tin từ biển số xe:2.1.1 Tóm tắt

 Người quản lí lấy thông tin biển số thông qua hệ thống một cách tự động2.1.1.1 Dòng sự kiện chính

1 Khi người quản lí đang ở trong phần mềm, chuyển sang tab “Xe vào” bằng cách nhấn chuột.

2 Người quản lí kiểm tra xem camera ở chiều xe vào đã được chọn đúngchưa (tránh nhầm lẫn với các camera khác nếu hệ thống kết nối với nhiềucamera)

3 Nếu chưa, chọn lại camera cho đúng

Trang 13

4 Người quản lí hướng dẫn chủ xe để xe đúng vị trí (nếu chưa để đúng) vànhấn nút chụp, biển số xe sẽ được hiển thị trên màn hình ngay lập tức.

 Người quản lí chọn đúng camera cho làn xe vào2.1.3 Trạng thái hệ thống khi bắt đầu thực hiện use-case

Trang 14

- Tương tự với trường hợp bỏ trống ô “Loại xe”2.2.2 Các yêu cầu đặc biệt

- Bắt buộc phải điền ô loại phiếu và loại xe.2.2.3 Trạng thái hệ thống khi bắt đầu thực hiện use-case

- Sau khi nhận dạng biển số xe xong

2.2.4 Trạng thái hệ thống sau khi thực hiện use-case

- Thành công: Xuất hộp thoại thông báo thành công, và vẫn ở tab gốc- Thất bại: Xuất hộp thoại lỗi

2.2.5 Điểm mở rộng

Có cơ chế cho biết vị trí đỗ xe.

2.3 Đặc tả use-case đối chiếu biển số xe lúc vào/ra

2.3.1 Tóm tắt

Lúc cho xe xuất khỏi bãi, người quản lí yêu cầu chủ xe cung cấp phiếu, saukhi có phiếu người quản lí tra cứu trong hệ thống và sau đó đối chiếu biển số.

2.3.1.1 Dòng sự kiện chính

1 Chủ xe cung cấp mã phiếu cho người quản lí

2 Người quản lí tiến hành tra cứu trong phần mềm bằng cách nhập mã phiếuvào ô “Mã phiếu”

3 Hệ thống sẽ kiểm tra và nếu có tồn tại mã phiếu thì sẽ hiện biển số xe lúcxe vào bãi lên màn hình, và trong khung hình cũng sẽ hiển thị camera chiếu vô biển số xe ở làn ra để người quản lí đối chiếu

Trang 15

2.3.2 Các yêu cầu đặc biệt

Bắt buộc phải là một mã phiếu hợp lệ có tồn tại trong hệ thống mới có thểtra cứu

2.3.3 Trạng thái hệ thống khi bắt đầu thực hiện use-case Người quản lí đang ở giao diện tab “Xe ra”2.3.4 Trạng thái hệ thống sau khi thực hiện use-case

-  Nếu thành công: xuất thông tin biển số xe để đối chiếu

-  Nếu thất bại (mã phiếu không hợp lệ): Hệ thống không in ra gì hết2.3.5 Điểm mở rộng

2.5 Đặc tả use-case kiểm tra thời hạn phiếu gửi xe (phiếu tháng) *chưahoàn thành*

2.6 Đặc tả use-case kiểm tra chỗ trống trong bãi

2.6.1 Tóm tắt

 Người quản lí sẽ mở giao diện tab “Chỗ trống” ra, và hệ thống sẽ báo cáotrạng thái hiện tại của bãi đỗ xe.

2.6.1.1 Dòng sự kiện chính

1 Người quản lí mở giao diện tab “Chỗ trống”

2 Hệ thống tự động hiện ra tất cả các vị trí của bãi đỗ xe, và đồng thời đánhdấu các vị trí đã đỗ bằng màu xanh lá.

Trang 16

1 Người quản lí mở giao diện tab “Báo cáo”

2 Hệ thống sẽ tự động hiển thị số lượng xe đang có trong bãi (phụ trợ để cócái nhìn tương quan trong bãi đỗ xe), tỉ lệ phần trăm các loại xe, số lượng phiếuđược lập trong ngày, số lượng phiếu được lập trong tháng, doanh thu ngày, doanhthu tháng.

PHẦN IV: PHÂN TÍCH

1 Sơ đồ lớp (mức phân tích)

Trang 17

2 Danh sách các lớp đối tượng và quan hệ3 Mô tả chi tiết từng lớp đối tượng

Trang 18

2 Mô tả chi tiết các kiểu dữ liệu trong sơ đồ logic

Bảng PHIEU:

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ Ghi chú

1 MAPHIEU int Khóa chính Mã phiếu, tự động tạo ra khi có xevào bãi2 LOAIPHIEU string NOT NULL Loại phiếu

5 THOIGIAN date FOREIGNKEY Thời gian xe vào bãi6 CHODAU int NOT NULL Vị trí đậu được đánh dấu7 TRONGBAI string NOT NULL Xe đang có trong bãi hay không

Bảng DOANHTHU:

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ Ghi chú1 THOIGIAN date PRIMARYKEY  Ngày lập báo cáo2 DOANHTHUNGAY int NOT NULL Doanh thu ngày đó

3 SO_OTO int NOT NULL Số ô tô vào bãi trong ngày4 SO_XEMAY int NOT NULL Số xe máy vào bãi trong ngày5 SO_XEDAP int NOT NULL Số xe đạp vào bãi trong ngày

Trang 19

PHẦN VI: THIẾT KẾ KIẾN TRÚC

 – Business Logic Layer (BLL): 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ínhnguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data AccessLayer 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ựchiệ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.

 – Data Access Layer (DAL): Lớp này có chức năng giao tiếp với hệ quản trị CSDLnhư 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…).

Ưu điểm

Trang 20

 Việc phân chia thành từng lớp giúp cho code được tường minh hơn Nhờ vàoviệc chia ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt nhưgiao diện, xử lý, truy vấn thay vì để tất cả lại một chỗ Nhằm giảm sự kếtdính.

 Dễ bảo trì khi được phân chia, thì một thành phần của hệ thống sẽ dễ thayđổi Việc thay đổi này có thể được cô lập trong 1 lớp, hoặc ảnh hưởng đếnlớp gần nhất mà không ảnh hưởng đến cả chương trình.

 Dễ phát triển, tái sử dụng: khi chúng ta muốn thêm một chức năng nào đó thìviệc lập trình theo một mô hình sẽ dễ dàng hơn vì chúng ta đã có chuẩn đểtuân theo Và việc sử dụng lại khi có sự thay đổi giữa hai môi trường(Winform sang Webfrom ) thì chỉ việc thay đổi lại lớp GUI.

 Dễ bàn giao Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thìcông việc bàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm đượcnhiều thời gian.

 Dễ phân phối khối lượng công việc Mỗi một nhóm, một bộ phận sẽ nhậnmột nhiệm vụ trong mô hình 3 lớp Việc phân chia rõ ràng như thế sẽ giúpcác lập trình viên kiểm soát được khối lượng công việc của mình.

Phân tích chi tiết từng layer trong mô hình 3 lớp.

 1. Presentation Layer (GUI):

Có hai thành phần chính sau đây với những tác vụ cụ thể:

 UI Components: gồm các thành phần tạo nên giao diện của ứng dụng (GUI).Chúng chịu trách nhiệm thu nhận và hiển thị dữ liệu cho người dùng… Vídụ: textbox, button, combobox, …

Trang 21

 UI Process Components: là thành phần chịu trách nhiệm quản lý các quátrình chuyển đổi giữa các UI… Ví dụ: Sắp xếp quá trình kiểm tra thông tinkhách hàng:

1 Hiển thị màn hình tra cứu ID

2 Hiển thị màn hình thông tin chi tiết khách hàng tương ứng3 Hiển thị màn hình liên lạc với khách hàng.

 Ví dụ: Thực hiện mua một đơn hàng trên tiki qua nhiều bước: kiểm tra góihàng còn không, tính tổng chi phí, cho phép giao dịch và sắp xếp việc giaohàng.

 Bussiness Components: chịu trách nhiệm kiểm tra các quy tắc nghiệp vụ,ràng buộc logic và thực hiện các công việc Các thành phần này cũng thựchiện các dịch vụ mà Service Interface cung cấp và Business Workflows sẽ sửdụng nó.

 Ví dụ: Tiếp tục ví dụ ở trên Bạn sẽ cần một Bussiness Component để kiểmtra gói hàng có khả dụng không, hay một component để tính tổng chi phí…

Trang 22

 Bussiness Entities: thường được sử dụng như Data Transfer Objects (DTO).Bạn có thể sử dụng để truyền dữ liệu giữa các lớp (Presentation và DataLayer) 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.

 Ví dụ: tạo 1 class Student lưu trữ các dữ liệu về tên, ngày sinh, ID, lớp.3 Data Layer (DAL):

 Data Access Logic Components: chịu trách nhiệm chính lưu trữ và truy xuấtdữ liệu từ các nguồn dữ liệu (Data Sources) như XML, file system… Hơnnữa còn tạo thuận lợi cho việc dễ cấu hình và bảo trì.

  Service Agents: giúp bạn gọi và tương tác với các dịch vụ từ bên ngoài mộtcách dễ dàng và đơn giản.

2 Mô tả chi tiết từng thành phần trong hệ thống

Trang 23

PHẦN VII: THIẾT KẾ GIAO DIỆN

2 Màn hình bảng điềukhiển (xe vào) Các chức năng giúp đưa xe vào bãi sẽ ở trongmàn hình này

3 Màn hình bảng điềukhiển (xe ra) Màn hình này chứa các chức năng đưa xe ra bãi

Trang 24

4 Màn hình hiển thị sốchỗ trống còn lại Màn hình này hiển thị toàn bộ bãi đỗ xe và các vịtrí đã được đỗ

5 Màn hình báo cáo Màn hình này báo cáo lại doanh thu cũng như số phiếu đã được lập

3 Mô tả chi tiết các màn hình

3.1 Màn hình tổng

*Lưu ý: đây là giao diện mà các tab đi sau đều phải tuân theo, nên nhóm emgọi đây là màn hình tổng, màn hình này đồng thời cũng giúp chuyển đổi qua lạicác tab.

Các thành phần trong màn hình trên:

# Itemname Control Datatype I/O Description

1 tab_XeVao Button Text O Chuyển sang tab Xe Vào

Trang 25

2 tab_XeRa Button Text O Chuyển sang tab Xe Ra

3 tab_ChoTrong Button Text O Chuyển sang tab ChỗTrống

4 tab_BaoCao Button Text O Chuyển sang tab Báo Cáo

5 nightControlBox1 Button O Phóng to/ Thu nhỏ/ Ẩn/Hiện app

3.2 Màn hình bảng điều khiển (xe vào)

Các thành phần trong màn hình trên:

1 videoBox PictureBox O Hiển thị camera được chọntrong cboDevice

2 labelCam Label Text O Cho biết tác dụng của ôcboDevice

Ngày đăng: 03/07/2024, 11:00

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w