1.1.3 Vai trò Java đóng vai trò quan trọng trong phát triển ứng dụng đa nền tảng, web và doanh nghiệp, di động, hệ thống nhúng, máy chủ và điện toán đám mây, cũng như trong phát triển ph
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CƠ SỞ 1
Sinh viên thực hiện: Phạm Công Hiền
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CƠ SỞ 1
Sinh viên thực hiện: Phạm Công Hiền
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Đà Nẵng, ngày 31 tháng 5 năm 2024 Giảng viên hướng dẫn
Trang 4LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành đến tất cả những người đã đóng góp và hỗ trợ trong quá trình thực hiện đồ án của em Đây là một cơ hội quan trọng để em chia sẻ những kiến thức và kỹ năng mà em đã tích lũy trong suốt thời gian học tập Em cũng xin chân thành cảm ơn đến giảng viên hướng dẫn của em với sự chỉ dẫn và hỗ trợ tận tâm của cô đã giúp em có những hướng phân tích và nghiên cứu trong quá trình làm đồ án của mình Em cũng xin chân thành cảm ơn ban lãnh đạo nhà trường
đã cho em cơ hội được học hỏi những kiến thức kinh nghiệm từ các giảng viên ưu
tú để em có thêm các kiến thức trong quá trình làm đồ án.
Em xin trân trọng cảm ơn
Sinh viên Sinh viên
Phạm Công Hiền Trần Công Minh
Trang 5MỤC LỤC
DANH MỤC CÁC HÌNH ẢNH 4
DANH MỤC CÁC TỪ VIẾT TẮT 4
MỞ ĐẦU 5
1 Giới thiệu 5
2 Mục tiêu của đề tài 5
3 Đối tượng, phạm vi và phương pháp tiếp cận 5
4 Bố cục của đề tài 6
CHƯƠNG 1 TỔNG QUAN VỀ CÔNG CỤ VÀ CÔNG NGHỆ 7
1.1 JAVA 7
1.1.1 Khái niệm 7
1.1.2 Lịch sử phát triển 7
1.1.3 Vai trò 8
1.1.4 Đặc điểm 8
1.1.5 Cấu trúc 9
1.1.6 Ví dụ 9
1.2 SQL……… 11
1.2.1 Khái niệm 11
1.1.2 Lịch sử phát triển 12
1.2.3 Vai trò 13
1.2.4 Đặc điểm 13
1.2.5 Cấu trúc 13
1.2.6 Ví dụ 14
1.3 Java Swing 15
1.3.1 Khái niệm 15
1.3.2 Lịch sử phát triển 15
1.3.3 Vai trò 16
1.3.4 Đặc điểm 16
1.3.5 Cấu trúc 17
1.3.6 Ví dụ 18
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 19
2.1 Phân tích hệ thống 19
Trang 62.1.1 Chức năng 19
2.1.2 Giao diện 20
2.2 Thiết kế 21
CHƯƠNG 3 XÂY DỰNG ỨNG DỤNG QUẢN LÍ BÃI GIỮ XE 22
3.1 Sơ lược về ứng dụng 22
3.1.1 Trang đăng nhập 22
3.1.2 Giao diện ứng dụng 22
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 25
1 Kết luận 25
2 Hướng phát triển 25
TÀI LIỆU THAM KHẢO 25
Trang 7DANH MỤC CÁC HÌNH ẢNH
Hình 1 Ví dụ Java cơ bản 10
Hình 2 Kết quả Java cơ bản 11
Hình 3 Ví dụ Bảng SQL 14
Hình 4 Ví dụ câu lệnh SQL cơ bản 14
Hình 5 Kết quả SQL cơ bản… 14
Hình 6 Ví dụ Java Swingt cơ bản 18
Hình 7 Kết quả Java Swingt cơ bản 18
Hình 8 Giao diện đăng nhập 22
Hình 9 Giao diện admin 22
Hình 10 Trang quản lí nhân viên 23
Hình 11 Thanh toán hoá đơn 23
Hình 12 Trang thống kê 24
Hình 13 Trang quản lí bãi 24
Hình 14 Trang quản lí vé 25
Hình 15 Trang quản lí vị trí đỗ xe 25
DANH MỤC CÁC TỪ VIẾT TẮT
1 Structured Query Language SQL
JVM
JFC
JVM
Trang 8MỞ ĐẦU
1 Giới thiệu
Trong bối cảnh đô thị hóa ngày càng phát triển, nhu cầu về quản lý các bãi giữ xe một cách hiệu quả và thông minh trở nên cấp thiết hơn bao giờ hết Bãi giữ xe không chỉ là nơi đỗ xe mà còn đóng vai trò quan trọng trong việc giảm thiểu ùn tắc giao thông và bảo đảm an toàn cho phương tiện của người dân.
Dự án này được triển khai nhằm đáp ứng nhu cầu đó, với mục tiêu tạo ra một ứng dụng quản lý bãi giữ xe thông minh, tiện dụng và hiệu quả Ứng dụng sẽ
hỗ trợ người quản lý bãi giữ xe trong việc theo dõi tình trạng bãi đỗ, quản lý
vé xe, thu phí và các chức năng khác một cách dễ dàng Đồng thời, người sử dụng cũng có thể dễ dàng tìm kiếm và đặt chỗ đỗ xe trước, tiết kiệm thời gian
và công sức.
Phần báo cáo này sẽ trình bày chi tiết về quá trình phát triển dự án, từ việc nghiên cứu và phân tích nhu cầu, thiết kế giao diện người dùng, đến triển khai và kiểm thử hệ thống Hy vọng rằng qua báo cáo này, quý thầy cô và các bạn sẽ có cái nhìn tổng quan và sâu sắc hơn về giải pháp mà nhóm chúng tôi
đề xuất, cũng như những lợi ích mà ứng dụng mang lại cho xã hội.
2 Mục tiêu của đề tài
- Tổng hợp các kiến thức đã học như: Java, JavaSwing, SQL,…
- Xây dựng giao diện ứng dụng thân thiện dễ sử dụng
- Có thêm kiến thức và kinh nghiệm giải quyết vấn đề trong quá trình làmsản phẩm
3 Đối tượng, phạm vi và phương pháp tiếp cận
a Đối tượng
Khách hàng mua sắm trực tuyến
- Cá nhân có nhu cầu mua sắm đa dạng, từ sản phẩm tiêu dùng hàng ngày đến cácmặt hàng chuyên biệt.- Người sử dụng phương tiện: Muốn tìm và đặt chỗ đỗ xenhanh chóng
- Cơ quan quản lý đô thị: Cần dữ liệu để quy hoạch và quản lý giao thông
b Phạm vi
Ứng dụng tập trung vào bãi giữ xe tư nhân và công cộng trong đô thị, với các chứcnăng quản lý vé xe, thu phí, và giám sát tình trạng bãi đỗ
Trang 9c Phương pháp Tiếp cận
- Nghiên cứu nhu cầu: Khảo sát người dùng và người quản lý để xác định yêu cầu
- Thiết kế: Tạo giao diện trực quan bằng Java Swing, đảm bảo hệ thống bảo mật và
dễ sử dụng
- Phát triển: Sử dụng Java cho backend và SQL cho cơ sở dữ liệu
- Kiểm thử và triển khai: Thực hiện kiểm thử để đảm bảo ứng dụng hoạt động mượt
mà trước khi triển khai
- Đánh giá và cải tiến: Thu thập phản hồi từ người dùng và liên tục nâng cấp hệthống
4 Bố cục của đề tài
Sau phần Mở đầu, báo cáo được trình bày trong ba chương, cụ thể như sau:
Chương 1 Tổng quan về công cụ và công nghệ Trong chương này, báo
cáo trình bày các khái niệm, đặc điểm, công nghệ được sử dụng để làm ứng dụng.
Chương 2 Phân tích thiết kế Ứng dụng quản lí bãi giữ xe Nội dung
chương bao gồm các công đoạn để thiết kế ứng dụng và giải quyết các vấn đề.
Chương 3 Xây dựng Ứng dụng quản lí bãi giữ xe Chương này báo cáo
kết quả, các chức năng được cài đặt trong hệ thống
Cuối cùng là Kết luận, Tài liệu tham khảo liên quan đến quá trình làm đồ
án
Trang 10CHƯƠNG 1 TỔNG QUAN VỀ CÔNG CỤ VÀ CÔNG NGHỆ
1.1 JAVA
1.1.1 Khái niệm
Java là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động.
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak.
Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write
Once, Run Anywhere – WORA) Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó.
Java 2 và sự phát triển tiếp theo (1996-2006)
- 1996: Java Development Kit (JDK) 1.0 ra mắt.
- 1998: Java 2 (J2SE 1.2) giới thiệu nhiều cải tiến, bao gồm Swing.
- 2004: Java 5 (J2SE 5.0) ra mắt với Generics, Enhanced for Loop, và các công
cụ hỗ trợ.
Oracle và các phiên bản hiện đại (2007-nay)
- 2009: Oracle mua lại Sun Microsystems.
- 2011: Oracle phát hành Java SE 7.
- 2014: Java SE 8 ra mắt với Lambda Expressions và Stream API.
7
Trang 11- 2017: Java 9 giới thiệu Project Jigsaw (modularity).
- 2018: Java 11, phiên bản LTS, được phát hành.
- 2021-2022: Các phiên bản như Java 16, Java 17 (LTS) tiếp tục được phát hành, mang lại nhiều cải tiến.
Java đã trải qua một quá trình phát triển dài và liên tục, trở thành một trong những ngôn ngữ lập trình phổ biến và được sử dụng rộng rãi nhất trên thế giới Với cộng đồng lớn mạnh và sự hỗ trợ liên tục từ Oracle, Java vẫn là lựa chọn hàng đầu cho nhiều ứng dụng từ web, di động đến hệ thống nhúng và điện toán đám mây
1.1.3 Vai trò
Java đóng vai trò quan trọng trong phát triển ứng dụng đa nền tảng, web và doanh nghiệp, di động, hệ thống nhúng, máy chủ và điện toán đám mây, cũng như trong phát triển phần mềm nguồn mở Java cung cấp tính linh hoạt, hiệu suất và bảo mật cao, là một trong những công nghệ phổ biến nhất trong cộng đồng lập trình hiện nay
1.1.4 Đặc điểm
1 Hướng đối tượng (OOP):
- Java là một ngôn ngữ lập trình hướng đối tượng, cho phép mô hình hóa các đốitượng thực tế vào trong mã nguồn, tạo ra mã dễ đọc, dễ hiểu và dễ bảo trì
2 Đa nền tảng (Platform-independent):
- Mã nguồn Java được biên dịch thành bytecode, có thể chạy trên bất kỳ hệ thốngnào có Java Virtual Machine (JVM), giúp việc phát triển ứng dụng đa nền tảng trởnên dễ dàng
3 Bảo mật cao:
- Java có một loạt các tính năng bảo mật như quản lý bộ nhớ động, kiểm soát truycập và cơ chế sandbox, giúp ngăn chặn các cuộc tấn công từ phía người dùng
4 Thu gọn và đơn giản:
- Java có cú pháp sáng sủa, dễ học và dễ sử dụng, với một số nguyên tắc căn bảnnhư kiểm tra kiểu tĩnh và quản lý bộ nhớ tự động
5 Bộ thư viện phong phú:
- Java có một bộ thư viện lớn, gồm hàng ngàn lớp và phương thức, cung cấp cáccông cụ và API cho nhiều mục đích khác nhau như xử lý chuỗi, giao tiếp mạng, đồhọa và cơ sở dữ liệu
Trang 121.1.5 Cấu trúc
package mypackage;
public class MyClass {
public static void main(String[] args) {
// Khai báo biến
Trang 13Hình 1 Ví dụ Java cơ bản
10
Trang 14Hình 2 Kết quả Java cơ bản
1.2 SQL
1.2.1 Khái niệm
SQL (Structured Query Language) là một ngôn ngữ tiêu chuẩn dùng để quản lý
và thao tác cơ sở dữ liệu quan hệ SQL cho phép người dùng thực hiện các thao tác khác nhau trên dữ liệu, bao gồm:
1 Truy vấn dữ liệu: Sử dụng lệnh SELECT để truy xuất dữ liệu từ một hoặc nhiều bảng dựa trên các điều kiện cụ thể.
2 Thêm dữ liệu: Sử dụng lệnh INSERT để thêm bản ghi mới vào bảng.
3 Cập nhật dữ liệu: Sử dụng lệnh UPDATE để sửa đổi dữ liệu hiện có trong bảng.
4 Xóa dữ liệu: Sử dụng lệnh DELETE để xóa bản ghi khỏi bảng.
5 Quản lý cơ sở dữ liệu: Bao gồm các lệnh như CREATE TABLE để tạo bảng mới, ALTER TABLE để thay đổi cấu trúc bảng, và DROP TABLE để xóa bảng khỏi cơ sở dữ liệu.
6 Kiểm soát quyền truy cập: Sử dụng các lệnh GRANT và REVOKE để cấp hoặc thu hồi quyền truy cập của người dùng đối với cơ sở dữ liệu SQL hỗ trợ các phép toán và hàm xử lý dữ liệu phức tạp, như tính toán tổng, trung bình, đếm số lượng bản ghi, và lọc dữ liệu theo điều kiện Nó cũng cho phép tạo và quản lý các mối quan hệ giữa các bảng thông qua khóa chính (Primary Key) và khóa ngoại (Foreign Key).
Nhờ tính linh hoạt và mạnh mẽ, SQL được sử dụng rộng rãi trong các hệ quản trị cơ sở dữ liệu (DBMS) như MySQL, PostgreSQL, Oracle, SQL Server, và SQLite.
11
Trang 151.1.2 Lịch sử phát triển
Lịch sử phát triển của SQL bắt đầu từ những năm 1970 và trải qua nhiều giai đoạnquan trọng:
1970: Khái niệm ban đầu:
- Edgar F Codd, một nhà khoa học máy tính tại IBM, xuất bản bài báo "ARelational Model of Data for Large Shared Data Banks," giới thiệu mô hình cơ sở
dữ liệu quan hệ Đây là nền tảng lý thuyết cho SQL
1973-1974: Nghiên cứu và phát triển:
- Donald D Chamberlin và Raymond F Boyce tại IBM phát triển một ngôn ngữtruy vấn dựa trên mô hình của Codd, ban đầu gọi là SEQUEL (Structured EnglishQuery Language) Sau đó, do vấn đề bản quyền, tên này được rút gọn thành SQL
1978: Phiên bản đầu tiên:
- IBM phát hành hệ thống cơ sở dữ liệu thử nghiệm System R, sử dụng SQL làmngôn ngữ truy vấn Đây là một trong những hệ thống đầu tiên sử dụng SQL vàchứng minh được tính khả thi của mô hình cơ sở dữ liệu quan hệ
1980s: Thương mại hóa:
- Oracle (công ty phần mềm) phát hành Oracle V2 vào năm 1979, trở thành hệthống cơ sở dữ liệu thương mại đầu tiên hỗ trợ SQL
- IBM phát hành DB2 vào đầu thập kỷ 1980, sử dụng SQL
- Các công ty khác như Microsoft và Sybase cũng bắt đầu phát triển các hệ thốngquản lý cơ sở dữ liệu hỗ trợ SQL
1986: Chuẩn hóa SQL:
- Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) và Tổ chức Tiêu chuẩn hóa Quốc tế(ISO) công nhận SQL là một tiêu chuẩn Phiên bản chuẩn đầu tiên được gọi là SQL-86
- Phiên bản chuẩn này được mở rộng và cải tiến qua các năm với các phiên bảnnhư SQL-89, SQL-92 (SQL2), SQL:1999 (SQL3), SQL:2003, SQL:2008,SQL:2011, SQL:2016, và SQL:2019
SQL đã phát triển từ một công cụ nghiên cứu trở thành một tiêu chuẩn công nghiệptoàn cầu, được sử dụng rộng rãi trong các hệ thống quản lý cơ sở dữ liệu hiện đại
1.2.3 Vai trò
12
Trang 16SQL (Structured Query Language) đóng vai trò quan trọng trong quản lý và thao tác
dữ liệu trong các hệ thống cơ sở dữ liệu quan hệ (RDBMS), với các vai trò chính nhưsau:
1 Truy vấn dữ liệu: Sử dụng lệnh SELECT để truy xuất và tổng hợp thông tin từcác bảng
2 Quản lý dữ liệu: Thêm (INSERT), cập nhật (UPDATE), và xóa (DELETE) dữliệu trong các bảng
3 Quản lý cấu trúc cơ sở dữ liệu: Tạo mới (CREATE), sửa đổi (ALTER), và xóa
bỏ (DROP) các đối tượng cơ sở dữ liệu như bảng, chỉ mục và views
4 Kiểm soát truy cập: Quản lý quyền truy cập với lệnh GRANT và REVOKE,bảo vệ dữ liệu khỏi truy cập trái phép
5 Đảm bảo tính toàn vẹn dữ liệu: Sử dụng các ràng buộc như PRIMARY KEY,FOREIGN KEY, UNIQUE, và CHECK để đảm bảo tính chính xác và toàn vẹncủa dữ liệu
6 Xử lý giao dịch: Quản lý các giao dịch với lệnh COMMIT, ROLLBACK, vàSAVEPOINT, đảm bảo tính nhất quán và an toàn của dữ liệu
Nhờ các vai trò này, SQL trở thành ngôn ngữ không thể thiếu trong quản lý cơ sở dữliệu quan hệ, cung cấp công cụ mạnh mẽ cho việc truy xuất, xử lý, và bảo vệ dữ liệu
1.2.4 Đặc điểm
- Tiêu chuẩn: Là ngôn ngữ tiêu chuẩn trong quản lý cơ sở dữ liệu quan hệ
- Dễ học và sử dụng: Cú pháp gần gũi với ngôn ngữ tự nhiên, dễ học và sửdụng
- Mạnh mẽ và linh hoạt: Cho phép truy vấn, quản lý dữ liệu, cấu trúc cơ sở dữliệu, và kiểm soát truy cập
- Di động và mở rộng: Có thể chạy trên nhiều hệ quản trị cơ sở dữ liệu và phùhợp với nhu cầu từ nhỏ đến lớn
- An toàn và bảo mật: Hỗ trợ bảo mật và kiểm soát truy cập thông qua các cơchế như GRANT và REVOKE
- Hỗ trợ giao dịch: Đảm bảo tính toàn vẹn và nhất quán của dữ liệu qua cácgiao dịch
Trang 181.3 Java Swing
1.3.1 Khái niệm
Java Swing là một bộ công cụ GUI (Graphical User Interface) tích hợp sẵn trongJava, được sử dụng để phát triển ứng dụng đồ họa trên nền tảng desktop Nó cungcấp một loạt các thành phần giao diện người dùng như JButton (nút bấm),JTextField (ô nhập liệu văn bản), JCheckBox (hộp kiểm), và JList (danh sách) đểxây dựng các giao diện người dùng phong phú và tương tác
Swing cũng cung cấp các lớp quản lý bố trí (LayoutManager) như BorderLayout,FlowLayout và GridLayout, giúp tổ chức và sắp xếp các thành phần trên cửa sổhoặc panel một cách linh hoạt
Mô hình sự kiện của Swing cho phép xử lý các sự kiện như nhấn nút, nhập dữ liệuhoặc di chuyển chuột một cách dễ dàng thông qua việc kết nối các đối tượng nghe(listener) với các thành phần giao diện người dùng
Một điểm mạnh của Swing là tính đa nền tảng của nó Mã Java Swing có thể chạytrên nhiều hệ điều hành khác nhau mà không cần sửa đổi, mang lại sự linh hoạt vàtiện lợi trong việc phát triển ứng dụng đa nền tảng
Cuối cùng, Swing cũng cho phép tuỳ chỉnh giao diện người dùng thông qua việc
áp dụng các "Look and Feel" khác nhau như Metal, Nimbus, hoặc Synth, giúp tạo
ra trải nghiệm người dùng đa dạng và hấp dẫn
1.3.2 Lịch sử phát triển
1 Khởi đầu (1997-1998): Java Swing ra đời như một phần của Java FoundationClasses (JFC), được giới thiệu vào năm 1997 với phiên bản JDK 1.2 Ban đầu, nóthừa hưởng một số ý tưởng từ AWT (Abstract Window Toolkit) nhưng cung cấpcác thành phần giao diện người dùng mạnh mẽ hơn và tích hợp mô hình sự kiệnnâng cao
2 Sự phát triển và ổn định (1999-2005): Trong giai đoạn này, Java Swing trở thànhmột phần quan trọng trong việc phát triển ứng dụng desktop Java Nhiều bản cậpnhật và cải tiến đã được thực hiện, bao gồm việc bổ sung các thành phần mới, cảithiện hiệu suất và khả năng tuỳ biến, và tối ưu hóa để tương thích tốt hơn trên cácnền tảng khác nhau
3 Challenges và sự cạnh tranh (2006-2010): Trong giai đoạn này, Java Swing phảiđối mặt với sự cạnh tranh từ các công nghệ khác như JavaFX cũng như sự gia tăngcủa các nền tảng web và di động Mặc dù vậy, Swing vẫn tiếp tục được sử dụngrộng rãi trong các ứng dụng desktop do tính linh hoạt và khả năng tùy biến cao củanó
15