MỤC LỤC LỜI CAM ĐOAN MỤC LỤC DANH MỤC BẢNG DANH MỤC HÌNH MỞ ĐẦU 1 Chương 1. PHÂN TÍCH BÀI TOÁN 2 1.1. Mô tả bài toán 2 1.2. Chức năng chính của hệ thống 2 1.3. Khả thi về kỹ thuật 3 1.4. Khả thi về kinh tế 3 1.5. Khả thi về vận hành 3 1.6. Phạm vi của đề tài 3 1.6.1. Chức năng chính 3 1.6.2. Giao diện 4 1.6.3. Phạm vi 4 Chương 2. GIỚI THIỆU CÔNG NGHỆ SỬ DỤNG 5 2.1. Một số hệ quản trị cơ sở dữ liệu khả thi 5 2.1.1. Oracle 5 2.1.2. SQL Server 6 2.1.3. DB2 7 2.2. Đánh giá các công nghệ khác 8 2.2.1. CC++ 8 2.2.2. Visual C++ 9 2.2.3. Visual Basic 9 2.2.4. Visual C 10 2.2.5. Java 11 2.3. Kết luận và đánh giá 12 Chương 3. PHÂN TÍCH HỆ THỐNG 13 3.1. Sơ đồ chức năng 13 3.2. Biểu đồ chức năng 15 3.2.1. Chức năng tổng quát hệ thống 15 3.2.2. Quản lý nhận trả xe 15 3.2.3. Giải quyết sự cố và báo cáo 16 3.3. Sơ đồ hoạt động 16 3.3.1. Nhận xe vé ngày và vé tháng 16 3.3.2. Trả xe vé ngày và vé tháng 18 3.4. Class diagram tầng Entity 18 3.6. Thiết kế cơ sở dữ liệu 29 3.6.1. Thiết kế bảng 29 3.6.2 Sơ đồ thực thể quan hệ ERD 44 3.7.Thiết kế giao diện 46 3.8. Hướng dẫn cài đặt 55 KẾT LUẬN VÀ KIẾN NGHỊ 59 TÀI LIỆU THAM KHẢO 60
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN QUỲNH ANH
Phần mềm quản lý bãi đỗ xe của tòa nhà Hapulico
Hà Nội- 2015
Trang 2TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN QUỲNH ANH
Phần mềm quản lý bãi đỗ xe của tòa nhà Hapulico
Chuyên ngành: Công nghệ thông tin
Mã ngành:
NGƯỜI HƯỚNG DẪN: Thạc Sĩ Phí Thị Hải Yến
Hà Nội - 2015
Trang 3LỜI CAM ĐOAN Tôi tên: NGUYỄN QUỲNH ANH, là sinh viên trường đại học tài nguyên
và môi trường Hà Nội
Tôi Xin cam đoan: Toàn bộ nội dung đồ án tốt nghiệp “PHẦN MỀM QUẢN LÝ BÃI ĐỖ XE CỦA TÒA NHÀ HAPULICO” Do tôi tự học tập từ bài
giảng các môn học của Quý thầy cô, nghiên cứu trên Internet, sách báo, và các tàiliệu trong và ngoài nước có liên quan Không sao chép hay sử dụng bài làm của bất
kỳ ai khác
Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình trước Quý thầy
Cô và nhà trường
Hà Nội ngày 01 tháng 06 năm 2015
NGƯỜI CAM ĐOAN
Trang 4MỤC LỤC LỜI CAM ĐOAN
MỤC LỤC
DANH MỤC BẢNG
DANH MỤC HÌNH
MỞ ĐẦU 1
Chương 1 PHÂN TÍCH BÀI TOÁN 2
1.1 Mô tả bài toán 2
1.2 Chức năng chính của hệ thống 2
1.3 Khả thi về kỹ thuật 3
1.4 Khả thi về kinh tế 3
1.5 Khả thi về vận hành 3
1.6 Phạm vi của đề tài 3
1.6.1 Chức năng chính 3
1.6.2 Giao diện 4
1.6.3 Phạm vi 4
Chương 2 GIỚI THIỆU CÔNG NGHỆ SỬ DỤNG 5
2.1 Một số hệ quản trị cơ sở dữ liệu khả thi 5
2.1.1 Oracle 5
2.1.2 SQL Server 6
2.1.3 DB2 7
2.2 Đánh giá các công nghệ khác 8
2.2.1 C/C++ 8
2.2.2 Visual C++ 9
2.2.3 Visual Basic 9
2.2.4 Visual C# 10
2.2.5 Java 11
2.3 Kết luận và đánh giá 12
Trang 5Chương 3 PHÂN TÍCH HỆ THỐNG 13
3.1 Sơ đồ chức năng 13
3.2 Biểu đồ chức năng 15
3.2.1 Chức năng tổng quát hệ thống 15
3.2.2 Quản lý nhận trả xe 15
3.2.3 Giải quyết sự cố và báo cáo 16
3.3 Sơ đồ hoạt động 16
3.3.1 Nhận xe vé ngày và vé tháng 16
3.3.2 Trả xe vé ngày và vé tháng 18
3.4 Class diagram tầng Entity 18
3.6 Thiết kế cơ sở dữ liệu 29
3.6.1 Thiết kế bảng 29
3.6.2 Sơ đồ thực thể quan hệ ERD 44
3.7.Thiết kế giao diện 46
3.8 Hướng dẫn cài đặt 55
KẾT LUẬN VÀ KIẾN NGHỊ 59
TÀI LIỆU THAM KHẢO 60
Trang 6DANH MỤC BẢNG
Bảng 3.1 Các phần tử dữ liệu của khách hàng 29
Bảng 3.2 Bảng khách hàng 30
Bảng 3.3 Các phần tử dữ liệu của loại xe 31
Bảng 3.5 Các phần tử dữ liệu của loại vé 32
Bảng 3.6 Bảng Loại vé 32
Bảng 3.7 Các phần tử dữ liệu của khu 32
Bảng 3.8 Bảng Khu 33
Bảng 3.9 Các phần tử dữ liệu của phiếu bồi thường 33
Bảng 3.10 Bảng phiếu bồi thường 34
Bảng 3.11 Các phần tử dữ liệu của xe 34
Bảng 3.12 Bảng Xe 35
Bảng 3.13 Các phần tử dữ liệu của vé 36
Bảng 3.14 Bảng vé 37
Bảng 3.15 Các phần tử dữ liệu của phiếu thanh toán 37
Bảng 3.16 Phiếu thanh toán 38
Bảng 3.17 Các phần tử dữ liệu của nhân viên 38
Bảng 3.18 Bảng Nhân viên 39
Bảng 3.19 Các phần tử dữ liệu của lịch sử 40
Bảng 3.20 Bảng Lịch sử 40
Bảng 2.21 Các phần tử dữ liệu của biên bản 41
Bảng 2.22 Bảng Biên bản 41
Bảng 2.23 Các phần tử dữ liệu của quyền nhân viên 42
Bảng 2.24 Quyền nhân viên 43
Bảng 2.25 Các phần tử dữ liệu của quyền 43
Bảng 2.26 Bảng Quyền 44
Trang 7DANH MỤC HÌNH
Hình 3.1: Sơ đồ phân rã chức năng 14
Hình 3.2: Biểu đồ chức năng tổng quát hệ thống 15
Hình 3.3: Biểu đồ quản lý nhận trả xe 15
Hình 3.4: Biểu đồ chức năng báo cáo và giải quyết sự cố 16
Hình 3.5: Sơ đồ hoạt động nhận xe vé tháng- ngày 17
Hình 3.6: Sơ đồ hoạt động trả xe vé tháng- ngày 18
Hình 3.7: Class diagram tầng Entity 22
Hình 3.8: Class diagram tầng DAL (Layer DataAccess) 29
Hình 3.9: Sơ đồ thực thể quan hệ ERD 45
Hình 3.10: Đăng nhập hệ thống 46
Hình 3.11: Menu quản lý thông tin hệ thống 46
Hình 3.12: Menu quản lý chức năng nhân – trả xe 46
Hình 3.13: Menu quản lý chức năng báo cáo 47
Hình 3.14: Menu chức năng chung hệ thống 47
Hình 3.15: Quản lý thông tin khách hàng 48
Hình 3.16: Tìm kiếm thông tin khách hàng 48
Hình 3.17: Chức năng cấp quyền tài khoản nhân viên 49
Hình 3.18: Chức năng kích hoạt và hủy kích hoạt tài khoản nhân viên 49
Hình 3.19: Quản lý thông tin vé 50
Hình 3.20: Chức năng kiểm tra khu trống 50
Hình 3.21: Chức năng thanh toán vé 51
Hình 3.22: Chức năng gia hạn vé tháng 51
Hình 3.23: Chức năng ghi lịch sử ra/ vào của xe sử dụng vé tháng 52
Hình 3.24: Quản lý thông tin phiếu bồi thường 52
Hình 3.25: Chức năng quản lý biên bản 53
Hình 3.26: Chức năng báo cáo vé trong ngày 53
Hình 3.27: Chức năng báo cáo vé trong tháng 54
Hình 3.28: Thông tin phần mềm 54
Trang 8MỞ ĐẦU
Lý do chọn đề tài
Hiện nay, công nghệ thông tin ở nước ta đang phát triển rất mạnh mẽ tuynhiên đa số người dân, các doanh nghiệp, cơ quan, tổ chức cỡ vừa và nhỏ vẫn chưatiếp cận được với các ứng dụng mà công nghệ thông tin đem lại
Quản lý thường là vấn đề khá phức tạp đối với bất kỳ một công việc nào đóbởi vì công việc dù lớn hay nhỏ đều có mối liên quan chặt chẽ bên trong nó, việc xử
lý số liệu không chặt chẽ cũng là một vấn đề khá nghiêm trọng…
Đặc biệt, Hapulico là tổ hợp các công trình thương mại, văn phòng, nhà ởcao cấp Do đó việc sắp xếp xe đỗ hợp lý đã là một vấn đề rất phức tạp nhưng việcquản lý dữ liệu của bãi đỗ xe sẽ còn phức tạp và khó khăn hơn Quản lý dữ liệu bãi
đỗ xe đòi hỏi phải có tính chất tổng quát đồng thời phải thiết kế các trường dữ liệusao cho phù hợp và có hiệu quả trong tìm kiếm, báo cáo thống kê Việc xây dựng dữliệu phải đồng bộ với việc quản lý tuy nhiên do trình độ khoa học đang trên đà pháttriển công tác quản lý chưa đồng bộ với công tác xây dựng cơ sở dữ liệu cho nênluôn đi sau khá xa Hiện tại, việc quản lý vẫn còn phụ thuộc vào thống kê trên giấy
và việc tìm kiếm, tổng hợp thống kê mất rất nhiều thời gian Hơn nữa trong quản lý
dữ liệu lại đòi hỏi có tính chất tổng hợp mà hiện tại dữ liệu bãi đỗ xe đã thống kêbao giờ cũng thiếu thông tin, không đồng bộ dữ liệu, thất lạc dữ liệu Đặc biệt,nhân viên quản lý không thể tra cứu thông tin một cách nhanh chóng, chính xác khi
có yêu cầu Để giải quyết bất cập nêu trên và giúp cho công việc quản lý bãi đỗ xecủa tòa nhà Hapulico đơn giản hơn, mang lại hiệu quả, tính liền mạch nhất quántrong các hoạt động hàng ngày, tránh được những sai sót không đáng có Bằngnhững kiến thức được học, em đã xây dựng lên “Phần mềm quản lý bãi đỗ xe củatòa nhà Hapulico”
Cấu trúc đồ án như sau:
Chương 1: Phân tích bài toán
Chương 2: Giới thiệu công nghệ sử dụng
Chương 3: Phân tích hệ thống
Trang 9Chương 1 PHÂN TÍCH BÀI TOÁN
1.1 Mô tả bài toán
Sau khi khảo sát Tòa nhà Hapulico số 1, Nguyễn Huy Tường, Thanh Xuân,
Hà Nội có tổ chức như sau:
Trong bộ phận quản lý có: người quản lý, các nhân viên: nhân viên bảo vệ,nhân viên kiểm kê
Tòa nhà Hapulico gồm nhiều tòa nhà khác nhau, nhưng có đặc điểm chungđều để xe dưới tầng hầm Tầng hầm mỗi tòa nhà gồm 2 lối: lối cho xe vào và lốicho xe ra Tầng hầm được chia thành 4 khu dành cho 3 loại xe: 1 khu để xe máy, 1khu để xe đạp, 2 khu để xe ôtô Xe ôtô yêu cầu không được quá 16 chỗ Khi kháchđến gửi xe, nhân viên bảo vệ trông xe phải nhận dạng xe theo bảng phân loại, kiểmtra chỗ trống trong tầng hầm Sau đó, ghi vé đưa cho khách và hướng dẫn xe vàokhu, đồng thời ghi những thông tin trên vé vào sổ xe vào
Khi khách lấy xe, người coi xe kiểm tra vé xem vé thật hay giả, đối chiếuvới vé xe Nếu vé giả hay không đúng xe thì nhân viên bảo vệ không cho nhận xe.Ngược lại, thì viết phiếu thanh toán và thu tiền của khách, đồng thời ghi các thôngtin cần thiết vào sổ xe ra
Khi khách đến báo cáo có sự cố thì kiểm tra xe trong sổ xe vào và sổ xe ra
để xác minh xem xe có gửi không và đã lấy ra chưa Nếu không đúng như vậy thìkhông giải quyết Trong trường hợp ngược lại, tiến hành kiểm tra xe ở hiện trường.Nếu đúng như sự việc xảy ra thì nhân viên kiểm kê tiến hành lập biên bản giảiquyết và trong trường hợp cần thiết thì viết phiếu chi bồi thường cho khách, thống
kê tổng hợp tình hình trong giữ xe, lập báo cáo để báo cáo lên bộ phận quản lý củatòa nhà
Trang 10- Giải quyết sự cố: Cho phép kiểm tra sổ gửi xe, kiểm tra hiện trường, lập biênbản trường hợp vi phạm và lập phiếu bồi thường.
- Báo cáo: Tổng hợp, thống kê số vé xe trong ngày và số vé trong tháng, kháchhàng vi phạm và khách hàng được bồi thường
1.3 Khả thi về kỹ thuật
Đa số các hệ quản trị cơ sở dữ liệu ngày nay cung cấp cho chúng ta các khảnăng lưu trữ và xử lý một khối lượng dữ liệu lớn có liên kết chặt chẽ với nhau, chophép thực hiện các tác vụ quản lý mà vẫn đảm bảo tính nhất quán, không dư thừa
dữ liệu, tính bảo mật… Các công cụ lập trình cho phép ánh xạ đến các cơ sở dữliệu và thực hiện tương tác qua lại giữa giao diện phần mềm và cơ sở dữ liệu, một
số công cụ lập trình còn cho phép người lập trình có thể thiết kế giao diện trực tiếpthông qua việc kéo, thả Về các công nghệ này chúng ta sẽ đề cập chi tiết trongchương sau
1.4 Khả thi về kinh tế
Em xây dựng chương trình quản lý bãi đỗ xe của tòa nhà Hapulico với mụctiêu hoàn thành tốt đồ án, rèn luyện và trau dồi thêm kiến thức phục vụ công việcsau khi trường Sau khi hoàn thành sẽ liên hệ với các công ty, tập thể có nhu cầu đểbiến đồ án này thành sản phẩm thực
1.5 Khả thi về vận hành
Hệ thống không đòi hỏi cao về mặt cấu hình (so với các máy tính phổ thônghiện nay) Ngày nay công nghệ thông tin rất phát triển, các hệ thống máy tính rađời với cấu hình tốt được cải thiện rất nhiều so với trước đây Vì vậy, trong thực tếhoàn toàn có thể đáp ứng yêu cầu hệ thống với các thông số:
- Chip set: Intel
Trang 11a Đăng nhập/ Đăng xuất
b Quản lý hệ thống: Cho phép quản lý khách hàng, quản lý nhân viên, quản lý
vé, quản lý khu, quản lý quyền, quản lý xe và loại xe
c Nhận xe – Trả xe: Cho phép ghi vé nhận xe, phân loại vé, nhận – trả xe véngày: kiểm tra khu trống, thanh toán, nhận xe vé tháng: gia hạn vé tháng, lịch
sử ra vào, xem thông tin khách hàng sử dụng, xem lịch sử vé ngày và xem lịch
sử vé tháng
d Báo cáo: Cho phép lập phiếu bồi thường, lập biên bản, báo cáo số vé trongngày, báo cáo số vé trong tháng, xem danh sách xe khách hàng vi phạm vàxem danh sách xe khách hàng được bồi thường
1.6.2 Giao diện
Giao diện tương đối dễ sử dụng Các thao tác, nghiệp vụ cần thuận tiện,nhanh chóng Giao diện hài hòa gần gũi với người sử dụng
1.6.3 Phạm vi
Hệ thống đáp ứng việc cập nhật dữ liệu thường xuyên liên tục hàng ngày
Đáp ứng lưu trữ với khối lượng dữ liệu lớn
Cho phép truy xuất thông tin, dữ liệu một cách nhanh chóng
Trang 12Chương 2 GIỚI THIỆU CÔNG NGHỆ SỬ DỤNG
2.1 Một số hệ quản trị cơ sở dữ liệu khả thi
Hệ quản trị cơ sở dữ liệu là phần mềm hay hệ thống được thiết kế để quảntrị một cơ sở dữ liệu [6] Cụ thể, các chương trình thuộc loại này hỗ trợ khả nănglưu trữ, sửa chữa, xóa và tìm kiếm thông tin trong một cơ sở dữ liệu Có rất nhiềuloại hệ quản trị Cơ sở dữ liệu khác nhau: từ phần mềm nhỏ chạy trên máy tính cánhân cho đến những hệ quản trị phức tạp chạy trên một hoặc nhiều siêu máy tính
Tuy nhiên, đa số hệ quản trị cơ sở dữ liệu trên thị trường đều có một đặcđiểm chung là sử dụng ngôn ngữ truy vấn theo cấu trúc (Structured QueryLanguage - SQL)
Các hệ quản trị cơ sở dữ liệu phổ biến được nhiều người biết đến
là MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix, v.v
Phần lớn các hệ quản trị Cơ sở dữ liệu kể trên hoạt động tốt trên nhiều hệđiều hành khác nhau như Linux, Unix và MacOS ngoại trừ SQL Servercủa Microsoft chỉ chạy trên hệ điều hành Windows
Ưu điểm của hệ quản trị cơ sở dữ liệu:
Quản lý được dữ liệu dư thừa
Đảm báo tính nhất quán cho dữ liệu
Tạo khả năng chia sẻ dữ liệu nhiều hơn
Cải tiến tính toàn vẹn cho dữ liệu
Nhược điểm:
Hệ quản trị cơ sở dữ liệu tốt thì khá phức tạp
Hệ quản trị cơ sở dữ liệu tốt thường rất lớn chiếm nhiều dung lượng bộ nhớ
Giá cả khác nhau tùy theo môi trường và chức năng
Hệ quản trị cơ sở dữ liệu được viết tổng quát cho nhiều người dùng thì thườngchậm
2.1.1 Oracle
Oracle bao gồm nhiều sản phẩm xây dựng ứng dụng và người dùng cuốiđược trang bị các giải pháp kỹ thuật thông tin hoàn hảo Oracle dễ dàng sử dụng
Trang 13trên các hệ điều hành từ các máy tính cá nhân đến các hệ thống xử lý song songlớn [6].
Oracle Server có chức năng lưu giữ và quản lý các thông tin Phiên bảnOracle 7 quản lý cơ sở dữ liệu với tất cả các ưu điểm của cấu trúc cơ sở dữ liệu,khả năng lưu giữ và thực thi các đối tượng cơ sở dữ liệu như các procedure và cáctrigger
Oracle Server là một hệ quản trị cơ sở dữ liệu điều khiển:
Lưu giữ dữ liệu trên các vùng dữ liệu đã thiết kế
Truy xuất dữ liệu cho ứng dụng, dùng các kỹ thuật tương đối tối ưu
Bảo mật dữ liệu, cấp quyền khác nhau cho các user
Liên kết và toàn vẹn dữ liệu khi cơ sở dữ liệu được phân bố trên mạng
Ngoài các chức năng chuẩn cung cấp các tiện ích cơ sở dữ liệu, Oracle Server
có thêm một số chức năng sau: Procedural Option, Distributed Option, ParallelServer Option, Trusted Oracle
Các sản phẩm của Oracle bao gồm:
SQL: Là ngôn ngữ dùng để truy xuất cơ sở dữ liệu quan hệ, kể cả Oracle
Có thể được dùng với mỗi công cụ Oracle khi có yêu cầu truy xuất dữ liệu
PL/SQL: Dùng để viết các ứng dụng luận lý và thao tác dữ liệu bên ngoài
cơ sở dữ liệu
SQL Plus: Là sản phẩm Oracle, trong đó có thể dùng cả SQL và PL/SQL
Có các ngôn ngữ lệnh riêng để điều khiển hành vi của sản phẩm và định dạngoutput từ các truy vấn SQL
Đây là hệ Cơ sở dữ liệu mạnh với một số ưu điểm là tính bảo mật cao, độ
an toàn dữ liệu cao, cơ chế quyền hạn rõ ràng, ổn định, dễ cài đặt, dễ triển khai và
dễ nâng cấp lên phiên bản mới Ngoài ra phần mềm này còn tích hợp thêmPL/SQL- Structure Language Tạo thuận lợi cho các lập trình viện viết cácTrigger, StoreProcedure, Package
2.1.2 SQL Server
Trang 14SQL (Structured Query Language – ngôn ngữ truy vấn có cấu trúc) là phầnmềm được phát triển bởi hãng Microsoft SQL server là một ngôn ngữ máy tínhphổ biến để tạo, sửa và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu SQL Server là
hệ thống quản trị cơ sở dữ liệu quan hệ sử dụng Transaction-SQL để trao đổi dữliệu giữa Client Computer và Server Computer [5] Một hệ quản trị cơ sở dữ liệuquan hệ gồm database, database engine và các ứng dụng để quản lý dữ liệu và các
bộ phận khác Khả năng SQL phát triển vượt xa so với việc phục vụ các hệ quản trị
cơ sở dữ liệu đối tượng-quan hệ, mặc dù đây là mục đích ban đầu khi xây dựngSQL và truy xuất dữ liệu vẫn là chức năng quan trọng của nó
SQL hỗ trợ trong việc triển khai cơ sở dữ liệuphân tán và phát triển ứng dụngtrên Internet
SQL cho phép chúng ta lập trình kết nối với nhiều ngôn ngữ lập trình khác đểxây dựng các ứng dụng(VB, C, C++, )
SQL là ngôn ngữ có tính tương thích cao dễ tiếp cận và dễ sử dụng phù hợpvới các doanh nghiệp vừa và nhỏ
Trang 15phiên bản là giống nhau và 10% còn lại được dành riêng cho việc tối ưu hóa nềntảng Về mặt kỹ thuật, đây là một tin tốt do hệ thống database có thể hoạt động vớibất cứ nền tảng nào mà khách hàng đang sử dụng Tuy nhiên, IBM dường như
"quên" việc phải quảng bá rộng những điều này Có người cho rằng họ quá hàilòng vì nắm trong tay cơ sở dữ liệu mạnh và chờ đợi mọi người tự khám phá Dovậy, DB2 được gọi là "secret database"(cơ sở dữ liệu ngầm)
2.2 Đánh giá các công nghệ khác
Để xây dựng hoàn chỉnh phần mềm quản lý, ngoài DBMS( DatabaseManagement System ) ta còn cần công cụ lập trình đủ mạnh, thích hợp để viếtphần mềm Một số lựa chọn có thể cân nhắc:
Chương trình viết bằng C là tập hợp các hàm riêng biệt, giúp cho việc chegiấu mã và giữ liệu trở nên dễ dàng Hàm được viết bởi những người lập trình khácnhau không ảnh hưởng đến nhau và có thể được biên dịch riêng biệt trước khi rápnối thành chương trình
Một chương trình được viết bằng ngôn ngữ lập trình C sẽ tối tối ưu, chạyvới tốc độ cao và tiết kiệm bộ nhớ.ngôn ngữ lập trình C có tính mềm dẻo rất cao từcach khai báo biến có thể trùng lặp trinh cũng một chương trình do C có con trỏ
Trang 16nên có thể can thiệp sâu vào các hệ điều hành, các phân vùng dữ liệu quan trọng.
do C có tính mềm dẻo như trên lên C cũng có nhược điểm của nó Khi chạy nhữngchương trình lớn cần các thuật toán phức tạp
Có thể nói C++ là sự mở rộng (đáng kể) của C Điều đó có nghĩa là mọi khảnăng, mọi khái niệm trong C đều dùng được trong C++
Vì trong C++ sử dụng gần như toàn bộ các khái niệm, định nghĩa, các kiểu
dữ liệu, các cấu trúc lệnh, các hàm và các công cụ khác của C, nên yêu cầu bắtbuộc đối với các đọc giả C++ là phải biết sử dụng tương đối thành thạo ngôn ngữC
Trong C có thể dùng một hàm chuẩn mà bỏ qua câu lệnh #include để khaibáo nguyên mẫu của hàm được dùng Điều này không báo lỗi khi biên dịch, nhưng
có thể dẫn đến kết quả sai khi chạy chương trình
2.2.2 Visual C++
Microsoft Visual C++ (còn được gọi là MSVC) là một sản phẩm Môitrường phát triển tích hợp (IDE) cho các ngôn ngữ lập trình C, C++, và C++/CLIcủa Microsoft Nó có các công cụ cho phát triển và gỡ lỗi mã nguồn C++, đặc biệt
là các mã nguồn viết cho Microsoft Windows API, DirectX API, vàMicrosoft NET Framework
Visual C++ là môt phần mềm lập trình hướng đối tượng được phát triển trên
cơ sở là ngôn ngữ lập trình C và C++
Phương pháp thiết kế hướng đối tượng vừa mới phát triển nhằm giúp nhàphát triển khai thác được sức mạnh của đối tượng và ngôn ngữ lập trình hướng đốitượng, dùng các lớp và đối tượng như là khối xây dựng cơ sở
OOP (ngôn ngữ lập trình hướng đối tượng ) là ngôn ngữ hiện thực trong đóchương trình được tổ chức như tập hợp những đối tượng hợp tác với nhau, mỗi đốitượng đại diện cho một instance của một vài lớp và những lớp mà chúng là thànhviên của một lớp phân cấp thông qua quan hệ thừa kế
2.2.3 Visual Basic
Trang 17Visual Basic (viết tắt VB) là một ngôn ngữ lập trình hướng sự kiện driven) và môi trường phát triển tích hợp (IDE) kết bó được phát triển đầu tiên bởiAlan Cooper dưới tên Dự án Ruby (Project Ruby), và sau đó được Microsoft mua
(event-và cải tiến nhiều [2] Phiên bản cũ của Visual Basic bắt nguồn phần lớn từ BASIC
và để lập trình viên phát triển các giao diện người dùng đồ họa (GUI) theo mô hìnhphát triển ứng dụng nhanh (Rapid Application Development, RAD); truy cập các
cơ sở dữ liệu dùng DAO (Data Access Objects), RDO (Remote Data Objects), hayADO (ActiveX Data Objects); lập các điều khiển và đối tượng ActiveX Ngày nay,Visual Basic đã được thay thế bằng Visual Basic NET
Dùng VB6 là cách nhanh và tốt nhất để lập trình cho Microsoft Windows vìVB6 sẽ cung cấp cho bạn một bộ công cụ hoàn chỉnh để đơn giản hóa việc triểnkhai lập trình ứng dụng cho MS Windows
Visual Basic còn có hai dạng khác là Visual Basic for Application(VBA) vàVBScrip VBA là ngôn ngữ nằm phía sau các chương trình Word, Excel,MSAccess, MSProject, v.v còn gọi là Macros Dùng VBA trong MS Office, ta
có thể làm tăng chức năng bằng cách tự động hóa các chương trình Còn VBScriptđược dùng cho Internet và trong chính hệ điều hành Window
Visual Basic chứa đến hàng trăm câu lệnh (commands), hàm (functions) và
từ khóa (keywords) Rất nhiều commands, functions liên hệ trực tiếp đến MSWindows GUI Những người mới bắt đầu có thể viết chương trình bằng cách họcchỉ một vài command, functions và keywords Khả năng của ngôn ngữ này chophép những người chuyên nghiệp hoàn thành bất kỳ điều gì nhờ sử dụng ngôn ngữlập trình MS Windows nào khác
2.2.4 Visual C#
Visual C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởiMicrosoft, là phần khởi đầu cho kế hoạch NET của họ Tên của ngôn ngữ baogồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu sốthường Microsoft phát triển C# dựa trên C++ và Java C# được miêu tả là ngônngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java
Trang 18C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổitiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC.
C#, theo một hướng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhấtđến NET Framework mà tất cả các chương trình NET chạy, và nó phụ thuộcmạnh mẽ vào Framework này Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát
và hủy bỏ bởi trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừu tượngkhác chẳng hạn như class, delegate, interface, exception, v.v, phản ánh rõ ràngnhững đặc trưng của NET runtime
So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ở một vài đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây:
Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn Hầu hết cácđối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộđệm Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đốitượng thuộc bộ thu rác (garbage-collector) thì chỉ được gọi bằng cách thamchiếu
Các đối tượng không thể được giải phóng tường minh
Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng (abstractinterfaces) Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi
C# thì an-toàn-kiểu (typesafe) hơn C++
Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay vì "int a[5]")
Kiểu thứ tự được thay thế bằng tên miền không gian (namespace)
Trang 19Có các môi trường lập trình đồ họa như Visual Java, Symantec Cafe
Có khả năng truy cập dữ liệu từ xa thông qua cầu nối JDBC (Java DataBaseConnectivity)
Hỗ trợ các lớp hữu ích, tiện lợi trong lập trình các ứng dụng mạng (Socket)cũng như truy xuất Web
Hỗ trợ lập trình phân tán (Remote Method Invocation ) cho phép một ứngdụng có thể được xử lý phân tán trên các máy tính khác nhau
Ngôn ngữ hoàn toàn hướng đối tượng
Ngôn ngữ đa nền cho phép một chương trình có thể thực thi trên các hệ điềuhành khác nhau (MS Windows, UNIX, Linux) mà không phải biên dịch lại chươngtrình Phương châm của java là "Viết một lần , Chạy trên nhiều nền" (Write Once,Run Anywhere)
Ngôn ngữ đa luồng, cho phép trong một chương trình có thể có nhiều luồngđiều khiển được thực thi song song nhau, rất hữu ích cho các xử lý song song
Ngôn ngữ phân tán, cho phép các đối tượng của một ứng dụng được phân
bố và thực thi trên các máy tính khác nhau
Ngôn ngữ động, cho phép mã lệnh của một chương trình được tải từ mộtmáy tính về máy của người yêu cầu thực thi chương trình
Ngôn ngữ an toàn, tất cả các thao tác truy xuất vào các thiết bị vào ra đềuthực hiện trên máy ảo nhờ đó hạn chế các thao tác nguy hiểm cho máy tính thật
Ngôn ngữ đơn giản, dễ học, kiến trúc chương trình đơn giản, trong sáng
2.3 Kết luận và đánh giá
Với đề này, trong khuôn khổ của mình, em sẽ sử dụng các công cụ chính sau:
SQL Server vì công cụ này có khá nhiều ưu điểm phù hợp với khôn khổ project
Đa số người dùng máy tính khá quen với các hệ điều hành Windows nên việc sửdụng SQL Server cũng có ít có trục trặc khi tiến hành ứng dụng
Visual C# là công cụ cho phép người lập trình nhìn trước được phần giao diệncủa chương trình, kết nối đến các hệ quản trị cơ sở dữ liệu linh hoạt
Trang 212.2 Đối chiếu vé_xe
2.3 Thanh toán vé
2.4 Ghi sổ xe ra
3.1 Kiểm tra sổ gửi
3.2 Kiểm tra hiện trường
3.3 Lập biên bản
3.4 Bồi thường sự cố
Hình 3.1: Sơ đồ phân rã chức năng
Trang 233.2.3 Giải quyết sự cố và báo cáo
Hình 3.4: Biểu đồ chức năng báo cáo và giải quyết sự cố
3.3 Sơ đồ hoạt động
3.3.1 Nhận xe vé ngày và vé tháng
Trang 24Hình 3.5: Sơ đồ hoạt động nhận xe vé tháng- ngày
Trang 253.3.2 Trả xe vé ngày và vé tháng
Hình 3.6: Sơ đồ hoạt động trả xe vé tháng- ngày
3.4 Class diagram tầng Entity
Trang 29Hình 3.7: Class diagram tầng Entity
Trang 303.5 Class diagram tầng DAL (DataAccess)