1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng trắc nghiệm IQ phát triển trên thiết bị Android

52 16 0

Đ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

Cấu trúc

  • DANH MỤC BẢNG BIỂU

  • DANH MỤC HÌNH

  • MỞ ĐẦU

  • CHƯƠNG 1: TỔNG QUAN

  • 1.1 Khảo sát hiện trạng

  • 1.2 Mục đích và ý nghĩa của đề tài

  • 1.2.1 Mục đích

  • 1.2.2 Ý nghĩa của đề tài

  • 1.3 Nhiệm vụ của đề tài

  • 1.3.1 Về lý thuyết

  • 1.3.2 Về chương trình

  • 1.4 Phương pháp triển khai

  • 1.5 Phạm vi đề tài

  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

  • 2.1 Lý thuyết về Android

  • 2.1.1 Lịch sử Android

  • 2.1.2 Kiến trúc của Android

  • 2.1.3 Các phiên bản của Android

  • 2.2 Môi trường Android Studio

  • 2.2.1 Các thành phần cơ bản của ứng dụng Android

  • 2.2.2 Mô hình kiến trúc trong Android

  • 2.3 Hệ quản trị cơ sở dữ liệu SQLite

  • 2.3.1 Giới thiệu về SQLite

  • 2.3.2 Nhận định chung về SQLite

  • 2.3.3 Các lớp dữ liệu trong SQLite

  • 2.3.4 Thao tác với SQLite

  • 2.3.5 Cú pháp các lệnh trong SQLite

  • CHƯƠNG 3: THIẾT KẾ VÀ THỰC NGHIỆM

  • 3.1 Bài toán

  • 3.2 Xây dựng thiết kế

  • 3.3 Thực nghiệm

  • KẾT LUẬN

  • TÀI LIỆU THAM KHẢO

Nội dung

Mua SourceCode inbox fb: https://www.facebook.com/Wigk.nam.n98/ MỤC LỤCDANH MỤC BẢNG BIỂU3DANH MỤC HÌNH4MỞ ĐẦU5CHƯƠNG 1: TỔNG QUAN61.1 Khảo sát hiện trạng61.2 Mục đích và ý nghĩa của đề tài61.2.1 Mục đích61.2.2 Ý nghĩa của đề tài71.3 Nhiệm vụ của đề tài71.3.1 Về lý thuyết71.3.2 Về chương trình81.4 Phương pháp triển khai81.5 Phạm vi đề tài9CHƯƠNG 2: CƠ SỞ LÝ THUYẾT102.1 Lý thuyết về Android102.1.1 Lịch sử Android102.1.2 Kiến trúc của Android112.1.3 Các phiên bản của Android152.2 Môi trường Android Studio172.2.1 Các thành phần cơ bản của ứng dụng Android172.2.2 Mô hình kiến trúc trong Android202.3 Hệ quản trị cơ sở dữ liệu SQLite232.3.1 Giới thiệu về SQLite232.3.2 Nhận định chung về SQLite232.3.3 Các lớp dữ liệu trong SQLite242.3.4 Thao tác với SQLite262.3.5 Cú pháp các lệnh trong SQLite272.3.6 Các toán tử trong SQLite29CHƯƠNG 3: THIẾT KẾ VÀ THỰC NGHIỆM343.1 Bài toán343.2 Xây dựng thiết kế353.3 Thực nghiệm49KẾT LUẬN51TÀI LIỆU THAM KHẢO52DANH MỤC BẢNG BIỂUBảng 2.1: Lớp lưu trữ dữ liệu trong SQLite .....................................................25Bảng 2.2: Affinity Type trong SQLite .............................................................25Bảng 2.3: Các kiểu dữ liệu và affinity trong SQLite ........................................25Bảng 2.4: Kiểu dữ liệu date và time trong SQLite ............................................26Bảng 2.5: Toán tử số học trong SQLite ............................................................29Bảng 2.6: Toán tử so sánh trong SQLite ..........................................................29Bảng 2.7: Toán tử logic trong SQLite ..............................................................31Bảng 2.8: Thao tác bit trong SQLite ................................................................32Bảng 2.9: Toán tử thao tác bit trong SQLite ....................................................32DANH MỤC HÌNHHình 2.1: Mô hình tổng quan các thành phần của hệ điều hành Android........12Hình 2.2: Vòng đời một Activity ....................................................................18Hình 2.3: Mô hình Model View Controller .....................................................21Hình 2.4: Mô hình Model View Presenter .......................................................22Hình 2.5: Mô hình Model View ViewModel ...................................................32Hình 3.1: Sơ đồ khối chương trình ..................................................................34Hình 3.2 Màn hình SplashScreen ....................................................................35Hình 3.3: Màn hình chính IntroScreen ............................................................36Hình 3.4: Các màn hình con IntroScreen .........................................................37Hình 3.5: Màn hình Home ...............................................................................38Hình 3.6: Màn hình lựa chọn đề bài ................................................................40Hình 3.7: Màn hình hiển thị câu hỏi .................................................................44Hình 3.8: Kết quả chương trình .......................................................................49MỞ ĐẦUNgày nay rất nhiều công ty và tập đoàn lớn đã và đang áp dụng hình thức kiểm tra ứng viên bằng phương pháp làm bài test IQ (Intelligence Quotient – Chỉ số thông minh) tuyển dụng trong quá trình tuyển chọn người phù hợp cho các vị trí còn trống. Điều mà các ứng viên quan tâm là làm thế nào để làm bài hiệu quả cao nhất, đạt được thành tích cao so với các ứng viên khác, thuân lợi đạt được công việc mà mình mong muốn.Để làm một bài test IQ hiệu quả, đầu tiên ta cần phải tập trung tìm hiểu các bài test đánh giá năng lực của doanh nghiệp, chuẩn bị kỹ lưỡng, làm quen với các câu hỏi nếu không muốn bị “choáng ngợp” khi gặp lần đầu.Trên cơ sở kiến thức đã học trên nhà trường và quá trình tìm hiểu trong thực tế, em đã quyết định chọn đề tài “Lập trình game trắc nghiệm test IQ” trên nền tảng Andoid. Em xin gửi lời cảm ơn chân thành tới thầy Trần Quang Việt đã quan tâm giúp đỡ, hướng dẫn em hoàn thành tốt đồ án này trong suốt thời gian qua.Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh viên, đồ án này không thể tránh khỏi những thiếu sót. Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của thầy cô để em có thể bổ sung, phục vụ tốt cho công việc thực tế sau này.CHƯƠNG 1: TỔNG QUAN1.1 Khảo sát hiện trạng Lần đầu tiên, chỉ số IQ (Intelligence Quotient – Chỉ số thông minh ) được sử dụng ở Pháp vào đầu thế kỷ 20 khi người ta muốn khắc phục những khó khăn của trẻ lúc bắt đầu đi học. Tiếp đó, bài kiểm tra trắc nghiệm IQ được coi là hoàn chỉnh nhất của chuyên gia Hans Aizenk. Bài trắc nghiệm trở nên vô cùng phổ biến tại châu Âu trong những năm 1950. Mọi người tính điểm IQ của mình cả ở văn phòng và những buổi tiệc.Theo ông Hans Aizenk, muốn xác định IQ cần phải qua một bài kiểm tra IQ với các câu hỏi về suy luận logic, so sánh, số học, trí nhớ, kiến thức tổng quát, tính toán, xếp hình logic, sau đó so sánh tỉ lệ số điểm họ đạt được với số điểm trung bình của những nhóm tuổi khác nhau đạt được. IQ không phải là một số đo tuyệt đối, các nhà khoa học thời đó coi IQ là một tỉ lệ giữa tuổi trí lực và “tuổi thực tế” của con người. Ngày nay, các bài trắc nghiệm test IQ ngày càng được phổ biến hơn, được sử dụng trong trường học, trong các cuộc thi lớn, trong các vòng tuyển dụng. Với những đối tượng là người đi làm, người xin việc ở các công ty, ngân hàng tức những người có qua trường lớp đào tạo, hiểu rõ các quy tắc tính toán số học, thì bài Test IQ tuyển dụng này sẽ đánh giá chính xác và toàn diện nhất khả năng lập luận tư duy của người đó. Chính vì thế, các công ty lớn, ngân hàng… khi tuyển dụng nhân viên cho những vị trí cần đầu óc tính toán IQ, tư duy tốt luôn dùng những đề thi IQ tuyển dụng là như vậy. Đối với những người xuất khẩu lao động, họ cũng cần một bài test trắc nghiệm IQ để được lựa chọn vào những vị trí phù hơp1.2 Mục đích và ý nghĩa của đề tài1.2.1 Mục đíchỨng dụng trắc nghiệm IQ chạy trên nền Android được thực hiện dựa trên mục đích sau: Thứ nhất là nghiên cứu các công nghệ lập trình như: lập trình ứng dụng với AndroidThứ hai là phát triển ứng dụng có tính thực tiễn cao, có khả năng triển khai ứng dụng vào thực tế, giúp ta làm quen với các bài trắc nghiệm toán IQ.1.2.2 Ý nghĩa của đề tàiTrước hết, đề tài “Thiết kế trò chơi kiểm tra IQ trên thiết bị di động” là một ứng dụng được xây dựng như một đề tài thể hiện việc áp dụng được những kiến thức quý báu đã được các thầy cô của trường Đại học Công Nghiệp Hà Nội nhiệt tình truyền thụ lại cho chúng em. Và đặc biệt là sự theo dõi và quan tâm giúp đỡ của thầy Trần Quang Việt trong suốt thời gian em thực hiện đề tài này.Thứ hai là những kinh nghiệm quý báu mà em có được trong quá trình thực hiện đề tài sẽ là hành trang tuyệt với giúp ích rất nhiều cho công việc sau này của mình.Thứ ba, trong thời đại công nghệ thông tin phát triển như vũ bão ngày nay, công nghệ không ngứng được cải tiến, những công nghệ mới ra đời đòi hỏi người lập trình viên phải cố gắng nghiên cứu và tìm hiểu để áp dụng vào thực tiễn. Điều này được thể hiện qua sự cố gắng của em khi quyết định thực hiện đề tài này với công nghệ được coi là phổ biến nhất và được dự báo sẽ phát triển mạnh mẽ hơn trong tương lại.Do vậy, em hy vọng sẽ tạo nên một sản phẩm hoàn chỉnh có thể để đáp lại sự nhiệt tình giúp đỡ từ thầy cô và cả tâm huyết của em khi quyết định thực hiện đề tài này.1.3 Nhiệm vụ của đề tài1.3.1 Về lý thuyếtĐề tài “Thiết kế trò chơi kiểm tra IQ trên thiết bị di động” là một ứng dụng chạy trên điện thoại sử dụng hệ điều hành Android. Ứng dụng gồm:+ Phần ứng dụng trên điện thoại được phát triển trên nền Android SDK.+ Phần mềm đưa ra kết quả của bài toán và số câu trả lời đúng của người dùng.Mục tiêu của đề tài là:+ Tìm hiểu các bài trắc nghiệm số học test IQ.+ Tìm hiểu cách thức xây dựng một ứng dụng trên nền tảng Android.+ Xây dựng thành công ứng dụng trên nền tảng Android. + Tìm hiểu về hệ quản lý cơ sở dữ liệu SQLite.+ Tìm hiểu về công cụ lập trình Android Studio (ngôn ngữ Java).1.3.2 Về chương trìnhChương trình thực hiện được các yêu cầu của đề tài tốt nghiệp.Ứng dụng đã phần nào xây dựng và đáp ứng chức năng chính:+ Giao diện thân thiện dễ sử dụng.+ Sử dụng thành công SQLite để lưu trữ dữ liệu.+ Người dùng có thể làm thử các bài test trắc nghiệm IQ sẵn sàng cho những mục đích khác.1.4 Phương pháp triển khaiXây dựng ứng dụng bao gồm ứng dụng chạy trên điện thoại và một phần mềm đọc dữ liệu câu hỏi từ SQLite.Trong đề tài tốt nghiệp lần này, em quyết định thực hiện các phần từ triển khai một ứng dụng hoàn chỉnh theo các bước sau:+ Khảo sát lấy yêu cầu người sử dụng điện thoại về các ứng dụng trắc nghiệm trên mobile.+ Tiếp đến, em sẽ nghiên cứu công nghệ phát triển ứng dụng chạy trên hệ điều hành Android.Sau khi hoàn thành phần ứng dụng chạy trên điện thoại, em sẽ triển khai lấy bảng câu hỏi có trên điện thoại ra phần mềm quản lý dữ liệu của ứng dụng.Danh sách thứ tự triển khai ứng dụng:

1 MỤC LỤC DANH MỤC BẢNG BIỂU DANH MỤC HÌNH .4 MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 Khảo sát trạng 1.2 Mục đích ý nghĩa đề tài .6 1.2.1 Mục đích 1.2.2 Ý nghĩa đề tài 1.3 Nhiệm vụ đề tài 1.3.1 Về lý thuyết 1.3.2 Về chương trình 1.4 Phương pháp triển khai 1.5 Phạm vi đề tài CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 10 2.1 Lý thuyết Android 10 2.1.1 Lịch sử Android 10 2.1.2 Kiến trúc Android .11 2.1.3 Các phiên Android .15 2.2 Môi trường Android Studio 17 2.2.1 Các thành phần ứng dụng Android 17 2.2.2 Mơ hình kiến trúc Android 20 2.3 Hệ quản trị sở liệu SQLite 23 2.3.1 Giới thiệu SQLite 23 2.3.2 Nhận định chung SQLite 23 2.3.3 Các lớp liệu SQLite 24 2.3.4 Thao tác với SQLite 26 2.3.5 Cú pháp lệnh SQLite 27 2.3.6 Các toán tử SQLite 29 CHƯƠNG 3: THIẾT KẾ VÀ THỰC NGHIỆM 34 3.1 Bài toán 34 3.2 Xây dựng thiết kế 35 3.3 Thực nghiệm 49 KẾT LUẬN 51 TÀI LIỆU THAM KHẢO 52 DANH MỤC BẢNG BIỂU Bảng 2.1: Lớp lưu trữ liệu SQLite .25 Bảng 2.2: Affinity Type SQLite .25 Bảng 2.3: Các kiểu liệu affinity time SQLite 25 Bảng 2.4: Kiểu liệu date SQLite 26 Bảng 2.5: Toán tử số học so sánh SQLite 29 Bảng 2.6: Toán tử SQLite 29 Bảng 2.7: Toán tử logic bit SQLite 31 Bảng 2.8: Thao tác SQLite 32 Bảng 2.9: Toán tử SQLite 32 thao tác bit DANH MỤC HÌNH Hình 2.1: Mơ hình tổng quan thành phần hệ điều hành Android 12 Hình 2.2: Vịng đời Activity 18 Hình 2.3: Mơ hình Model View Model View Model View Controller .21 Hình 2.4: Mơ hình Presenter .22 Hình 2.5: Mơ hình ViewModel 32 Hình 3.1: Sơ đồ khối chương trình 34 Hình 3.2 Màn hình SplashScreen 35 Hình 3.3: Màn hình IntroScreen 36 Hình 3.4: Các IntroScreen 37 hình Hình 3.5: Màn hình Home .38 Hình 3.6: Màn hình lựa chọn đề hiển thị câu 40 Hình 3.7: Màn hình hỏi 44 Hình 3.8: Kết chương trình .49 MỞ ĐẦU Ngày nhiều công ty tập đồn lớn áp dụng hình thức kiểm tra ứng viên phương pháp làm test IQ (Intelligence Quotient – Chỉ số thông minh) tuyển dụng trình tuyển chọn người phù hợp cho vị trí cịn trống Điều mà ứng viên quan tâm làm để làm hiệu cao nhất, đạt thành tích cao so với ứng viên khác, thuân lợi đạt công việc mà mong muốn Để làm test IQ hiệu quả, ta cần phải tập trung tìm hiểu test đánh giá lực doanh nghiệp, chuẩn bị kỹ lưỡng, làm quen với câu hỏi khơng muốn bị “chống ngợp” gặp lần đầu Trên sở kiến thức học nhà trường trình tìm hiểu thực tế, em định chọn đề tài “Lập trình game trắc nghiệm test IQ” tảng Andoid Em xin gửi lời cảm ơn chân thành tới thầy Trần Quang Việt quan tâm giúp đỡ, hướng dẫn em hoàn thành tốt đồ án suốt thời gian qua Với điều kiện thời gian kinh nghiệm hạn chế sinh viên, đồ án khơng thể tránh khỏi thiếu sót Em mong nhận bảo, đóng góp ý kiến thầy để em bổ sung, phục vụ tốt cho công việc thực tế sau CHƯƠNG 1: TỔNG QUAN 1.1 Khảo sát trạng Lần đầu tiên, số IQ (Intelligence Quotient – Chỉ số thông minh ) sử dụng Pháp vào đầu kỷ 20 người ta muốn khắc phục khó khăn trẻ lúc bắt đầu học Tiếp đó, kiểm tra trắc nghiệm IQ coi hoàn chỉnh chuyên gia Hans Aizenk Bài trắc nghiệm trở nên vô phổ biến châu Âu năm 1950 Mọi người tính điểm IQ văn phịng buổi tiệc Theo ơng Hans Aizenk, muốn xác định IQ cần phải qua kiểm tra IQ với câu hỏi suy luận logic, so sánh, số học, trí nhớ, kiến thức tổng qt, tính tốn, xếp hình logic, sau so sánh tỉ lệ số điểm họ đạt với số điểm trung bình nhóm tuổi khác đạt IQ số đo tuyệt đối, nhà khoa học thời coi IQ tỉ lệ tuổi trí lực “tuổi thực tế” người Ngày nay, trắc nghiệm test IQ ngày phổ biến hơn, sử dụng trường học, thi lớn, vòng tuyển dụng Với đối tượng người làm, người xin việc công ty, ngân hàng - tức người có qua trường lớp đào tạo, hiểu rõ quy tắc tính tốn số học, Test IQ tuyển dụng đánh giá xác toàn diện khả lập luận tư người Chính thế, cơng ty lớn, ngân hàng… tuyển dụng nhân viên cho vị trí cần đầu óc tính tốn IQ, tư tốt dùng đề thi IQ tuyển dụng Đối với người xuất lao động, họ cần test trắc nghiệm IQ để lựa chọn vào vị trí phù hơp 1.2 Mục đích ý nghĩa đề tài 1.2.1 Mục đích Ứng dụng trắc nghiệm IQ chạy Android thực dựa mục đích sau: Thứ nghiên cứu cơng nghệ lập trình như: lập trình ứng dụng với Android Thứ hai phát triển ứng dụng có tính thực tiễn cao, có khả triển khai ứng dụng vào thực tế, giúp ta làm quen với trắc nghiệm toán IQ 1.2.2 Ý nghĩa đề tài Trước hết, đề tài “Thiết kế trò chơi kiểm tra IQ thiết bị di động” ứng dụng xây dựng đề tài thể việc áp dụng kiến thức quý báu thầy cô trường Đại học Cơng Nghiệp Hà Nội nhiệt tình truyền thụ lại cho chúng em Và đặc biệt theo dõi quan tâm giúp đỡ thầy Trần Quang Việt suốt thời gian em thực đề tài Thứ hai kinh nghiệm quý báu mà em có q trình thực đề tài hành trang tuyệt với giúp ích nhiều cho cơng việc sau Thứ ba, thời đại công nghệ thông tin phát triển vũ bão ngày nay, công nghệ không ngứng cải tiến, cơng nghệ đời địi hỏi người lập trình viên phải cố gắng nghiên cứu tìm hiểu để áp dụng vào thực tiễn Điều thể qua cố gắng em định thực đề tài với công nghệ coi phổ biến dự báo phát triển mạnh mẽ tương lại Do vậy, em hy vọng tạo nên sản phẩm hoàn chỉnh để đáp lại nhiệt tình giúp đỡ từ thầy cô tâm huyết em định thực đề tài 1.3 Nhiệm vụ đề tài 1.3.1 Về lý thuyết Đề tài “Thiết kế trò chơi kiểm tra IQ thiết bị di động” ứng dụng chạy điện thoại sử dụng hệ điều hành Android Ứng dụng gồm: + Phần ứng dụng điện thoại phát triển Android SDK + Phần mềm đưa kết toán số câu trả lời người dùng Mục tiêu đề tài là: + Tìm hiểu trắc nghiệm số học test IQ + Tìm hiểu cách thức xây dựng ứng dụng tảng Android + Xây dựng thành công ứng dụng tảng Android + Tìm hiểu hệ quản lý sở liệu SQLite + Tìm hiểu cơng cụ lập trình Android Studio (ngơn ngữ Java) 1.3.2 Về chương trình Chương trình thực yêu cầu đề tài tốt nghiệp Ứng dụng phần xây dựng đáp ứng chức chính: + Giao diện thân thiện dễ sử dụng + Sử dụng thành công SQLite để lưu trữ liệu + Người dùng làm thử test trắc nghiệm IQ sẵn sàng cho mục đích khác 1.4 Phương pháp triển khai Xây dựng ứng dụng bao gồm ứng dụng chạy điện thoại phần mềm đọc liệu câu hỏi từ SQLite Trong đề tài tốt nghiệp lần này, em định thực phần từ triển khai ứng dụng hoàn chỉnh theo bước sau: + Khảo sát lấy yêu cầu người sử dụng điện thoại ứng dụng trắc nghiệm mobile + Tiếp đến, em nghiên cứu công nghệ phát triển ứng dụng chạy hệ điều hành Android Sau hoàn thành phần ứng dụng chạy điện thoại, em triển khai lấy bảng câu hỏi có điện thoại phần mềm quản lý liệu ứng dụng Danh sách thứ tự triển khai ứng dụng: + Màn hình mở đầu ứng dụng, thị logo ứng dụng tên ứng dụng (Splash Screen) + Màn hình giới thiệu, hiển thị nội dung ứng dụng + Màn hình chính, gồm: bắt đầu ứng dụng + Màn hình lựa chọn thể loại, đề tài bắt đầu làm + Màn hình đưa câu hỏi, thời gian, điểm nút chuyển tiếp câu hỏi 10 Sau danh sách công nghệ sử dụng để xây dựng ứng dụng: + Android SDK + Java + SQLite 1.5 Phạm vi đề tài Ứng dụng xây dựng phát triển nhằm cung cấp trắc nghiệm toán số học: toán, dãy số IQ Vì vậy, phù hợp với học sinh người dự tuyển làm, xuất lao động CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Lý thuyết Android 2.1.1 Lịch sử Android Android tảng phần mềm dựa mã nguồn mở Linux OS cho máy di động, máy tính bảng phần mềm trung gian 38 Bước 3: Thiết kế hình Home app Hình 3.5: Màn hình Home Thiết kế hình Home cách sử dụng Logo, ImageButton để tương tác với app, ta custom lại Button thể trạng thái Pressed unPressed, tạo thêm hiệu ứng mở sang hình ta set thuộc tính visibility = ”gone” cho nút Button lên file java Bên file java hình Home, ánh xạ View thiết lập Delayed nút Button trên, sau 1000ms chúng lên Bắt kiện cho nút Button Nút Start chuyển tiếp sang Layout (màn hình) Code: btstart.setOnClickListener(new View.OnClickListener() { @SuppressLint("NewApi") @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this,StartQues.class)); customType(MainActivity.this,"left-to-right");}} ); 39 Nút Quit dialog hệ thống, dialog đưa thông báo có nút đó, nút đóng dialog nút thoát khỏi ứng dụng Code: AlertDialog.Builder dialog=new AlertDialog.Builder(this); dialog.setTitle("Thơng báo!"); dialog.setMessage("Bạn có muốn ứng dụng khơng?"); dialog.setCancelable(false); dialog.setPositiveButton("Có", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent startMain=new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startActivity(startMain); } }); dialog.setNegativeButton("Không", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss();} }); dialog.show(); 40 Bước 4: Thiết kế hình lựa chọn đề (StartQuestion Screen) Hình 3.6: Màn hình lựa chọn đề Thiết kế hình gồm View chính: TextView để hiển thị điểm số, Spinner để chọn đề thể loại Button làm Ở đây, ta không dùng Spinner hệ thống, ta Custom lại Tạo file xml với custom_spinner custom_spinner_dropdown Để thực chuyển sang bước tiếp theo, ta cần xây dựng module thành phân tham gia, thể loại (Category) đề (Lesson) bảng liệu SQLite Trước tiên xây dựng module Category với thuộc tính id name, khai báo biến số cho BAI_TOAN, DAY_SO để lưu bảng Code: public class Category { public static final int BAI_TOAN=1; public static final int DAY_SO=2; private int id; private String name; public Category(){} public Category(String name) {this.name = name; } 41 public int getId() {return id; } public void setId(int id) {this.id = id; } public String getName() {return name;} public void setName(String name) {this.name = name; } @NonNull @Override public String toString() { return getName(); } } Tương tư với module Category, với module Lesson tạo id, câu hỏi đáp án trả lời, câu trả lời đúng, đề bài, số tương ứng với thể loại Tạo biến số lesson tương ứng với đề Tạo Constructor getter and setter module Code: public class Question { public static final String LESSON_1 = "Đề 1"; public static final String LESSON_2 = "Đề 2"; public static final String LESSON_3 = "Đề 3"; public static final String LESSON_4 = "Đề 4"; private int id; private String question; private String option1; private String option2; private String option3; private String option4; private int answer; private String lesson; private int category; 42 public Question() {} public Question(String question, String option1, String option2, String option3, String option4, int answer, String lesson,int category) { this.question = question; this.option1 = option1; this.option2 = option2; this.option3 = option3; this.option4 = option4; this.answer = answer; this.lesson = lesson; this.category=category; } public int getId() {return id; } public void setId(int id) {this.id = id;} public int getCategory() {return category; } public void setCategory(int category) {this.category = category;} public static String[] getAllLesson() { return new String[]{LESSON_1, LESSON_2, LESSON_3, LESSON_4 };} public String getLesson() { return lesson; } public void setLesson(String lesson) { this.lesson = lesson; } public String getQuestion() { return question; } public void setQuestion(String question) {this.question = question; } public String getOption1() { return option1; } public void setOption1(String option1) { this.option1 = option1; } public String getOption2() { return option2; } public void setOption2(String option2) { this.option2 = option2; } public String getOption3() {return option3; } public void setOption3(String option3) { this.option3 = option3; } 43 public String getOption4() {return option4; } public void setOption4(String option4) {this.option4 = option4; public int getAnswer() {return answer; } public void setAnswer(int answer) { this.answer = answer; }} Sau tạo module thành phần Category Lesson, ta loadCategory vào Spinner mà ta tạo trước Bắt kiện Click cho nút Button chuyển layout, thực putExtra (chuyển liệu) thể loại (Category) đề (Lesson) sang hình để hiển thể loại câu hỏi tương ứng với đề Code: ivstart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Category selecCategory=(Category)spnCategory.getSelectedItem(); int categoryID=selecCategory.getId(); String les=spnLesson.getSelectedItem().toString(); Intent intent=new Intent(StartQues.this,QuesActivity.class); intent.putExtra(EXTRA_LESSON,les); intent.putExtra(EXTRA_CATEGORY_ID,categoryID); startActivityForResult(intent,REQUEST_CODE); customType(StartQues.this, "left-to-right"); } }); 44 Bước 5: Xây dưng hình hiển thị câu hỏi (Quesion Screen) Hình 3.7: Màn hình hiển thị câu hỏi Ở file xml, xây dựng TextView để hiển thị thời gian, điểm số, số câu hỏi câu hỏi, thiết kế view chọn đáp án RadioButton nút xác nhận ImageButton Trong RadioButton ta để hiển thị kiểu Button custom lại background cho Để có liệu câu hỏi, ta cần tạo bảng câu hỏi qua SQLite, tạo file java kế thừa từ SQLiteOpenHelper Sau kế thừa, sinh phương thức để ta tạo bảng Trước hết tạo file java với tên biến thể tên cột SQLite Code: public final class QuizContract { private QuizContract(){} public static class CategoriesTable implements BaseColumns{ public static final String TABLE_NAME="quiz_categories"; public static final String COLUMN_NAME="name";} public static class QuestionTable implements BaseColumns{ public static final String TABLE_NAME="quiz_questions"; 45 public static final String COLUMN_QUESTION="question"; public static final String COLUMN_OPTION1="op1"; public static final String COLUMN_OPTION2="op2"; public static final String COLUMN_OPTION3="op3"; public static final String COLUMN_OPTION4="op4"; public static final String COLUMN_ANSWER="ans"; public static final String COLUMN_LESSON="lesson"; public static final String COLUMN_CATEGORY="category"; }} db.execSQL(SQL_CREATE_CATEGORIES_TABLE); Quay trở lại file lúc trước, ghi đè phương thức onCreate với onUpgrade sau kế thừa SQLiteOpenHelper Sử dụng cú pháp tạo bảng với khóa cho bảng Category Code: final String SQL_CREATE_CATEGORIES_TABLE="CREATE TABLE " + QuizContract.CategoriesTable.TABLE_NAME + " ( "+ QuizContract.CategoriesTable._ID+" INTEGER PRIMARY KEY AUTOINCREMENT, " + QuizContract.CategoriesTable.COLUMN_NAME+" TEXT "+ " ) "; Tạo bảng Lesson, sử dụng id bảng Category tương ứng với Lesson tương ứng Ta tạo khóa ngoại để xác minh tồn giá trị bảng Lesson với bảng Category Code: final String SQL_CREATE_QUESTION_TABLE = "CREATE TABLE " + QuizContract.QuestionTable.TABLE_NAME+" ( " + QuizContract.QuestionTable._ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+ QuizContract.QuestionTable.COLUMN_QUESTION+" TEXT, " + 46 QuizContract.QuestionTable.COLUMN_OPTION1+" TEXT, " + QuizContract.QuestionTable.COLUMN_OPTION2+" TEXT, " + QuizContract.QuestionTable.COLUMN_OPTION3+" TEXT, " + QuizContract.QuestionTable.COLUMN_OPTION4+" TEXT, " + QuizContract.QuestionTable.COLUMN_ANSWER+" INTEGER, " + QuizContract.QuestionTable.COLUMN_LESSON+" TEXT, "+ QuizContract.QuestionTable.COLUMN_CATEGORY+" INTEGER, " + " FOREIGN KEY ( " + QuizContract.QuestionTable.COLUMN_CATEGORY+" ) REFERENCES " + QuizContract.CategoriesTable.TABLE_NAME+ " ( " + QuizContract.CategoriesTable._ID+" ) " + "ON DELETE CASCADE" + " ) "; db.execSQL(SQL_CREATE_QUESTION_TABLE); Gọi phương thức onUpgrade để xóa bảng tồn tạo lại bảng cho Category Lesson Code: @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + QuizContract.CategoriesTable.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS "+ QuizContract.QuestionTable.TABLE_NAME); onCreate(db); } Thêm đối tượng Category Lesson vào bảng Với Category, ta ghi cách đọc liệu, sử dụng trỏ Cusor, trỏ đến kết cần truy vấn di chuyển từ đầu đến cuối, sử dụng điều kiện lọc để lấy thuộc tính cần thiết tên table cần lấy (SELECT * FROM) 47 Còn với Lesson, khởi tạo thêm biến int category String lesson Đọc liệu từ Database sử dụng điều kiện lọc (=?) để lấy category với lesson, sử dụng trỏ Cusor trỏ đến liệu cần truy vấn từ đầu đến cuối liệu Sau đó, thực add liệu vào cách khởi tạo Constructor với category lesson có module Tại file java hình Question, gọi class lấy liệu nó, xếp ngẫu nhiên liệu, việc ta hiển thị chúng lên View có hình Bước phải ánh xạ View sử dụng hình Xây dựng đồng hồ đếm tối đa cho câu hỏi, câu hỏi tối đa có phút cho suy nghĩ chọn đáp án Khi 10 giây chuyển màu đỏ Đồng thời đồng hồ kết thúc thực việc kiểm tra kết mà người dùng chọn Tiếp theo ta tạo biến đếm số câu có list question, đủ số câu hỏi chương trình kết thúc, khơng lấy giá trị tương ứng từ list question (câu hỏi đáp án tương ứng) Thực việc kiểm tra kết đồng hồ kết thúc người dùng chọn đáp án nhấn nút xác nhận, đáp án với thứ tự câu trả lời tương ứng điểm cộng (câu đúng) Hiển thị câu sai, câu background chuyển sang màu xanh, câu chọn mà sai hiển thị màu đỏ Sau đủ số câu hỏi tương ứng với thể loại bảng SQLite, chương trình kết thúc gửi lại điểm sang cho hình StartQuestion để hiển thị Code: private void finishQuiz() { Intent result = new Intent(); 48 result.putExtra(EXTRA_SCORE, score); setResult(RESULT_OK, result); finish(); } Ngoài ra, số câu hỏi chưa hết mà người dùng muốn dừng chơi ta tạo kiện cho nút Back hình Code: @Override public void onBackPressed() { if (backPressedTime + 2000 > System.currentTimeMillis()) { finishQuiz(); } else { Toast.makeText(this, "Nhấn lần để kết thúc", Toast.LENGTH_SHORT).show(); } backPressedTime = System.currentTimeMillis(); customType(QuesActivity.this, "right-to-left"); } Chương trình hình Quesion kết thúc ta phải tắt đồng hồ, sử dụng phương thức onDestroy Code: @Override protected void onDestroy() { super.onDestroy(); if (countDownTimer != null) { countDownTimer.cancel(); } } 49 Bước 5: Dữ liệu điểm chuyển cho hình lựa chọn đề Sử dụng phương thức onActivityResult để nhận giá trị điểm số @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==REQUEST_CODE) { if(resultCode==RESULT_OK){ int score=data.getIntExtra(QuesActivity.EXTRA_SCORE,0); tvscore.setText(""+score); }}} 3.3 Thực nghiệm Hình 3.8: Kết chương trình Kết đạt được: Hiểu nắm bước xây dựng phát triển ứng dụng Android Studio 50 Thao tác sử dụng thư viện có Android Studio Github Tạo thành công sở liệu từ SQLite Bước đầu xây dựng chức lấy liệu từ SQLite, hồn thành project hồn chỉnh Vẫn cịn số thiếu sót từ ứng dụng, chưa khai thác hồn tồn SQLite, câu hỏi ứng dụng thiếu hình ảnh 51 KẾT LUẬN Kết thực nghiệm: Sử dụng thành thạo thư viện có Android từ Github Sử dụng kỹ thuật lập trình với sở liệu SQLite để xây dựng ứng dụng truy xuất sở liệu với thao tác liệu Bên cạnh cịn số điểm chưa đạt được, việc lưu trữ ảnh SQLite để hoàn thiện câu hỏi Hướng phát triển đề tài: Đầu tiên thêm liệu hình ảnh vào SQLite Phát triển lên ứng dụng lớn việc học tập, ví dụ app tốn học, hình học, Khi nắm vững hiểu sâu SQLite xây dựng ứng dụng có tính lưu trữ cao cơng việc đời sống 52 TÀI LIỆU THAM KHẢO [1] Jesse Feiler, Introducing SQLite for Mobile Developers, 2015 [2] Mark L.Murphy, Android Development for External Displays, 2013 [3] Paul Sanderson, SQLite Forensics, 2018 [4] Rick F.van der Lans, The SQL Guide to SQLite, 2009 [5] Sribatsa Das, SQLite for Mobile Apps Simplified, 2014 [6] Vivian Siahaan, Rismon Hasiholan Sianipar, SQLite For Beginners, 2019 ... lý thuyết Đề tài ? ?Thiết kế trò chơi kiểm tra IQ thiết bị di động” ứng dụng chạy điện thoại sử dụng hệ điều hành Android Ứng dụng gồm: + Phần ứng dụng điện thoại phát triển Android SDK + Phần... trình như: lập trình ứng dụng với Android Thứ hai phát triển ứng dụng có tính thực tiễn cao, có khả triển khai ứng dụng vào thực tế, giúp ta làm quen với trắc nghiệm toán IQ 1.2.2 Ý nghĩa đề tài... thực phần từ triển khai ứng dụng hoàn chỉnh theo bước sau: + Khảo sát lấy yêu cầu người sử dụng điện thoại ứng dụng trắc nghiệm mobile + Tiếp đến, em nghiên cứu công nghệ phát triển ứng dụng chạy

Ngày đăng: 08/04/2021, 19:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w