NỘI DUNG, KẾT QUẢ NGHIÊN CỨU
1.1 Ngôn ngữ lập trình Pascal
1.1.1 Cấu trúc một chương trình Pascal a Các lệnh điều kiện
• Lệnh điều kiện: IF… THEN…
Cấu trúc lệnh: IF () THEN ;
Lưu đồ biểu diễn lệnh:
Khi máy gặp lệnh IF THEN, nó sẽ kiểm tra một biểu thức logic Nếu biểu thức này cho giá trị TRUE, máy sẽ thực hiện lệnh 1; ngược lại, nếu giá trị là FALSE, máy sẽ bỏ qua lệnh 1 và thực hiện lệnh 2 Do đó, lệnh 1 chỉ được thực hiện khi điều kiện được thỏa mãn.
• Lệnh điều kiện IF… THEN….ELSE……
Cấu trúc lệnh: IF () THEN ; ELSE ;
CƠ SỞ LÝ THUYẾT
Ngôn ngữ lập trình Pascal
1.1.1 Cấu trúc một chương trình Pascal a Các lệnh điều kiện
• Lệnh điều kiện: IF… THEN…
Cấu trúc lệnh: IF () THEN ;
Lưu đồ biểu diễn lệnh:
Khi gặp lệnh IF THEN, máy sẽ kiểm tra biểu thức logic; nếu biểu thức này trả về giá trị TRUE, máy sẽ thực hiện lệnh 1 Ngược lại, nếu biểu thức logic cho giá trị FALSE, lệnh 1 sẽ bị bỏ qua và máy sẽ chuyển sang thực hiện lệnh 2 Do đó, lệnh 1 chỉ được thực hiện khi điều kiện được thỏa mãn.
• Lệnh điều kiện IF… THEN….ELSE……
Cấu trúc lệnh: IF () THEN ; ELSE ;
Lệnh IF THEN ELSE cho phép thực hiện nếu biểu thức điều kiện thỏa mãn, sau đó tiếp tục với Nếu điều kiện không thỏa mãn, sẽ bị bỏ qua và sẽ được thực hiện, tiếp theo là Điều này cho thấy rằng, bất kể điều kiện đúng hay sai, câu lệnh trong If vẫn được thực hiện trước khi chuyển sang lệnh tiếp theo Ngoài ra, còn có các lệnh lựa chọn khác như lệnh CASE… OF….
CASE OF CASE OF
: ; : ;
: ; : ;
: ; :
Biểu thức không còn chỉ là biểu thức Boolean như trong IF mà là các giá trị kiểu kiệt kê Lệnh CASE…OF kết thúc là từ khóa END
Lệnh CASE OF cho phép thực hiện lệnh thứ k khi giá trị của biến hoặc biểu thức khớp với giá trị khai báo thứ k, sau đó thoát khỏi lệnh CASE Nếu không có giá trị nào khớp, sẽ không có lệnh nào được thực hiện (trong trường hợp thiếu) hoặc sẽ thực hiện lệnh thứ N+1 (trong trường hợp đủ).
• Lệnh lặp có số vòng lặp xác định (FOR)
Với số lần lặp biết trước ta sử dụng FOR với 2 mẫu:
+ Mẫu 1: Theo chiều tiến của biến đếm:
FOR := TO DO ; Lưu đồ vòng lặp xác định For…to…do…:
Hình 1.4 Lưu đồ biểu diễn lệnh FOR
Giải thích sự hoạt động của lệnh FOR (mẫu 1):
(1) Đầu tiên, nhận giá trị của
(2) Máy kiểm tra xem giá trị của có nhỏ hơn hoặc bằng giá trị của không (tức xét biểu thức Biểu thức 1
Lệnh WHILE DO trong lập trình được sử dụng để lặp thực hiện một lệnh cho đến khi một biểu thức logic không còn đúng Khi máy gặp lệnh này, nó sẽ kiểm tra biểu thức logic; nếu kết quả là True, lệnh sẽ được thực hiện liên tục Đối với các lệnh phức tạp, cần đặt chúng trong cặp từ khóa Begin và End để đảm bảo thực thi đúng cách.
Trong vòng lặp phải có lệnh nào đó làm thay đổi giá trị một biến trong
Biểu thức logic là yếu tố quyết định việc dừng vòng lặp; nếu không có biểu thức này, vòng lặp sẽ tiếp tục lặp mãi mà không dừng lại Khi vào vòng lặp, máy sẽ kiểm tra biểu thức logic, và nếu điều kiện không được thỏa mãn, máy sẽ tự động thoát khỏi vòng lặp mà không thực hiện bất kỳ lệnh nào bên trong đó.
1.1.2 Các cấu trúc dữ liệu phức tạp a Phương pháp lập trình theo modun
- Tư tưởng lập trình theo modun:
Lập trình phân rã là phương pháp chia nhỏ bài toán lớn thành các bài toán nhỏ hơn, được gọi là mô-đun Quá trình này diễn ra qua nhiều cấp độ cho đến khi không thể phân rã thêm Mỗi mô-đun thực hiện một nhiệm vụ cụ thể và độc lập trong chương trình, giúp tối ưu hóa quá trình phát triển phần mềm.
- Đệ qui của chương trình con:
Trong một chương trình con, có thể xảy ra việc gọi lại chính chương trình con đó, hiện tượng này được gọi là tính đệ quy Một ví dụ điển hình của tính đệ quy là phép tính giai thừa, được định nghĩa bởi công thức n! = 1.2.3 (n-1).n, với n là số nguyên và n phải lớn hơn 0.
1 khi n=0 hoặc n!(n-1)!.n khi n > 1 b Cấu trúc kiểu dữ liệu tập hợp
Tập hợp là nhóm các phần tử có chung một tính chất, thường được mô tả bằng phương pháp liệt kê Mỗi tập hợp bao gồm các đối tượng có cùng bản chất, và trong Pascal, điều này có nghĩa là chúng phải có cùng kiểu mô tả Kiểu này có thể là kiểu cơ bản như boolean, char, byte hoặc một đoạn con, nhưng không được là số thực Để khai báo kiểu và biến kiểu tập hợp, người ta sử dụng từ khóa thích hợp.
SET OF c Cấu trúc dữ liệu mảng
Mảng dữ liệu là một tập hợp hữu hạn các phần tử có cùng kiểu dữ liệu, với số lượng phần tử cần được xác định ngay khi khai báo Mỗi phần tử trong mảng có thể được truy xuất trực tiếp bằng cách sử dụng tên mảng kèm theo chỉ số truy cập trong ngoặc vuông [ ] Có hai cách để khai báo mảng.
- Khai báo trực tiếp: var ten_bien: Array [kieu_chi_dan] of kieu_phan_tu;
- Khai báo gián tiếp thông qua định nghĩa kiểu dữ liệu mới: type ten_kieu = Array [kieu_chi_dan] of kieu_phan_tu; var ten_bien:ten_kieu;
Kiểu phần tử của mảng không bị giới hạn như kiểu chỉ dẫn và có thể bao gồm các kiểu dữ liệu có cấu trúc Ví dụ dưới đây minh họa cách khai báo một mảng với các phần tử cũng là mảng Cấu trúc dữ liệu xâu là một ví dụ điển hình cho điều này.
Xâu ký tự là một kiểu dữ liệu linh hoạt, cho phép xử lý các chuỗi và dãy ký tự có độ dài thay đổi, phục vụ cho nhu cầu xử lý văn bản và ngữ nghĩa Điểm tương đồng giữa xâu ký tự và mảng là cả hai đều lưu trữ dữ liệu, nhưng khác biệt lớn nhất là số ký tự trong xâu ký tự có thể thay đổi, trong khi số phần tử của mảng là cố định.
Khai báo: o Khai báo trực tiếp:
VAR : STRING[]; o Hoặc khai báo gián tiếp:
TYPE = STRING[];
Tổng quan về hệ điều hành Android trên thiết bị di động
Android là hệ điều hành di động phát triển bởi Google, dựa trên nền tảng Linux kernel và phần mềm nguồn mở Ban đầu, nó được Android Inc phát triển và sau đó được Google mua lại vào năm 2005 Với một cộng đồng phát triển ứng dụng lớn, Android sử dụng ngôn ngữ lập trình Java đã được sửa đổi để mở rộng chức năng thiết bị Tính đến quý 3 năm 2012, Android chiếm 75% thị phần smartphone toàn cầu, với 500 triệu 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 này cũng khiến Android trở thành mục tiêu trong các vụ kiện liên quan đến bằng sáng chế.
"cuộc chiến điện thoại thông minh" giữa các công ty công nghệ
Hệ điều hành Android là một nền tảng mạnh mẽ với bảo mật cao, hỗ trợ nhiều công nghệ tiên tiến như 3G, GPS, EDGE và Wifi Nó tương thích với nhiều loại phần cứng và thiết bị nhập liệu như bàn phím, cảm ứng và trackball Với khả năng kết nối cao với các mạng không dây, Android cho phép người dùng truy cập dễ dàng Hệ điều hành này cũng hỗ trợ công nghệ OpenGL, giúp phát phát huy khả năng chơi media, hoạt hình và đồ họa, tạo điều kiện thuận lợi cho việc phát triển các ứng dụng có giao diện phức tạp, đặc biệt là trò chơi.
Năm 2008, Android đã chính thức mở mã nguồn, cho phép các hãng điện thoại tùy chỉnh và thiết kế lại hệ điều hành theo mẫu mã của họ Hệ điều hành mở này hoàn toàn miễn phí, giúp tiết kiệm chi phí phát triển đáng kể cho cả các hãng sản xuất nhỏ và lớn như Samsung, HTC.
Google không thu phí các hãng sản xuất điện thoại cho hệ điều hành Android, điều này giúp họ dễ dàng tiếp cận thị trường di động Nhờ vào việc tích hợp các dịch vụ như Google Search và Google Maps trên mỗi thiết bị, Google có cơ hội gia tăng doanh thu chủ yếu từ quảng cáo trên các nền tảng này.
Các nhà phát triển ứng dụng (developers) có thể dễ dàng phát triển ứng dụng trên nền tảng Android nhờ vào sự phổ biến của hệ điều hành này Điều này mang lại sự tin tưởng rằng ứng dụng của họ sẽ hoạt động trên nhiều dòng điện thoại khác nhau mà không cần phải lo lắng về thiết bị cụ thể hay phiên bản hệ điều hành Nền tảng Android hỗ trợ nhiều loại máy, và máy ảo Java đảm nhận việc thực thi các ứng dụng tương thích với từng thiết bị Hơn nữa, các ứng dụng được viết bằng ngôn ngữ Java kết hợp với XML, giúp tăng tính khả chuyển và linh hoạt trong việc phát triển.
1.2.2 Kiến trúc và các thành phần
1.2.2.1 Kiến trúc hệ điều hành
Hệ điều hành Android có 4 tầng từ dưới lên trên là: Tầng hạt nhân Linux (phiên bản 2.6), tầng Libraries & Android Runtime, tầng Application Framework và tầng Applications
Hệ điều hành Android dựa trên nhân Linux 2.6, đảm nhiệm các dịch vụ hệ thống như bảo mật, quản lý bộ nhớ và quản lý tiến trình, bao gồm xử lý tiến trình và đa luồng Nhân Linux cũng đóng vai trò là lớp trừu tượng giữa phần cứng và phần mềm, hỗ trợ các chức năng như ngăn xếp mạng và trình điều khiển thiết bị, bao gồm giao tiếp USB và hồng ngoại.
Hình 1.9 Các thành phần nhân Linux
- Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng…)
- Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ camera về
- Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth
- USB Driver: Điều khiển bàn phím
- Wifi Driver: Chịu trách nhiệm về việc thu phát sóng wifi
- Audio Driver: Điều khiển các bộ thu phí phát âm thanh, giải mã các tín hiệu dạng audio thành tín hiệu số và ngược lại
- Power Management: Giám sát việc tiêu thụ điện năng
- M-system Driver: Quản lý việc đọc ghi… lên các thiết bị nhớ như thẻ SD, flash
Binder IPC Driver là thành phần quan trọng trong việc kết nối và giao tiếp với các mạng vô tuyến như CDMA, GSM, 3G, 4G và 5G, đảm bảo rằng các chức năng truyền thông được thực hiện một cách hiệu quả.
Tầng này bao gồm một loạt thư viện C/C++ quan trọng, như OpenGL, thư viện tạo đồ họa 3D theo chuẩn OpenGLES 1.0 API; FreeType, hỗ trợ xử lý bitmap và font vector; GGL, thư viện cơ bản cung cấp engine đồ họa 2D; Libc, thư viện C chuẩn tối ưu cho thiết bị Linux-based; SQLite Engine, cơ sở dữ liệu quan hệ gọn nhẹ cho lưu trữ dữ liệu ứng dụng; và SSL, thư viện hỗ trợ giao thức mã hóa Secure Sockets Layer nhằm bảo mật truyền thông Internet.
Ngoài ra Android còn có thể có các API phụ thuộc thiết bị như android Location, android Media, android Open GL, android Hardware… c Android Runtime
Android Runtime bao gồm các thư viện cần thiết cho chương trình viết bằng ngôn ngữ Java hoạt động, tương tự như mô hình chạy Java trên máy tính Nó bao gồm hai phần chính: thư viện lõi (Core Library) chứa các lớp như JAVA IO, Collections và File Access, cùng với máy ảo Java (Dalvik Virtual Machine).
Ứng dụng Java trên hệ điều hành Android không sử dụng JRE của Sun (Oracle) mà chạy trên máy ảo Dalvik do Google phát triển Máy ảo Dalvik thực thi các tệp tin dex, khác với Java khi chuyển đổi sang dạng bytecode Định dạng dex được tối ưu hóa để tiết kiệm bộ nhớ tối thiểu.
Các dịch vụ kiến trúc cơ bản của mọi ứng dụng bao gồm: Activity Manager, quản lý vòng đời và các tầng Activity; Views, tạo giao diện người dùng cho các Activity; Notification Manager, cung cấp cơ chế gửi thông báo đến người dùng; Content Provider, cho phép chia sẻ dữ liệu giữa các ứng dụng; và Resource Manager, hỗ trợ các thành phần không thuộc mã nguồn như chuỗi ký tự đồ họa.
1.2.2.2 Các thành phần của một ứng dụng Android
Một ứng dụng trên Android được cấu thành từ 4 thành phần cơ bản sau:
Ngoài ra còn một số thành phần khác Các thành phần này không nhất thiết phải có mặt đầy đủ trong ứng dụng a Hoạt động (Activity)
Một Activity là giao diện người dùng trực quan mà người dùng có thể tương tác khi được kích hoạt Ứng dụng có thể bao gồm nhiều Activity, cho phép chúng gọi lẫn nhau Mỗi Activity được kế thừa từ lớp android.app.Activity.
Mỗi hoạt động trong ứng dụng đều có một cửa sổ chính để hiển thị nội dung, thường chiếm toàn bộ màn hình Ngoài cửa sổ chính, còn có thể xuất hiện các cửa sổ con như hộp thoại Nội dung của cửa sổ hoạt động được cung cấp thông qua một hệ thống cấp bậc các View, là các đối tượng thuộc lớp Views.
Hệ thống quản lý các hoạt động thông qua một cấu trúc dữ liệu ngăn xếp Khi một hoạt động mới được khởi tạo, nó sẽ được đẩy vào ngăn xếp và chuyển sang trạng thái thực thi, trong khi hoạt động trước đó sẽ chuyển sang trạng thái chờ Khi hoạt động mới hoàn thành, hoạt động trước đó sẽ trở lại trạng thái kích hoạt.
Một Activity có 3 trạng thái chính:
- Active hoặc running khi nó ở trên một màn hình và nhận tương tác người dùng
- Paused khi Activity không còn là trọng tâm trên màn hình nhưng vẫn hiển thị trước người dùng
An activity that is obscured will enter a Stopped state, yet it retains all its status information This state is often triggered by the system when there is insufficient memory As the application transitions between states, it invokes callback functions corresponding to each transition: void onCreate(Bundle savedInstanceState), void onStart(), void onRestart(), void onResume(), void onPause(), void onStop(), and void onDestroy Additionally, services (Service) play a crucial role in managing background tasks.
Ngôn ngữ lập trình Java
1.3.1 Các đặc trưng của Java
Ngôn ngữ lập trình Java có 8 đặc trưng chính như sau:
- Độc lập về phần cứng và hệ điều hành
1.3.2 Bộ công cụ phát triển JDK (Java Development Kit)
JDK bao gồm Java Plug-In, cho phép thực thi trực tiếp Java Applet và JavaBean thông qua JRE, thay vì sử dụng môi trường thực thi mặc định của trình duyệt.
JDK chứa các công cụ sau: o Trình biên dịch, 'javac'
Cú pháp: javac [options] sourcecodename.javaTrình thông dịch, 'java'
Cú pháp: java [options] classname o Trình dịch ngược, 'javap'
Cú pháp: javap [options] classname o Công cụ sinh tài liệu - 'javadoc'
Cú pháp: javadoc [options] sourcecodename.java o Chương trình tìm lỗi - Debug, 'jdb‘
Cú pháp: jdb [options] sourcecodename.java hoặc jdb -host -password [options] sourcecodename.java
1.3.3 Cấu trúc của một chương trình Java
Trong Java, mọi mã, bao gồm biến và cách khai báo, phải được thực hiện trong phạm vi một lớp Mỗi khai báo lớp diễn ra sau một phát biểu nhập, và một chương trình đơn giản có thể chỉ chứa một vài lớp, những lớp này có thể mở rộng thành các lớp khác Mỗi phát biểu kết thúc bằng dấu chấm phẩy, và chương trình có thể bao gồm ghi chú, chỉ dẫn, mà khi dịch, chương trình sẽ tự động loại bỏ Dạng cơ bản của một lớp được xác định như sau:
/* Ghi chú*/ int num1,num2; // Khai báo biến với các dấu phẩy giữa các biến
// Method body statement (s); // Kết thúc bởi dấu chấm phẩy
"Token" là đơn vị nhỏ nhất và quan trọng nhất trong trình biên dịch của chương trình Java Một chương trình Java được cấu thành từ nhiều "token", thể hiện hình thức đa hình trong quá trình thực thi (runtime).
PHÂN TÍCH VÀ THIẾT KẾ
Phân tích hệ thống
2.1.1 Xác định yêu cầu a Các chức năng chính của chương trình o Học lý thuyết: Cho phép người sử dụng tìm kiếm các nội dung lý thuyết muốn học và các ví dụ minh họa, hiển thị nội dung muốn xem o Xem bài tập: Cho phép người sử dụng lựa chọn và xem nội dung của các dạng bài tập mẫu, các bài tập có hướng dẫn o Câu hỏi: Cho phép lựa chọn và xem những câu hỏi quan trọng về ngôn ngữ lập trình Pascal o Trắc nghiệm: Cho phép người dùng thi trắc nghiệm o Xem video: Cho phép người dùng xem những video học lập trình Pascal trên Youtube b Biểu đồ UserCase
Biểu đồ Usercase thể hiện số lượng chức năng mà người dùng có thể tương tác trực tiếp với chương trình Khi chương trình hoạt động, người dùng sẽ có khả năng sử dụng một số chức năng nhất định.
Xem bài tập Xem nội dung Người sử dụng
Câu hỏi Xem nội dung
Trắc nghiệm Thi trắc nghiệm Video
2.1.2.1 Sơ đồ phân cấp chức năng
Hình 2.2 Sơ đồ phân cấp chức năng
2.1.2.2 Sơ đồ luồng dữ liệu a Sơ đồ luồng dữ liệu mức khung cảnh
Hình 2.3 Sơ đồ luồng dữ liệu mức khung cảnh b Sơ đồ luồng dữ liệu mức đỉnh
Hình 2.4 Sơ đồ luồng dữ liệu mức đỉnh
Lý thuyết Trả lời yêu cầu
Người sử dụng Learning Pascal
Xem video c Sơ đồ luồng dữ liệu mức dưới đỉnh
Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng Học lý thuyết
Hình 2.5 Sơ đồ luồng dữ liệu chức năng Học lý thuyết
Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng Xem bài tập
Hình 2.6 Sơ đồ luồng dữ liệu chức năng Xem bài tập
Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng Câu hỏi
Hình 2.7 Sơ đồ luồng dữ liệu chức năng Câu hỏi
DS câu hỏi và câu trả lời
Người sử dụng Học lý thuyết
Lý thuyết Bài lý thuyết
Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng Trắc nghiệm
Hình 2.8 Sơ đồ luồng dữ liệu chức năng Trắc nghiệm
Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng Xem video
Hình 2.9 Sơ đồ luồng dữ liệu chức năng Xem video
Thiết kế
2.2.1 Thiết kế cơ sở dữ liệu
Hệ thống có một thực thể Cauhoi, thực thể này thể hiện các câu hỏi và câu trả lời sử dụng trong chức năng thi trắc nghệm
Bảng 2.1 Danh sách các thực thể
Tên thực thể Mô tả Thuộc tính, chú thích
ID: Mã câu hỏi Cauhoi: Nội dung câu hỏi
A: Đáp án A B: Đáp án B C: Đáp án C D: Đáp án D Dapan: Đáp án đúng
DS câu hỏi và câu trả lời Người sử dụng
Nội dung video Người sử dụng
Dưới đây là thiết kế chi tiết cho bảng câu hỏi:
Cột Kiểu dữ liệu Khoá chính Ý nghĩa
ID Integer X Mã câu hỏi
Cauhoi Text Nội dung câu hỏi dapanA Text Đáp án A dapanB Text Đáp án B dapanC Text Đáp án C dapanD Text Đáp án D
Dapandung Integer Đáp án đúng của câu hỏi
Bo_CH Integer Bộ câu hỏi
2.2.2 Thiết kế mô hình lớp
Mô hình lớp trong ứng dụng hỗ trợ học lập trình Pascal thể hiện mối liên hệ chặt chẽ giữa các lớp, giúp chúng liên kết và tương tác hiệu quả Sự kết hợp này tối ưu hóa hoạt động của chương trình, mang lại trải nghiệm học tập tốt hơn cho người dùng.
Lớp MainActivity là thành phần cốt lõi của ứng dụng, chịu trách nhiệm xử lý hầu hết các yêu cầu từ người dùng Lớp này có mối liên hệ chặt chẽ với các lớp khác trong mô hình, đảm bảo sự tương tác và hoạt động hiệu quả của toàn bộ chương trình.
- Lớp LyThuyetActivity: Lớp này giúp cho người sử dụng có thể lựa chọn học lý thuyết hoặc xem những ví dụ minh họa
- Lớp BaitapActivity: Lớp này giúp cho người sử dụng có thể lựa chọn xem bài tập có lời giải hoặc bài tập tự giải
- Lớp CoLGActivity: Hiển thị danh sách các dạng bài tập có lời giải
- Lớp KoLGActivity: Hiển thị danh sách các dạng bài tập không có lời giải (chỉ có hướng dẫn giải)
- Lớp Nd_BTActivity: Hiển thị nội dung bài tập
- Lớp ViduActivity: Hiển thị danh sách các ví dụ, cho phép lựa chọn
- Lớp NdViduActivity: Hiển thị nội dung của ví dụ
- Lớp NdBaiTapActivity: Hiển thị nội dung bài tập
- Lớp NdLythuyetActivity: Lớp này giúp người sử dụng có thể lựa chọn chương lý thuyết muốn học
- Lớp LtChuong1Activity: Hiển thị nội dung lý thuyết của chương 1
- Lớp LtChuong2Activity: Hiển thị nội dung lý thuyết của chương 2
- Lớp LtChuong3Activity: Hiển thị nội dung lý thuyết của chương 3
- Lớp CtLenhActivity: Hiển thị các cấu trúc lệnh trong Pascal
- Lớp CauhoiActivity: Hiển thị các câu hỏi quan trọng và câu trả lời
- Lớp Video Activity: Hiển thị các chức năng Xem video trực tuyến, Tới trang web và Đăng nhập facebook
- Lớp WebV Activity: Hiển thị các video hướng dẫn học lập trình Pascal trên Youtube
- Lớp Thi Activity: Hiển thị các câu hỏi và đáp án
- Lớp Diem Activity: Hiển thị điểm của người chơi
- Lớp ThongtinApp Activity: Hiển thị thông tin ứng dụng
- Các trang web Đặc tả hệ thống:
- Người dùng chọn các chương trình của hệ thống để thực hiện
Các chức năng như Học lý thuyết, Xem bài tập và Thi trắc nghiệm sẽ tải các tệp văn bản, hình ảnh cùng với các câu hỏi trắc nghiệm có sẵn trong hệ thống để hiển thị.
- Chức năng Xem video sẽ load video youtube, chức năng này cần có mạng để thực hiện Ngoài ra, chúng ta còn có thể đăng nhập facebook và gmail.
CÀI ĐẶT, THỬ NGHIỆM PHẦN MỀM
Cài đặt phầm mềm lên thiết bị Android
It seems that this video doesn't have a transcript, please try another video.
Để cài đặt file apk trên điện thoại Android mà không cần sử dụng CH Play, bạn cần sao chép file apk vừa xuất bản vào thẻ SD Tiếp theo, tải và cài đặt phần mềm Astro File Manager Mở ứng dụng này và tìm đến thư mục chứa file apk đã sao chép, sau đó nhấp vào file để bắt đầu quá trình cài đặt Máy sẽ hỏi bạn có muốn cài đặt ứng dụng không, bạn chỉ cần chọn Cài đặt để xác nhận Như vậy, bạn đã hoàn thành việc cài đặt file apk trên Android Chi tiết có thể xem tại: https://www.youtube.com/watch?v=MCjiee0g.
Danh sách các màn hình
Phần mềm hỗ trợ học lập trình Pascal (Learning Pascal) sử dụng các màn hình hiển thị dùng cho giao diện người dùng gồm có:
Bảng 3.1 Danh sách các màn hình
STT Tên màn hình Ý nghĩa, ghi chú
1 Màn hình chính Gồm các chức năng chính của chương trình
2 Màn hình lý thuyết Gồm 2 chức năng: Xem nội dung lý thuyết và xem ví dụ minh họa
3 Màn hình lựa chọn chương lý thuyết Gồm 3 chương tương ứng
4 Màn hình lựa chọn nội dung lý thuyết Danh mục các bài học lý thuyết
5 Màn hình hiển thị nội dung lý thuyết Nội dung các bài học lý thuyết
6 Màn hình hiển thị các cấu trúc lệnh Nội dung các cấu trúc lệnh
7 Màn hình hiển thị danh sách ví dụ Danh mục các ví dụ minh họa
8 Màn hình hiển thị các ví dụ Nội dung các ví dụ minh họa
9 Màn hình lựa chọn loại bài tập Hiển thị 2 loại bài tập mẫu và bài tập tự giải
10 Màn hình danh sách bài tập Danh mục các bài tập
11 Màn hình nội dung bài tập Nội dung các bài tập
12 Màn hình câu hỏi quan trọng Các câu hỏi và câu trả lời
13 Màn hình thi trắc nghiệm Hiển thị các câu hỏi và đáp án
14 Màn hình điểm thi Điểm thi trắc nghiệm của người chơi
15 Màn hình video Các chức năng: Video online, video offline, facebook
16 Màn hình WebView Hiển thị các video hoặc facebook
17 Màn hình Thông tin ứng dụng Thông tin ứng dụng
Chi tiết các màn hình
Sau khi hoàn thành khảo sát, phân tích và thiết kế hệ thống, tôi đã tiến hành xây dựng phần mềm "Hỗ trợ học lập trình Pascal trên thiết bị di động" Dưới đây là một số giao diện của phần mềm để người dùng dễ hình dung Cấu trúc phần mềm được tối ưu hóa để đảm bảo tính tiện lợi và thao tác nhanh chóng Giao diện đẹp mắt mang lại cảm giác thoải mái cho người sử dụng.
Màn hình chính của chương trình cung cấp nhiều tùy chọn cho người dùng để truy cập các chức năng khác nhau Đây là giao diện đầu tiên mà người dùng thấy khi khởi động phần mềm.
Màn hình chính của ứng dụng bao gồm 6 chức năng chính: Lý thuyết, Bài tập, Trắc nghiệm, Xem video, Câu hỏi và Thông tin Để thiết kế màn hình này, các views đã được sử dụng như mô tả dưới đây.
Bảng 3.2 Mô tả chi tiết màn hình chính
1 btn_lythuyet ImageButton Chuyển đến màn hình lý thuyết
2 btn_baitap ImageButton Chuyển đến màn hình bài tập
3 btn_tracnghiem ImageButton Chuyển đến màn hình trắc nghiệm
4 btn_video ImageButton Chuyển đến màn hình video
5 btn_thongtin ImageButton Chuyển đến màn hình thông tin
6 tv_lythuyet TextView Hiển thị chữ Lý thuyết
7 tv_baitap TextView Hiển thị chữ Bài tập
8 tv_tracnghiem TextView Hiển thị chữ Trắc nghiệm
9 tv_video TextView Hiển thị chữ Xem video
10 tv_thongtin TextView Hiển thị chữ Thông tin
Khi ta bấm vào nút Lý thuyết ở màn hình chính thì màn hình lý thuyết hiển thị như hình sau:
Hình 3.3 Màn hình lý thuyết
Màn hình lý thuyết bao gồm một TextView và hai nút bấm, mỗi nút tương ứng với chức năng xem nội dung lý thuyết và ví dụ minh họa.
Bảng 3.3 Mô tả chi tiết màn hình lý thuyết
1 tv_Lythuyet TextView Hiển thị chữ LÝ
2 Btn_ndLythuyet ImageButton Chuyển sang trang nội dung lý thuyết
3 btn_Vdminhoa TextView Chuyển sang trang ví dụ minh họa
• Màn hình lựa chọn chương lý thuyết
Khi người dùng chọn mục Nội dung lý thuyết trên màn hình, một giao diện lựa chọn chương lý thuyết sẽ xuất hiện, phân chia nội dung thành 3 chương để thuận tiện cho việc tìm kiếm.
Hình 3.4 Màn hình chức năng chọn chương lý thuyết Nội dung lý thuyết gồm 3 chương, mỗi chương em dùng một button để thực hiện chức năng chuyển trang
Dưới đây là mô tả cho màn hình trên:
Bảng 3.4 Mô tả chi tiết màn hình chọn chương lý thuyết
1 tbr_chuongLT Toolbar Hiển thị tiêu đề của trang
2 btn_chuong1 ImageButton Chuyển đến trang nội dung lý thuyết chương 1
3 btn_chuong2 Image Button Chuyển đến trang nội dung lý thuyết chương 2
4 btn_chuong3 Image Button Chuyển đến trang nội dung lý thuyết chương 3
• Màn hình lựa chọn nội dung lý thuyết
Từ màn hình chọn chương lý thuyết, người dùng có thể chọn chương học để truy cập vào màn hình lựa chọn nội dung lý thuyết, nơi hiển thị danh sách các bài học để người dùng lựa chọn.
Hình 3.5 Màn hình lựa chọn nội dung lý thuyết
Màn hình hiển thị một ListView, trong đó mỗi dòng đại diện cho một phần lý thuyết cụ thể Người dùng có thể nhấp vào bất kỳ dòng nào để xem nội dung lý thuyết tương ứng.
Bảng 3.5 Mô tả chi tiết màn hình lựa chọn nội dung lý thuyết
1 tv_tieude TextView Hiển thị tiêu đề
2 lv_Ndlythuyet ListView Chuyển đến trang hiển thị nội dung lý thuyết tương ứng
• Màn hình hiển thị nội dung lý thuyết
Khi nhấn vào các mục lý thuyết trong danh sách của màn hình chọn nội dung, lý thuyết mong muốn sẽ được hiển thị như hình dưới đây.
Màn hình hiển thị lý thuyết bao gồm một TextView để trình bày nội dung đã chọn, cùng với hai nút điều hướng cho phép người dùng xem nội dung lý thuyết trước đó hoặc tiếp theo.
Mô tả chi tiết màn hình:
Bảng 3.6 Mô tả chi tiết màn hình hiển thị nội dung lý thuyết
1 tv_tenbai TextView Hiển thị tiêu đề
2 tv_noidung TextView Hiển thị nội dung lý thuyết
3 btn_prev Button Hiển thị nội dung bài trước
4 btn_next Button Hiển thị nội dung bài sau
Khi chọn chương 2 trong màn hình lý thuyết, người dùng sẽ thấy một ListView hiển thị các nội dung lý thuyết cụ thể Bằng cách nhấp vào mục 'Các cấu trúc lệnh', cú pháp và lưu đồ hoạt động của lệnh sẽ được hiển thị kèm theo giải thích chi tiết về lưu đồ đó.
Để thiết kế màn hình hiển thị các cấu trúc lệnh, tôi đã sử dụng 2 TextView với các phần text cố định là "Cú pháp" và "Giải thích lưu đồ" Nội dung của cú pháp, giải thích và lưu đồ sẽ được thay đổi tùy theo câu lệnh mà người dùng chọn để hiển thị.
Bảng 3.7 Mô tả chi tiết màn hình hiển thị các cấu trúc lệnh
1 tv_tenlenh TextView Hiển thị tên lệnh
2 tv1 TextView Hiển thị chữ Cú pháp
3 tv2 TextView Hiển thị chữ Giải thích lưu đồ
4 tv_cuphap TextView Hiển thị cú pháp của lệnh
5 tv_giaithich TextView Giải thích lưu đồ
6 img_luudo ImageView Hiển thị lưu đồ cú pháp
• Màn hình hiển thị danh sách ví dụ
Ta bấm vào nút Ví dụ minh họa ở màn hình lý thuyết để chuyển sang trang hiển thị danh sách ví dụ
Màn hình hiển thị danh sách ví dụ được thiết kế với đối tượng ListView, tương tự như màn hình lựa chọn nội dung lý thuyết Mô tả chi tiết về màn hình này sẽ giúp người dùng dễ dàng tương tác và lựa chọn thông tin cần thiết.
Bảng 3.8 Mô tả chi tiết màn hình hiển thị danh sách ví dụ
1 tv_TieuDe TextView Hiển thị dòng chữ Ví dụ minh họa
2 Lv_dsVidu ListView Hiển thị danh sách ví dụ
• Màn hình hiển thị nội dung ví dụ
Ta bấm vào ví dụ muốn xem ở màn hình hiển thị danh sách ví dụ để chuyển sang trang hiển thị nội dung ví dụ như hình dưới đây:
Màn hình hiển thị nội dung ví dụ bao gồm nhiều TextView và ImageView khác nhau, trong đó các TextView thể hiện loại ví dụ và đề bài, còn ImageView hiển thị hình ảnh từ màn hình DosBox.
Bảng 3.9 Mô tả chi tiết màn hình hiển thị nội dung ví dụ
1 tv_tenvidu TextView Hiển thị tên ví dụ
2 tv_vd1 TextView Hiển thị chủ đề 1 và chữ Đề bài
3 tv_vd2 TextView Hiển thị chủ đề 2 và chữ Đề bài
4 de_bai1 TextView Hiển thị đề bài 1
5 de_bai2 TextView Hiển thị đề bài 2
6 tv_ct1 TextView Hiển thị chữ Chương trình
7 tv_ct2 TextView Hiển thị chữ Chương trình
8 tv_kq1 TextView Hiển thị chữ Kết quả
9 tv_kq2 TextView Hiển thị chữ Kết quả
10 tv_cy1 TextView Hiển thị chú ý của ví dụ 1
11 tv_cy2 TextView Hiển thị chú ý của ví dụ 2
12 img_ct1 ImageView Hiển thị ảnh chương trình của ví dụ 1
13 img_ct2 ImageView Hiển thị ảnh chương trình của ví dụ 2
14 img_kq1 ImageView Hiển thị ảnh kết quả chạy chương trình ở ví dụ 1
15 img_kq2 ImageView Hiển thị ảnh kết quả chạy chương trình ở ví dụ 2
• Màn hình lựa chọn loại bài tập
Người dùng có thể truy cập vào trang bài tập bằng cách nhấn nút Bài tập trên màn hình chính Tại đây, có hai loại bài tập được cung cấp: bài tập có lời giải và bài tập tự giải, trong đó bài tập tự giải vẫn đi kèm với hướng dẫn chi tiết về cách thực hiện.
Hình 3.10 Màn hình lựa chọn loại bài tập
Trong ứng dụng, chúng tôi sử dụng một ImageView để hiển thị hình ảnh trang trí, cùng với hai nút Button tương ứng với hai loại bài tập Khi người dùng nhấn vào nút, ứng dụng sẽ chuyển đến trang bài tập tương ứng, được mô tả chi tiết trong bảng dưới đây.
Bảng 3.10 Mô tả chi tiết màn hình lựa chọn loại bài tập
1 tv_Tieude TextView Hiển thị dòng chữ BÀI TẬP
2 Image ImageView Hiển thị hình ảnh
3 btn_Btmau Button Chuyển đến trang bài tập có lời giải
4 btn_Bttugiai Button Chuyển đến trang bài tập không có lời giải
• Màn hình danh sách bài tập
Màn hình này hiển thị sau khi ta bấm vào button ở màn hình lựa chọn loại bài tập Giao diện màn hình như sau:
KẾT LUẬN CHUNG
Sau khi nghiên cứu và thực hiện đề tài khóa luận, tôi đã phát triển thành công phần mềm hỗ trợ sinh viên học ngôn ngữ lập trình Pascal trên thiết bị di động Phần mềm này đã đạt được nhiều kết quả tích cực, giúp nâng cao hiệu quả học tập cho người dùng.
✓ Xây dựng thành công phần mềm hỗ trợ học lập trình Pascal gồm 5 chức năng chính là: Lý thuyết, Bài tập, Câu hỏi, Trắc nghiệm, Xem video
✓ Chương trình có giao diện thân thiện, đẹp mắt, dễ sử dụng và có ý nghĩa thực tiễn cao
✓ Chương trình cung cấp đầy đủ nội dung học lập trình Pascal của sinh viên trường đại học Hùng Vương
✓ Ứng dụng có khả năng triển khai trong thực tế, mang lại lợi ích cho người dùng, nhất là đối với sinh viên của trường Đại học Hùng Vương
Tuy nhiên phần mềm của em vẫn còn một số hạn chế:
✓ Tốc độ chương trình chưa tối ưu
✓ Chương trình chưa được triển khai trên hệ thống lớn
✓ Trong thời gian tới em sẽ hoàn thiện chương trình, khắc phục những hạn chế và phát triển chương trình trên các nền tảng khác như iOS, Windows Phone.
TÀI LIỆU THAM KHẢO
[1] Th.S Nguyễn Văn Hiệp - KS.Đinh Quang Hiệp (2015), Giáo trình lập trình Android cơ bản, NXB Đại học Quốc gia HCM
[2] Trường Đại học FPT (28/12/2015), Lập trình Android cơ bản, NXB
[3] Các địa chỉ trang web tham khảo:
- [https://developer.android.com/training/basics/firstapp/index.html
- https://android.googleblog.com/2012/09/google-play-hits-25-billion- downloads.html
- https://www.tutorialspoint.com/android/
- http://www.vietnamandroid.com/gioi-thieu
- https://en.wikipedia.org/wiki/Android_(operating_system)
- https://news.appota.com/bao-cao-thi-truong-mobile-viet-nam-q3-2016/
Download và cài đặt Java Development Kit
+ Download JDK (Java Development Kit) Để download JDK, trước tiên bạn hãy truy cập vào đường dẫn sau: http://www.oracle.com/technetwork/java/javase/downloads/index.html
Kiểm tra xem hệ điều hành của mình là 32bit hay 64bit để download bộ cài JDK phù hợp
Tìm đến vị trí bộ cài JDK vừa tải về rồi double click để tiến hành cài đặt
Nhấn "Next" cho đến khi được yêu cầu chọn vị trí cài đặt cho IDK Bạn có thể nhấn "Change" để thay đổi đến thư mục mong muốn Tôi đã chọn vị trí: C:\DevPrograms\Java\jdk1.8.0_45\.
Sau khi hoàn tất cài đặt JDK, bộ cài đặt sẽ yêu cầu bạn chỉ định vị trí cài đặt JRE Tôi đã chọn vị trí C:\DevPrograms\Java\jre.8.0_45\ để lưu trữ JRE.
Để thay đổi vị trí cài đặt cho JRE, bạn sẽ có được hai thư mục: JDK và JRE tại đường dẫn mà bạn đã chỉ định Đừng quên cấu hình biến môi trường cho Java để đảm bảo hệ thống nhận diện đúng các thư mục này.
➢ Nếu bạn sử dụng Window Vista hoặc Window 7:
Trên Desktop, nhấn phải chuột vào Computer, chọn Properties Sau đó chọn Advanced system settings, chọn tab Advanced rồi nhấn chuột vào button
Environment Variables Nhấn New để tạo mới một biến môi trường có tên “JAVA_HOME”
Biến môi trường JAVA_HOME chưa được tạo Nhập vào đường dẫn tới thư mục JDK như bên dưới, sau đó nhấn OK
• Variable value: C:\DevPrograms\Java\jdk1.8.0_45
Biến môi trường JAVA_HOME đã được tạo
Tiếp theo sửa đổi biến môi trường “path”
Sửa đổi biến môi trường Path Thêm vào phía trước giá trị của biến môi trường “path” đoạn sau:
Sau đó nhấn OK để đóng hộp thoại Như vậy là bạn đã cài đặt và cấu hình Java thành công
Download và cài đặt Genymotion
+ Đăng ký tài khoản và download genymotion
Để bắt đầu, bạn hãy truy cập trang web https://www.genymotion.com/ để đăng ký tài khoản miễn phí Quá trình đăng ký rất đơn giản, sau khi hoàn tất, bạn cần kiểm tra email đã sử dụng để đăng ký nhằm kích hoạt tài khoản của mình.
Để tải file cài đặt Genymotion, bạn truy cập genymotion.com/download/ Nếu máy tính của bạn chưa cài đặt Virtual Box, hãy chọn liên kết tải về có kèm Virtual Box để đảm bảo phần mềm hoạt động tốt.
Để bắt đầu cài đặt, bạn cần tìm vị trí lưu file đã tải về và nhấp đúp chuột trái vào file đó Giao diện đầu tiên sẽ hiện ra cho phép bạn chọn ngôn ngữ sử dụng; hãy chọn ngôn ngữ mà bạn quen thuộc và nhấn OK.
In Step 2, click on Next until you reach the interface displaying the "Select Additional Tasks" option Here, choose to create a desktop shortcut for the software on your computer, then click Next again Finally, press Install to complete the installation process.
Khi cài đặt Genymotion, bạn có thể sẽ thấy nó tự động cài đặt một số phần mềm hỗ trợ Ngoài ra, Genymotion sẽ hỏi bạn có muốn cài đặt VirtualBox hay không Nếu máy tính của bạn đã cài đặt phiên bản mới nhất của VirtualBox, bạn có thể bỏ qua bước này Nếu không, hãy chọn "Yes" để tiếp tục cài đặt.
Bước 4: Tại đây, ngoài cửa sổ cài đặt Genymotion (tạm thời bị dừng lại), chúng ta sẽ thấy một giao diện khác để tiến hành cài đặt VirtualBox.
Bước 5: Không cần thực hiện thêm bất kỳ phần mềm hay thiết lập nào khác, bạn chỉ cần nhấn Next cho đến khi hoàn tất Cuối cùng, hãy bấm Install; nếu có thông báo xuất hiện, hãy chọn mục "Always trust software " và sau đó nhấn lại Install để hoàn tất quá trình cài đặt.
Bước 6: Bỏ dấu tick ở Start Oracle WM VirtualBox và chọn vào Finish
Hoàn tất cài đặt VirtualBox, bạn sẽ thấy cửa sổ cài đặt cuối cùng của Genymotion Nhấn "Finish" để kết thúc quá trình cài đặt Sau khi cài đặt xong, khởi động Genymotion; trong lần khởi động đầu tiên, danh sách thiết bị sẽ trống Nhấn nút "Add" để tải một thiết bị mới Tại đây, bạn có thể chọn phiên bản, model hoặc tìm theo tên thiết bị yêu thích Sau khi xem kỹ thông số thiết bị, nhấn "Next" để tải về Bạn có thể tải nhiều thiết bị với cấu hình khác nhau.
Sau khi tải thành công, thiết bị sẽ xuất hiện trong danh sách trên màn hình chính Bạn chỉ cần chọn một thiết bị và nhấn Start để khởi động máy ảo.
Download và cài đặt Android Studio
Truy cập vào http://developer.android.com/sdk/index.html bạn chọn
“Download Android Studio for Windows”
When you download Android Studio, it includes essential components such as the Android Studio IDE, Android SDK tools, the Android 5.0 (Lollipop) platform, and the Android 5.0 emulator system image with Google APIs.
When installing the software, ensure your system meets the following requirements: Microsoft® Windows® 8/7/Vista/2003 (32 or 64-bit), a minimum of 2 GB RAM (4 GB recommended), at least 400 MB of free hard disk space, and a minimum resolution of 1280 x 800 Additionally, you will need Java Development Kit (JDK) version 7 or higher For enhanced performance with the accelerated emulator, an Intel® processor that supports Intel® VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality is recommended.
+ Cài đặt Android Studio:Yêu cầu máy bạn đã cài JDK
After successfully downloading the file, click on "android-studio-bundle-135.1641136.exe." The "Welcome to Setup Android Studio" screen will appear; click Next to proceed.
Bước 2: Chọn thành phần cài đặt:
Chọn cấu hình cài đặt cho android studio
Ta chọn cấu hình cài đặt tất cả như trên rồi bấm Next
Bước 3: Xác nhận bản quyền và một số ràng buộc liên quan tới mã nguồn mở, bạn bấm I Agree
Bước 4: Cấu hình chọn lựa nơi cài đặt Android Studio Bạn có thể chọn nơi cài đặt khác, sau đó bấm Next