LINK TẢI LUẬN VĂN MIỄN PHÍ CHO AE KET-NOI
MỤC LỤC
LỜI CAM ĐOAN ii
LỜI CẢM ƠN iii
TÓM TẮT iv
SUMMARY v
MỤC LỤC vi
DANH MỤC HÌNH ix
DANH MỤC BẢNG x
LỜI MỞ ĐẦU xi
CHƯƠNG 1: TỔNG QUAN 1
1.1. GIỚI THIỆU ĐỀ TÀI 1
1.1.1. Tên đề tài 1
1.1.2. Lý do chọn đề tài 1
1.1.3. Mục tiêu của đề tài 1
1.1.4. Đối tượng và phạm vi nghiên cứu 1
1.1.4.1. Đối tượng 1
1.1.4.2. Phạm vi nghiên cứu 1
1.1.4.3. Phương pháp nghiên cứu 1
1.1.5. Bố cục luận văn: 2
1.2. CÔNG NGHỆ SỬ DỤNG 2
1.2.1. Tổng quan về hệ điều hành Android 2
1.2.2. Tổng quan về công cụ Android Studio 3
1.2.3. Tổng quan về ngôn ngữ lập trình Java 4
1.2.4. Tổng quan về cơ sở dữ liệu SQLite 4
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 6
vi
2.1. PHÂN TÍCH 6
2.2. THIẾT KẾ HỆ THỐNG 7
2.2.1. Danh sách Actor và Use Case 7
2.2.2. Sơ đồ Use Case tổng quát 7
2.3. THIẾT KẾ CƠ SỞ DỮ LIỆU 7
2.3.1. Bảng câu hỏi trắc nghiệm 8
2.3.2. Bảng biển báo giao thông 8
2.3.3. Bảng lịch sử điểm 9
CHƯƠNG 3: CÀI ĐẶT 10
3.1. YÊU CẦU 10
3.2. GIAO DIỆN ỨNG DỤNG 10
3.2.1. Giao diện màn hình chính 10
3.2.2. Giao diện màn hình chọn đề trắc nghiệm bằng lái xe mô tô hạng A1 11
3.2.3. Giao diện màn hình chọn đề trắc nghiệm bằng lái xe mô tô hạng A2 12
3.2.4. Giao diện màn hình chọn đề trắc nghiệm bằng lái xe ô tô hạng B2 13
3.2.5. Giao diện màn hình làm trắc nghiệm 14
3.2.6. Giao diện màn hình dialog chọn câu hỏi 15
3.2.7. Giao diện màn hình sau khi kết thúc bài làm 16
3.2.8. Giao diện màn hình xem điểm 17
3.2.9. Giao diện màn hình tra cứu biển báo giao thông 18
3.2.10. Giao diện màn hình menu pop-up xem biển báo giao thông theo loại 19
3.2.11. Giao diện màn hình xem lịch sử điểm 20
3.2.12. Giao diện màn hình menu pop-up xem lịch sử điểm theo bằng lái 21
CHƯƠNG 4: ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 22
4.1. ĐÁNH GIÁ KẾT QUẢ 22
4.1.1. Chức năng đã làm được 22
vii
4.1.2. Chức năng chưa làm được 22
4.2. HƯỚNG PHÁT TRIỂN 22
TÀI LIỆU THAM KHẢO 23
viii
DANH MỤC HÌNH
Hình 1: Sơ đồ phân rã chức năng 6
Hình 2: Sơ đồ Use Case tổng quát 7
Hình 3: Giao diện màn hình chính 10
Hình 4: Giao diện màn hình chọn đề trắc nghiệm bằng lái xe mô tô hạng A1 11
Hình 5: Giao diện màn hình chọn đề trắc nghiệm bằng lái xe mô tô hạng A2 12
Hình 6: Giao diện màn hình chọn đề trắc nghiệm bằng lái xe ô tô hạng B2 13
Hình 7: Giao diện màn hình làm trắc nghiệm 14
Hình 8: Giao diện màn hình dialog chọn câu hỏi 15
Hình 9: Giao diện màn hình sau khi kết thúc bài làm 16
Hình 10: Giao diện màn hình xem điểm 17
Hình 11: Giao diện màn hình tra cứu biển báo giao thông 18
Hình 12: Giao diện màn hình menu pop-up xem biển báo giao thông theo loại 19
Hình 13: Giao diện màn hình xem lịch sử điểm 20
Hình 14: Giao diện màn hình menu pop-up xem lịch sử điểm theo bằng lái 21
ix
DANH MỤC BẢNG
Bảng 1: Danh sách Actor và Use Case 7
Bảng 2: Bảng câu hỏi trắc nghiệm 8
Bảng 3: Bảng biển báo giao thông 9
Bảng 4: Bảng lịch sử điểm 9
x
LỜI MỞ ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của khoa học công nghệ, Công nghệ Thông tin là một trong những ngành có vị thế dẫn đầu và có vai trò rất lớn trong sự phát triển chung đó. Các ứng dụng của công nghệ thông tin được áp dụng trong mọi lĩnh vực nghiên cứu khoa học cũng như trong mọi lĩnh vực của đời sống. Là một phần của Công nghệ Thông tin, Công nghệ Web đang có được sự phát triển mạnh mẽ và phổ biến rất nhanh bởi những lợi ích mà nó mang lại cho cộng đồng là rất lớn.
Bằng việc lựa chọn và thực hiện đề tài “Xây dựng ứng dụng di động làm trắc nghiệm bằng lái xe”, tui muốn tìm hiểu và đưa ra một giải pháp tốt nhằm giải quyết công việc luyện tập thi trắc nghiệm bằng lái xe. Ứng dụng mang lại rất nhiều lợi ích như luyện tập các câu hỏi trắc nghiệm bằng lái xe theo bằng, tra cứu các loại biển báo giao thông, tra cứu mức xử phạt của các lỗi vi phạm an toàn giao thông,… nhằm giúp người dùng có thể luyện tập trước khi đi thi bằng lái cũng như hiểu biết hơn về các loại biển báo giao thông ở Việt Nam.
xi
CHƯƠNG 1: TỔNG QUAN
11. GIỚI THIỆU ĐỀ TÀI
1.1.1. Tên đề tài
Xây dựng ứng dụng di động làm trắc nghiệm bằng lái xe
1.1.2. Mục tiêu của đề tài
Xây dựng ứng dụng di động làm trắc nghiệm bằng lái xe theo bằng, giúp người dùng tiện lợi trong việc luyện tập lý thuyết trước khi thi bằng lái
Giúp người dùng có thể tra cứu mức xử phạt của các lỗi vi phạm an toàn giao
thông, tra cứu biển báo giao thông.
Ứng dụng dễ sử dụng, thân thiện với người dùng.
Nắm bắt được công nghệ thiết kế và lập trình ứng dụng di động cho android
1.1.3. Đối tượng và phạm vi nghiên cứu
1.1.3.1. Đối tượng
Người dùng có nhu cầu luyện tập lý thuyết trắc nghiệm bằng lái xe, tra cứu mức xử phạt vi phạm an toàn giao thông, tra cứu biển báo giao thông.
1.1.3.2. Phạm vi nghiên cứu
Khảo sát và thu thập ý kiến của học sinh, sinh viên có nhu cầu thi bằng lái xe.
1.1.3.3. Phương pháp nghiên cứu
1. Phương pháp thu thập thông tin: khảo sát và thu thập các số liệu, dữ liệu cần thiết như các thông tin bệnh nhân, thông tin thuốc, thông tin bác sĩ. Các quy trình bệnh án của bệnh nhân.
2. Phương pháp thống kê: đưa ra các thông tin, dữ liệu cần thiết để sử dụng trong đề tài.
3. Phương pháp phân tích và thiết kế hệ thống: phân tích chức năng hệ thống quản lý cần thiết của bệnh viện, hiểu rỏ các quy trình bệnh án để thiết kế xây dựng đề tài.
4. Phương pháp mô hình hóa chức năng: để tổ chức và tài liệu hóa cấu trúc và luồng dữ liệu xuyên qua các quá trình của một hệ thống.
1.1.4. Bố cục luận văn:
1
Giới thiệu tổng quan về luận văn: Giới thiệu tên đề tài, lý do chọn đề tài, đối tượng và phạm vi nghiên cứu, bố cục luận văn và chức năng của phần mềm.
Chương 2: Phân tích Thiết kế hệ thống
Phân tích các sơ đồ hệ thống của phần mềm, vẽ ra các luồng dữ liệu, đề ra các tác nhân và mô tả sau đó tiến hành thiết kế các sơ đồ Use Case, đặc tả chức năng từng thành phần và cuối cùng là thiết kế cơ sở dữ liệu.
Chương 3: Cài đặt và Giao diện
Yêu cầu về phần mềm, phần cứng và giới thiệu các giao diện của phần mềm.
Chương 4: Đánh giá kết quả và hướng phát triển
Đưa ra kết luận và liệt kê ra những chức năng đã làm được và chưa làm được cũng như hướng phát triển trong tương lai của phần mềm.
Tài liệu tham khảo:
Trích dẫn các tài liệu tham khảo trong suốt quá trình thực hiện đồ án.
12. CÔNG NGHỆ SỬ DỤNG
1.2.1. Tổng quan về hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng. Ban đầu, Android được phát triển bởi Android, Inc. với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005.
Android ra mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán vào năm 2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache. Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Tháng 10 năm 2012, có khoảng
2
700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt.
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, vượt qua Symbian OS vào quý 4 năm 2010, và được các công ty công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu. Kết quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV, máy chơi game và các thiết bị điện tử khác. Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những người đam mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản lý. Những dự án này bổ sung các chức năng cao cấp cho những người dùng thích tìm tòi hay đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác.
Android chiếm 87,7% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 2 năm 2017, với tổng cộng 2 tỷ thiết bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ.
1.2.2. Tổng quan về công cụ Android Studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho phát triển nền tảng Android.
Nó được ra mắt vào ngày 16 tháng 5 năm 2013 tại hội nghị Google I/O. Android Studio được phát hành miễn phí theo giấy phép Apache Licence 2.0.
Android Studio ở giai đoạn truy cập xem trước sớm bắt đầu từ phiên bản 0.1 vào tháng 5.2013, sau đó bước vào giai đoạn beta từ phiên bản 0.8 được phát hành vào tháng 6 năm 2014. Phiên bản ổn định đầu tiên được ra mắt vào tháng 12 năm 2014, bắt đầu từ phiên bản 1.0.
Dựa trên phần mềm IntelliJ IDEA của JetBrains, Android Studio được thiết kế đặc biệt để phát triển ứng dụng Android. Nó hỗ trợ các hệ điều hành Windows, Mac OS X và Linux, và là IDE chính thức của Google để phát triển ứng dụng Android gốc để thay thế cho Android Development Tools (ADT) dựa trên Eclipse.
1.2.3. Tổng quan về ngôn ngữ lập trình Java
3
Java là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết kế để có càng ít phụ thuộc thực thi càng tốt. Nó là ngôn ngữ lập trình có mục đích chung cho phép các nhà phát triển ứng dụng viết một lần, chạy ở mọi nơi (WORA), nghĩa là mã Java đã biên dịch có thể chạy trên tất cả các nền tảng hỗ trợ Java mà không cần biên dịch lại. Các ứng dụng Java thường được biên dịch thành bytecode có thể chạy trên bất kỳ máy ảo Java (JVM) nào bất kể kiến trúc máy tính bên dưới. Cú pháp của Java tương tự như C và C++, nhưng có ít cơ sở cấp thấp hơn các ngôn ngữ trên. Java runtime cung cấp các khả năng động (chẳng hạn như phản ánh và sửa đổi mã thời gian chạy) thường không có sẵn trong các ngôn ngữ biên dịch truyền thống. Tính đến năm 2019 Java là một trong những ngôn ngữ lập trình phổ biến nhất được sử dụng theo GitHub, đặc biệt cho các ứng dụng web máy khách-máy chủ, với 9 triệu nhà phát triển đã được báo cáo.
Java ban đầu được James Gosling tại Sun Microsystems (sau đó đã được Oracle mua lại) phát triển và được phát hành vào năm 1995 như một thành phần cốt lõi của nền tảng Java của Sun Microsystems. Các trình biên dịch Java, máy ảo và thư viện lớp thực thi gốc và tham chiếu ban đầu được Sun phát hành theo giấy phép độc quyền. Kể từ tháng 5 năm 2007, tuân theo các thông số kỹ thuật của Quy trình Cộng đồng Java, Sun đã cấp phép hầu hết các công nghệ Java của mình theo Giấy phép Công cộng GNU. Oracle cung cấp Máy ảo Java HotSpot của riêng mình, tuy nhiên việc triển khai tham chiếu chính thức là OpenJDK JVM, là phần mềm mã nguồn mở miễn phí và được hầu hết các nhà phát triển sử dụng và là JVM mặc định cho hầu hết các bản phân phối Linux.
Tính đến tháng 9 năm 2020, phiên bản mới nhất là Java 15, với Java 11, một phiên bản hỗ trợ dài hạn (LTS), được phát hành vào 25 tháng 9 năm 2018. Oracle phát hành bản cập nhật miễn phí cho công chúng với phiên bản kế thừa Java 8 LTS vào tháng 1 năm 2019 cho mục đích sử dụng thương mại, mặc dù nếu không nó sẽ vẫn hỗ trợ Java 8 với các bản cập nhật công khai cho mục đích sử dụng cá nhân vô thời hạn. Các nhà cung cấp khác đã bắt đầu cung cấp các bản miễn phí của OpenJDK 8 và 11 mà vẫn đang nhận được bảo mật và các nâng cấp khác.
1.2.4. Tổng quan về cơ sở dữ liệu SQLite
SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine, không cần máy chủ, không cần cấu hình, khép kín và nhỏ gọn. Nó là một cơ sở dữ liệu,
4
không cần cấu hình, có nghĩa là giống như các cơ sở dữ liệu khác mà bạn không cần cấu hình nó trong hệ thống của mình.
SQLite engine không phải là một quy trình độc lập (standalone process) như các cơ sở dữ liệu khác, bạn có thể liên kết nó một cách tĩnh hay động tùy theo yêu cầu của bạn với ứng dụng của bạn. SQLite truy cập trực tiếp các file lưu trữ (storage files) của nó.
SQLite có các ưu điểm sau:
SQLite không yêu cầu một quy trình hay hệ thống máy chủ riêng biệt để hoạt động.
SQLite không cần cấu hình, có nghĩa là không cần thiết lập hay quản trị.
Một cơ sở dữ liệu SQLite hoàn chỉnh được lưu trữ trong một file disk đa nền tảng (cross-platform disk file).
SQLite rất nhỏ và trọng lượng nhẹ, dưới 400KiB được cấu hình đầy đủ hoặc
dưới 250KiB với các chức năng tùy chọn bị bỏ qua.
SQLite là khép kín (self-contained), có nghĩa là không có phụ thuộc bên ngoài.
Các transaction trong SQLite hoàn toàn tuân thủ ACID, cho phép truy cập an
toàn từ nhiều tiến trình (process) hay luồng (thread).
SQLite hỗ trợ hầu hết các chức năng ngôn ngữ truy vấn (query language) được tìm thấy trong tiêu chuẩn SQL92 (SQL2).
SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ sử dụng.
SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows (Win32, WinCE, WinRT).
5
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
21. PHÂN TÍCH
Ứng dụng làm trắc nghiệm bằng lái xe cung cấp cho người dùng các chức năng như luyện tập trắc nghiệm lý thuyết bằng lái xe A1, A2, B2, lưu điểm sau khi làm, xem lịch sử điểm. Ngoài ra người dùng còn có thể tra cứu thông tin về các loại biển báo giao thông và tra cứu thông tin mức xử phạt các lỗi vi phạm an toàn giao thông. Những chức năng trên được thể hiện ở sơ đồ phân ra bên dưới
Hình 1: Sơ đồ phân rã chức năng
6
22. THIẾT KẾ HỆ THỐNG
2.2.1. Danh sách Actor và Use Case
ID
Actor
Tên Use Case
Chức năng
UC_01
Người dùng
Làm trắc nghiệm bằng lái xe
Làm trắc nghiệm lý thuyết bằng lái xe theo bằng A1, A2, B2
UC_02
Tìm kiếm biển báo giao thông
Tìm kiếm biển báo giao thông theo từ khoá
UC_03
Xem biển báo giao thông
Xem thông tin biển báo giao thông theo loại
UC_04
Lưu điểm
Lưu điểm sau khi làm trắc nghiệm
UC_05
Xem lịch sử điểm
Xem lịch sử điểm đã làm
Bảng 1: Danh sách Actor và Use Case
2.2.2. Sơ đồ Use Case tổng quát
Hình 2: Sơ đồ Use Case tổng quát
23. THIẾT KẾ CƠ SỞ DỮ LIỆU
7
2.3.1. Bảng câu hỏi trắc nghiệm
STT
Tên trường
Kiểu dữ liệu
Mô tả
_id
INT
ID câu hỏi
causo
Số thứ tự câu hỏi
cauhoi
TEXT
Câu hỏi
a
Đáp án A
b
Đáp án B
c
Đáp án C
d
Đáp án D
8
dapan
TẼT
Đáp án của câu hỏi
9
anh
Tên ảnh
10
de
Số thứ tự đề
11
banglai
Tên bằng lái
Bảng 2: Bảng câu hỏi trắc nghiệm
2.3.2. Bảng biển báo giao thông
ID biển báo giao thông
bienbao
Tên biển báo giao thông
hinh
Hình của biển báo giao thông
loai
Loại biển báo giao thông
2.3.3. Bảng lịch sử điểm
Bảng 3: Bảng biển báo giao thông
ID lịch sử điểm
diem
Điểm làm bài
Bảng 4: Bảng lịch sử điểm
CHƯƠNG 3: CÀI ĐẶT
31. YÊU CẦU
Thiết bị Android phiên bản 4.1 trở lên
32. GIAO DIỆN ỨNG DỤNG
3.2.1. Giao diện màn hình chính
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download.
Password giải nén nếu cần: ket-noi.com | Bấm vào Link, đợi vài giây sau đó bấm Get Website để tải:
MỤC LỤC
LỜI CAM ĐOAN ii
LỜI CẢM ƠN iii
TÓM TẮT iv
SUMMARY v
MỤC LỤC vi
DANH MỤC HÌNH ix
DANH MỤC BẢNG x
LỜI MỞ ĐẦU xi
CHƯƠNG 1: TỔNG QUAN 1
1.1. GIỚI THIỆU ĐỀ TÀI 1
1.1.1. Tên đề tài 1
1.1.2. Lý do chọn đề tài 1
1.1.3. Mục tiêu của đề tài 1
1.1.4. Đối tượng và phạm vi nghiên cứu 1
1.1.4.1. Đối tượng 1
1.1.4.2. Phạm vi nghiên cứu 1
1.1.4.3. Phương pháp nghiên cứu 1
1.1.5. Bố cục luận văn: 2
1.2. CÔNG NGHỆ SỬ DỤNG 2
1.2.1. Tổng quan về hệ điều hành Android 2
1.2.2. Tổng quan về công cụ Android Studio 3
1.2.3. Tổng quan về ngôn ngữ lập trình Java 4
1.2.4. Tổng quan về cơ sở dữ liệu SQLite 4
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 6
vi
2.1. PHÂN TÍCH 6
2.2. THIẾT KẾ HỆ THỐNG 7
2.2.1. Danh sách Actor và Use Case 7
2.2.2. Sơ đồ Use Case tổng quát 7
2.3. THIẾT KẾ CƠ SỞ DỮ LIỆU 7
2.3.1. Bảng câu hỏi trắc nghiệm 8
2.3.2. Bảng biển báo giao thông 8
2.3.3. Bảng lịch sử điểm 9
CHƯƠNG 3: CÀI ĐẶT 10
3.1. YÊU CẦU 10
3.2. GIAO DIỆN ỨNG DỤNG 10
3.2.1. Giao diện màn hình chính 10
3.2.2. Giao diện màn hình chọn đề trắc nghiệm bằng lái xe mô tô hạng A1 11
3.2.3. Giao diện màn hình chọn đề trắc nghiệm bằng lái xe mô tô hạng A2 12
3.2.4. Giao diện màn hình chọn đề trắc nghiệm bằng lái xe ô tô hạng B2 13
3.2.5. Giao diện màn hình làm trắc nghiệm 14
3.2.6. Giao diện màn hình dialog chọn câu hỏi 15
3.2.7. Giao diện màn hình sau khi kết thúc bài làm 16
3.2.8. Giao diện màn hình xem điểm 17
3.2.9. Giao diện màn hình tra cứu biển báo giao thông 18
3.2.10. Giao diện màn hình menu pop-up xem biển báo giao thông theo loại 19
3.2.11. Giao diện màn hình xem lịch sử điểm 20
3.2.12. Giao diện màn hình menu pop-up xem lịch sử điểm theo bằng lái 21
CHƯƠNG 4: ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 22
4.1. ĐÁNH GIÁ KẾT QUẢ 22
4.1.1. Chức năng đã làm được 22
vii
4.1.2. Chức năng chưa làm được 22
4.2. HƯỚNG PHÁT TRIỂN 22
TÀI LIỆU THAM KHẢO 23
viii
DANH MỤC HÌNH
Hình 1: Sơ đồ phân rã chức năng 6
Hình 2: Sơ đồ Use Case tổng quát 7
Hình 3: Giao diện màn hình chính 10
Hình 4: Giao diện màn hình chọn đề trắc nghiệm bằng lái xe mô tô hạng A1 11
Hình 5: Giao diện màn hình chọn đề trắc nghiệm bằng lái xe mô tô hạng A2 12
Hình 6: Giao diện màn hình chọn đề trắc nghiệm bằng lái xe ô tô hạng B2 13
Hình 7: Giao diện màn hình làm trắc nghiệm 14
Hình 8: Giao diện màn hình dialog chọn câu hỏi 15
Hình 9: Giao diện màn hình sau khi kết thúc bài làm 16
Hình 10: Giao diện màn hình xem điểm 17
Hình 11: Giao diện màn hình tra cứu biển báo giao thông 18
Hình 12: Giao diện màn hình menu pop-up xem biển báo giao thông theo loại 19
Hình 13: Giao diện màn hình xem lịch sử điểm 20
Hình 14: Giao diện màn hình menu pop-up xem lịch sử điểm theo bằng lái 21
ix
DANH MỤC BẢNG
Bảng 1: Danh sách Actor và Use Case 7
Bảng 2: Bảng câu hỏi trắc nghiệm 8
Bảng 3: Bảng biển báo giao thông 9
Bảng 4: Bảng lịch sử điểm 9
x
LỜI MỞ ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của khoa học công nghệ, Công nghệ Thông tin là một trong những ngành có vị thế dẫn đầu và có vai trò rất lớn trong sự phát triển chung đó. Các ứng dụng của công nghệ thông tin được áp dụng trong mọi lĩnh vực nghiên cứu khoa học cũng như trong mọi lĩnh vực của đời sống. Là một phần của Công nghệ Thông tin, Công nghệ Web đang có được sự phát triển mạnh mẽ và phổ biến rất nhanh bởi những lợi ích mà nó mang lại cho cộng đồng là rất lớn.
Bằng việc lựa chọn và thực hiện đề tài “Xây dựng ứng dụng di động làm trắc nghiệm bằng lái xe”, tui muốn tìm hiểu và đưa ra một giải pháp tốt nhằm giải quyết công việc luyện tập thi trắc nghiệm bằng lái xe. Ứng dụng mang lại rất nhiều lợi ích như luyện tập các câu hỏi trắc nghiệm bằng lái xe theo bằng, tra cứu các loại biển báo giao thông, tra cứu mức xử phạt của các lỗi vi phạm an toàn giao thông,… nhằm giúp người dùng có thể luyện tập trước khi đi thi bằng lái cũng như hiểu biết hơn về các loại biển báo giao thông ở Việt Nam.
xi
CHƯƠNG 1: TỔNG QUAN
11. GIỚI THIỆU ĐỀ TÀI
1.1.1. Tên đề tài
Xây dựng ứng dụng di động làm trắc nghiệm bằng lái xe
1.1.2. Mục tiêu của đề tài
Xây dựng ứng dụng di động làm trắc nghiệm bằng lái xe theo bằng, giúp người dùng tiện lợi trong việc luyện tập lý thuyết trước khi thi bằng lái
Giúp người dùng có thể tra cứu mức xử phạt của các lỗi vi phạm an toàn giao
thông, tra cứu biển báo giao thông.
Ứng dụng dễ sử dụng, thân thiện với người dùng.
Nắm bắt được công nghệ thiết kế và lập trình ứng dụng di động cho android
1.1.3. Đối tượng và phạm vi nghiên cứu
1.1.3.1. Đối tượng
Người dùng có nhu cầu luyện tập lý thuyết trắc nghiệm bằng lái xe, tra cứu mức xử phạt vi phạm an toàn giao thông, tra cứu biển báo giao thông.
1.1.3.2. Phạm vi nghiên cứu
Khảo sát và thu thập ý kiến của học sinh, sinh viên có nhu cầu thi bằng lái xe.
1.1.3.3. Phương pháp nghiên cứu
1. Phương pháp thu thập thông tin: khảo sát và thu thập các số liệu, dữ liệu cần thiết như các thông tin bệnh nhân, thông tin thuốc, thông tin bác sĩ. Các quy trình bệnh án của bệnh nhân.
2. Phương pháp thống kê: đưa ra các thông tin, dữ liệu cần thiết để sử dụng trong đề tài.
3. Phương pháp phân tích và thiết kế hệ thống: phân tích chức năng hệ thống quản lý cần thiết của bệnh viện, hiểu rỏ các quy trình bệnh án để thiết kế xây dựng đề tài.
4. Phương pháp mô hình hóa chức năng: để tổ chức và tài liệu hóa cấu trúc và luồng dữ liệu xuyên qua các quá trình của một hệ thống.
1.1.4. Bố cục luận văn:
1
Giới thiệu tổng quan về luận văn: Giới thiệu tên đề tài, lý do chọn đề tài, đối tượng và phạm vi nghiên cứu, bố cục luận văn và chức năng của phần mềm.
Chương 2: Phân tích Thiết kế hệ thống
Phân tích các sơ đồ hệ thống của phần mềm, vẽ ra các luồng dữ liệu, đề ra các tác nhân và mô tả sau đó tiến hành thiết kế các sơ đồ Use Case, đặc tả chức năng từng thành phần và cuối cùng là thiết kế cơ sở dữ liệu.
Chương 3: Cài đặt và Giao diện
Yêu cầu về phần mềm, phần cứng và giới thiệu các giao diện của phần mềm.
Chương 4: Đánh giá kết quả và hướng phát triển
Đưa ra kết luận và liệt kê ra những chức năng đã làm được và chưa làm được cũng như hướng phát triển trong tương lai của phần mềm.
Tài liệu tham khảo:
Trích dẫn các tài liệu tham khảo trong suốt quá trình thực hiện đồ án.
12. CÔNG NGHỆ SỬ DỤNG
1.2.1. Tổng quan về hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng. Ban đầu, Android được phát triển bởi Android, Inc. với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005.
Android ra mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán vào năm 2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache. Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Tháng 10 năm 2012, có khoảng
2
700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt.
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, vượt qua Symbian OS vào quý 4 năm 2010, và được các công ty công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu. Kết quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV, máy chơi game và các thiết bị điện tử khác. Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những người đam mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản lý. Những dự án này bổ sung các chức năng cao cấp cho những người dùng thích tìm tòi hay đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác.
Android chiếm 87,7% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 2 năm 2017, với tổng cộng 2 tỷ thiết bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ.
1.2.2. Tổng quan về công cụ Android Studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho phát triển nền tảng Android.
Nó được ra mắt vào ngày 16 tháng 5 năm 2013 tại hội nghị Google I/O. Android Studio được phát hành miễn phí theo giấy phép Apache Licence 2.0.
Android Studio ở giai đoạn truy cập xem trước sớm bắt đầu từ phiên bản 0.1 vào tháng 5.2013, sau đó bước vào giai đoạn beta từ phiên bản 0.8 được phát hành vào tháng 6 năm 2014. Phiên bản ổn định đầu tiên được ra mắt vào tháng 12 năm 2014, bắt đầu từ phiên bản 1.0.
Dựa trên phần mềm IntelliJ IDEA của JetBrains, Android Studio được thiết kế đặc biệt để phát triển ứng dụng Android. Nó hỗ trợ các hệ điều hành Windows, Mac OS X và Linux, và là IDE chính thức của Google để phát triển ứng dụng Android gốc để thay thế cho Android Development Tools (ADT) dựa trên Eclipse.
1.2.3. Tổng quan về ngôn ngữ lập trình Java
3
Java là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết kế để có càng ít phụ thuộc thực thi càng tốt. Nó là ngôn ngữ lập trình có mục đích chung cho phép các nhà phát triển ứng dụng viết một lần, chạy ở mọi nơi (WORA), nghĩa là mã Java đã biên dịch có thể chạy trên tất cả các nền tảng hỗ trợ Java mà không cần biên dịch lại. Các ứng dụng Java thường được biên dịch thành bytecode có thể chạy trên bất kỳ máy ảo Java (JVM) nào bất kể kiến trúc máy tính bên dưới. Cú pháp của Java tương tự như C và C++, nhưng có ít cơ sở cấp thấp hơn các ngôn ngữ trên. Java runtime cung cấp các khả năng động (chẳng hạn như phản ánh và sửa đổi mã thời gian chạy) thường không có sẵn trong các ngôn ngữ biên dịch truyền thống. Tính đến năm 2019 Java là một trong những ngôn ngữ lập trình phổ biến nhất được sử dụng theo GitHub, đặc biệt cho các ứng dụng web máy khách-máy chủ, với 9 triệu nhà phát triển đã được báo cáo.
Java ban đầu được James Gosling tại Sun Microsystems (sau đó đã được Oracle mua lại) phát triển và được phát hành vào năm 1995 như một thành phần cốt lõi của nền tảng Java của Sun Microsystems. Các trình biên dịch Java, máy ảo và thư viện lớp thực thi gốc và tham chiếu ban đầu được Sun phát hành theo giấy phép độc quyền. Kể từ tháng 5 năm 2007, tuân theo các thông số kỹ thuật của Quy trình Cộng đồng Java, Sun đã cấp phép hầu hết các công nghệ Java của mình theo Giấy phép Công cộng GNU. Oracle cung cấp Máy ảo Java HotSpot của riêng mình, tuy nhiên việc triển khai tham chiếu chính thức là OpenJDK JVM, là phần mềm mã nguồn mở miễn phí và được hầu hết các nhà phát triển sử dụng và là JVM mặc định cho hầu hết các bản phân phối Linux.
Tính đến tháng 9 năm 2020, phiên bản mới nhất là Java 15, với Java 11, một phiên bản hỗ trợ dài hạn (LTS), được phát hành vào 25 tháng 9 năm 2018. Oracle phát hành bản cập nhật miễn phí cho công chúng với phiên bản kế thừa Java 8 LTS vào tháng 1 năm 2019 cho mục đích sử dụng thương mại, mặc dù nếu không nó sẽ vẫn hỗ trợ Java 8 với các bản cập nhật công khai cho mục đích sử dụng cá nhân vô thời hạn. Các nhà cung cấp khác đã bắt đầu cung cấp các bản miễn phí của OpenJDK 8 và 11 mà vẫn đang nhận được bảo mật và các nâng cấp khác.
1.2.4. Tổng quan về cơ sở dữ liệu SQLite
SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine, không cần máy chủ, không cần cấu hình, khép kín và nhỏ gọn. Nó là một cơ sở dữ liệu,
4
không cần cấu hình, có nghĩa là giống như các cơ sở dữ liệu khác mà bạn không cần cấu hình nó trong hệ thống của mình.
SQLite engine không phải là một quy trình độc lập (standalone process) như các cơ sở dữ liệu khác, bạn có thể liên kết nó một cách tĩnh hay động tùy theo yêu cầu của bạn với ứng dụng của bạn. SQLite truy cập trực tiếp các file lưu trữ (storage files) của nó.
SQLite có các ưu điểm sau:
SQLite không yêu cầu một quy trình hay hệ thống máy chủ riêng biệt để hoạt động.
SQLite không cần cấu hình, có nghĩa là không cần thiết lập hay quản trị.
Một cơ sở dữ liệu SQLite hoàn chỉnh được lưu trữ trong một file disk đa nền tảng (cross-platform disk file).
SQLite rất nhỏ và trọng lượng nhẹ, dưới 400KiB được cấu hình đầy đủ hoặc
dưới 250KiB với các chức năng tùy chọn bị bỏ qua.
SQLite là khép kín (self-contained), có nghĩa là không có phụ thuộc bên ngoài.
Các transaction trong SQLite hoàn toàn tuân thủ ACID, cho phép truy cập an
toàn từ nhiều tiến trình (process) hay luồng (thread).
SQLite hỗ trợ hầu hết các chức năng ngôn ngữ truy vấn (query language) được tìm thấy trong tiêu chuẩn SQL92 (SQL2).
SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ sử dụng.
SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows (Win32, WinCE, WinRT).
5
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
21. PHÂN TÍCH
Ứng dụng làm trắc nghiệm bằng lái xe cung cấp cho người dùng các chức năng như luyện tập trắc nghiệm lý thuyết bằng lái xe A1, A2, B2, lưu điểm sau khi làm, xem lịch sử điểm. Ngoài ra người dùng còn có thể tra cứu thông tin về các loại biển báo giao thông và tra cứu thông tin mức xử phạt các lỗi vi phạm an toàn giao thông. Những chức năng trên được thể hiện ở sơ đồ phân ra bên dưới
Hình 1: Sơ đồ phân rã chức năng
6
22. THIẾT KẾ HỆ THỐNG
2.2.1. Danh sách Actor và Use Case
ID
Actor
Tên Use Case
Chức năng
UC_01
Người dùng
Làm trắc nghiệm bằng lái xe
Làm trắc nghiệm lý thuyết bằng lái xe theo bằng A1, A2, B2
UC_02
Tìm kiếm biển báo giao thông
Tìm kiếm biển báo giao thông theo từ khoá
UC_03
Xem biển báo giao thông
Xem thông tin biển báo giao thông theo loại
UC_04
Lưu điểm
Lưu điểm sau khi làm trắc nghiệm
UC_05
Xem lịch sử điểm
Xem lịch sử điểm đã làm
Bảng 1: Danh sách Actor và Use Case
2.2.2. Sơ đồ Use Case tổng quát
Hình 2: Sơ đồ Use Case tổng quát
23. THIẾT KẾ CƠ SỞ DỮ LIỆU
7
2.3.1. Bảng câu hỏi trắc nghiệm
STT
Tên trường
Kiểu dữ liệu
Mô tả
_id
INT
ID câu hỏi
causo
Số thứ tự câu hỏi
cauhoi
TEXT
Câu hỏi
a
Đáp án A
b
Đáp án B
c
Đáp án C
d
Đáp án D
8
dapan
TẼT
Đáp án của câu hỏi
9
anh
Tên ảnh
10
de
Số thứ tự đề
11
banglai
Tên bằng lái
Bảng 2: Bảng câu hỏi trắc nghiệm
2.3.2. Bảng biển báo giao thông
ID biển báo giao thông
bienbao
Tên biển báo giao thông
hinh
Hình của biển báo giao thông
loai
Loại biển báo giao thông
2.3.3. Bảng lịch sử điểm
Bảng 3: Bảng biển báo giao thông
ID lịch sử điểm
diem
Điểm làm bài
Bảng 4: Bảng lịch sử điểm
CHƯƠNG 3: CÀI ĐẶT
31. YÊU CẦU
Thiết bị Android phiên bản 4.1 trở lên
32. GIAO DIỆN ỨNG DỤNG
3.2.1. Giao diện màn hình chính

Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download.
Password giải nén nếu cần: ket-noi.com | Bấm vào Link, đợi vài giây sau đó bấm Get Website để tải:
You must be registered for see links