1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động

74 2 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

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Hỗ Trợ Học Lập Trình ASP.NET Trên Thiết Bị Di Động
Tác giả Lê Khương Duy
Người hướng dẫn ThS. Nguyễn Thị Thu Hương
Trường học Trường Đại Học Hùng Vương
Chuyên ngành Công Nghệ Thông Tin
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2017
Thành phố Phú Thọ
Định dạng
Số trang 74
Dung lượng 2,73 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tính cấp thiết của đề tài khóa luận ASP.NET là một nền tảng ứng dụng web Web Applicationframework được xây dựng, phát triển bởi tập đoàn Microsoft, cho phép các lập trình viên tạo ra nh

Trang 1

TRƯỜNG ĐẠI HỌC HÙNG VƯƠNG

KHOA KỸ THUẬT – CÔNG NGHỆ

-

LÊ KHƯƠNG DUY

XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC LẬP TRÌNH ASP.NET TRÊN THIẾT BỊ DI ĐỘNG

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Ngành Công Nghệ Thông Tin

Phú Thọ, (2017)

Trang 2

TRƯỜNG ĐẠI HỌC HÙNG VƯƠNG

KHOA KỸ THUẬT – CÔNG NGHỆ

-

LÊ KHƯƠNG DUY

XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC

LẬP TRÌNH ASP.NET TRÊN THIẾT BỊ DI ĐỘNG

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Ngành: Công Nghệ Thông Tin

NGƯỜI HƯỚNG DẪN: ThS NGUYỄN THỊ THU HƯƠNG

Phú Thọ, 2017

Trang 3

Em xin gửi lời cảm ơn chân thành tới giáo viên hướng dẫn cô giáo Nguyễn Thị Thu Hương - Bộ môn Công nghệ phần mềm - Khoa Kỹ thuật - Công nghệ - Trường Đại Học Hùng Vương đã tận tình giúp đỡ em trong suốt quá trình làm khóa luận tốt nghiệp Trong thời gian làm việc cùng cô giáo, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đó là những điều rất cần thiết cho em trong quá trình học tập và làm việc sau này

Trong thời gian nghiên cứu và hoàn thành khóa luận không tránh khỏi những thiếu sót, em rất mong được sự đóng góp ý kiến từ quý thầy cô và các bạn để đề tài được hoàn thiện hơn

Em xin chân thành cảm ơn!

Việt Trì, tháng 5 năm 2017

Sinh viên

Lê Khương Duy

Trang 4

DANH MỤC ẢNH

Hình 1.1 Biểu tượng Android 5.1 Lollipop 5

Hình 1.2 Quá trình thực thi 9

Hình 1.3 Mô hình xử lý ASP.NET 12

Hình 1.4 Vòng đời của một activity 16

Hình 1.5 Sơ đồ chuyển trạng thái của service 18

Hình 2.1 Biểu đồ UserCase về chức năng 24

Hình 2.2 Mô hình xử lý đăng ký 25

Hình 2.3 Mô hình xử lý đăng nhập 25

Hình 2.4 Mô hình xử lý học bằng video 26

Hình 2.5 Mô hình xử lý học lý thuyết 27

Hình 2.6 Mô hình xử lý bài tập minh họa 27

Hình 2.7 Mô hình xử lý chức năng tìm kiếm câu hỏi 28

Hình 2.8 Mô hình xử lý chấm điểm và lưu bài thi 29

Hình 2.9 Mô hình lớp của chương trình 32

Hình 3.1 Màn hình giới thiệu đầu 35

Hình 3.2 Màn hình đăng nhập 36

Hình 3.3 Màn hình đăng ký 37

Hình 3.4 Màn hình chính 38

Hình 3.5 Màn hình bài giảng 39

Hình 3.6 Màn hình nội dung bài giảng 40

Hình 3.7 Màn hình chọn bài tập 41

Hình 3.8 Màn hình hiển thị nội dung bài tập 42

Hình 3.9 Màn hình chọn video 43

Hình 3.10 Màn hình chọn video 44

Hình 3.11 Màn hình lựa chọn bộ câu hỏi trắc nghiệm 45

Hình 3.12 Màn hình hiển thị câu hỏi trắc nghiệm 46

Hình 3.13 Màn hình hiển thị điểm 47

Hình 3.13 Màn hình hiển thị điểm 48

Trang 5

Hình 3.14 Màn hình giới thiệu 49

Hình 3.15 Điện thoại Samsung Galaxy S7 Edge 50

Hình 3.16 Điện thoại Sony Xperia Z3 50

Hình 3.17 Icon ứng dụng trên điện thoại Samsung Galaxy S7 Edge 51

Hình 3.18 Màm hình menu chính trên điện thoại 52

Hình 3.19 Menu trái của ứng dụng 52

Trang 6

DANH MỤC BẢNG

Bảng 2.1 Danh sách các thực thể 30

Bảng 2.2 Bảng Account 30

Bảng 2.3 Bảng câu hỏi 31

Bảng 2.4 Bảng Điểm 31

Bảng 3.1 Danh sách các màn hình 34

Bảng 3.2 Mô tả chi tiết màn hình giới thiệu 35

Bảng 3.3 Mô tả chi tiết màn hình đăng nhập 36

Bảng 3.4 Mô tả chi tiết màn hình đăng ký 37

Bảng 3.5 Mô tả chi tiết màn hình chính 38

Bảng 3.6 Mô tả chi tiết màn hình bài giảng 39

Bảng 3.7 Mô tả chi tiết màn hình hiển thị nội dung bài giảng 40

Bảng 3.8 Mô tả chi tiết màn hình hiển thị bài tập 41

Bảng 3.9 Mô tả chi tiết màn hình hiển thị nội dung bài tập 42

Bảng 3.10 Mô tả chi tiết màn hình chọn video 43

Bảng 3.11 Mô tả chi tiết màn hình hiển thị video 44

Bảng 3.12 Mô tả chi tiết màn hình chọn bộ đề thi 45

Bảng 3.13 Mô tả chi tiết màn hình câu hỏi trắc nghiệm 46

Bảng 3.14 Mô tả chi tiết màn hình hiển thị điểm 47

Trang 7

MỤC LỤC

LỜI CẢM ƠN i

DANH MỤC ẢNH ii

DANH MỤC BẢNG iv

MỤC LỤC v

MỞ ĐẦU 1

CHƯƠNG I: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID, NGÔN NGỮ LẬP TRÌNH JAVA, HỌC PHẦN LẬP TRÌNH ASP.NET 4

1.1 Khái niệm, lịch sử hình thành và phát triển hệ điều hành Android 4

1.1.1 Khái niệm hệ điều hành Android 4

1.1.2 Lịch sử hình thành và phát triển của hệ điều hành Android 5

1.2 Tổng quan về ngôn ngữ Java 8

1.2.1 Giới thiệu ngôn ngữ Java 8

1.2.2 Các đặc trưng của Java 9

1.3 Tổng quan về học phần lập trình ASP.NET 11

1.3.1 Ưu điểm của ASP.NET 12

1.3.2 Nội dung của học phần lập trình ASP.NET 13

1.4 Lập trình ứng dụng trên hệ điều hành Android 14

1.4.1 Công cụ lập trình ứng dụng trên Android 14

1.4.2 Các thành phần của một ứng dụng Android 15

CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG CỦA ỨNG DỤNG HỖ TRỢ HỌC LẬP TRÌNH ASP.NET 23

2.1 Xác định yêu cầu 23

2.1.1 Các chức năng của chương trình 23

2.1.2 Biểu đồ Usercase 23

2.2 Phân tích và thiết kế 24

2.2.1 Phân tích mô hình xử lý các chức năng 24

2.2.2 Thiết kế cơ sở dữ liệu 30

2.2.3 Thiết kế mô hình lớp 32

Trang 8

CHƯƠNG III: XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC LẬP TRÌNH

ASP.NET 34

3.1 Giao diện ứng dụng 34

3.1.1 Danh sách các màn hình 34

3.1.2 Chi tiết các màn hình 35

3.2 Cài đặt ứng dụng thử nghiệm 49

3.3 Hướng dẫn sử dụng 51

KẾT LUẬN CHUNG 53

1 Kết quả đạt được 53

2 Hạn chế 53

3 Hướng phát triển 53

TÀI LIỆU THAM KHẢO 54

PHỤ LỤC 55

Phụ lục A: Chi tiết MainActivity.java 55

Phụ lục B: Chi tiết HomeFragment.java 62

Trang 9

MỞ ĐẦU

1 Tính cấp thiết của đề tài khóa luận

ASP.NET là một nền tảng ứng dụng web (Web Applicationframework) được xây dựng, phát triển bởi tập đoàn Microsoft, cho phép các lập trình viên tạo ra những trang web động, những ứng dụng web và những dịch vụ web Vào tháng 2 năm 2002, phiên bản đầu tiên được đưa ra thị trường cùng với phiên bản 1.0 của NET framework, ASP.NET là công nghệ nối tiếp của công nghệ Microsoft's Active Server Pages (ASP) trước đó, được biên dịch dưới dạng Common Language Runtime (CLR), cho phép những người lập trình viết mã ASP.NET với bất kỳ ngôn ngữ nào (C#, VB.NET, ) được hỗ trợ bởi NET framework

Với xu hướng các ứng dụng web được phát triển mạnh mẽ, ngày càng có nhiều ứng dụng viết bằng ASP.NET, rất nhiều công ty đang chọn ASP.NET làm ngôn ngữ phát triển website cho khách hàng cũng như sản phẩm của riêng

họ nên việc nắm vững và sử dụng thành thạo về công nghệ web nói chung và chuyên sâu về ASP.NET nói riêng sẽ là một lợi thế cho các sinh viên và các lập trình viên ứng dụng web

Cùng với đó, sự phát triển của công nghệ di động đã bùng nổ trong vài năm qua Các thiết bị di động đã trở nên mạnh mẽ và phổ biến Trong vài năm trở lại đây, hệ điều hành Android ra đời và trở thành nền tảng điện thoại thông minh phổ biến mất thế giới, với sự kế thừa những ưu việt của các hệ điều hành

ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay

Những ưu điểm dễ thấy nhất của Android chính là khả năng tùy biến nhanh chóng, dễ làm quen, ứng dụng hỗ trợ phong phú, tương thích với đa cấu hình phần cứng cả các nhà sản xuất Đồng thời Android có mã nguồn mở đã 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 được điều chỉnh và phân phối Android một cách tự do

Vấn đề đặt ra có được một ứng dụng hỗ trợ học tập là không hề đơn giản

vì đa số các ứng dụng hỗ trợ học đều phải mất phí hoặc việc sử dụng còn một

Trang 10

số hạn chế Bởi vậy trước nhu cầu về môn học Lập trình ASP.NET và những

ưu điểm của hệ điều hành Android, em đã chọn đề tài “Xây dựng ứng dụng hỗ trợ học Lập trình ASP.NET trên thiết bị di động” làm khóa luận tốt nghiệp cho

mình Để tạo ra một ứng dụng cho sinh viên ngành công nghệ thông tin có một ứng dụng học lập trình ASP.NET trên thiết bị động chạy hệ điều hành Android

2 Ý nghĩa khoa học và thực tiễn

 Ứng dụng lý thuyết, phương pháp, kỹ thuật lập trình trên hệ điều hành Android để xây dựng ứng dụng hỗ trợ học tập học phần Lập trình ASP.NET

trên thiết bị di động

3 Mục tiêu khóa luận

 Xây dựng thành công ứng dụng hỗ trợ học phần Lập trình ASP.NET trên thiết bị đi động

4 Nhiệm vụ nghiên cứu

 Tìm hiểu về hệ điều hành Android bằng cách thu thập, đọc tài liệu, nghiên cứu sử dụng ngôn ngữ Java và các thư viện trong Android để lập trình ứng dụng

 Nghiên cứu các thuật toán được sử dụng trong ứng dụng học lập trình ASP.NET

 Lập trình, cài đặt hoàn thiện ứng dụng hỗ trợ học lập trình ASP.NET

5 Phương pháp nghiên cứu

 Phương pháp nghiên cứu tự luận: đọc và nghiên cứu tài liệu, giáo trình có liên quan đến việc lập trình game Android rồi phân hóa, hệ thống các kiến thức

 Phương pháp tổng kết kinh nghiệm: qua việc nghiên cứu, tham khảo tài liệu, giáo trình từ đó rút ra kinh nghiệm để áp dụng vào việc nghiên cứu

 Phương pháp lấy ý kiến chuyên gia: lấy ý kiến của giảng viên trực tiếp hướng dẫn, các giảng viên khác để hoàn thiện về mặt nội dung và hình thức của khóa luận

Trang 11

6 Đối tượng và phạm vi nghiên cứu

 Đối tượng: Ứng dụng hỗ trợ học Lập trình ASP.NET trên thiết bị di động

 Phạm vi: Dùng ngôn ngữ lập trình Java dành cho hệ điều hành Android

Trang 12

CHƯƠNG I TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID, NGÔN NGỮ LẬP

Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình Tính đến tháng 8 năm 2013, có hơn 975.000 ứng dụng dành cho Android trên cửa hàng Google Play, và số lượng ứng dụng tải

về từ Cửa hàng Play ước tính đạt gần 30 tỷ Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử dụng bộ công cụ phát triển phần mềm Android Software Development Kit (SDK)

Google công bố hầu hết các mã nguồn mở của Android theo bản cấp phép Apache Hệ điều hành Android bao gồm 12 triệu dòng mã, 3 triệu dòng XML, 2.8 triệu dòng mã C, 2.1 triệu dòng mã Java và 1.75 triệu dòng mã C++

Bất kỳ một hãng sản xuất phần cứng nào cũng có thể sử dụng hệ điều hành Android cho thiết bị của mình, miễn là các thiết bị ấy đáp ứng được các tiêu chuẩn cơ bản do Google đặt ra (có cảm ứng chạm, GPS, 3G,…) Ra đời tháng 11/2007, hệ điều hành Android đã trải qua nhiều lần cập nhật với phiên bản gần đây nhất là Android 5.1 Lollipop như hình 1.1 nhằm giúp cải thiện tính

ổn định và bổ sung một số tính năng mới như hỗ trợ các thiết bị nhiều thẻ sim,

hỗ trợ khả năng thoại HD trên điện thoại, tính năng bảo mật cho phép bảo vệ thiết bị bằng cách chỉ cho đăng nhập bằng tài khoản Google, kết nối nhanh chóng với mạng WiFi hay thiết bị Bluetooth từ menu Quick Settings, hỗ trợ

Trang 13

hình động mới cho ứng dụng đồng hồ,…

Hình 1.1 Biểu tượng Android 5.1 Lollipop

Bộ công cụ Android SDK cung cấp các công cụ và bộ thư viện các hàm giao diện chương trình ứng dụng (Application Programming Interface hay API) cần thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữ lập trình Java

1.1.2 Lịch sử hình thành và phát triển của hệ điều hành Android

Tổng công ty Android (Android, Inc.) được thành lập tại Palo Alto, California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty Danger), Rich Miner (đồng sáng lập Tổng công ty Viễn thông Wildfire), Nick Sears (từng là Phó giám đốc T-Mobile), và Chris White (trưởng thiết kế và giao diện tại WebTV) để phát triển, theo lời của Rubin, “các thiết bị di động thông minh hơn có thể biết được vị trí và sở thích của người dùng” [9] Dù những người thành lập và nhân viên đều là những người có tiếng tăm, tổng công ty Android hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang làm phần mềm dành cho điện thoại di động Công ty này sau đó được Google mua lại vào ngày

17 tháng 8 năm 2005 và bắt đầu xây dựng Android Platform Các thành viên chủ chốt tại Android Inc gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White

Đến cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tay Mã Nguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễn thông và thiết bị cầm tay như: Texas Instrument, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia…

Trang 14

Electronics, Sprint Nextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp and Vodafone Group,…

Mục tiêu của liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu của người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất, các nhà khai thác và các lập trình viên thiết bị cầm tay Android là hệ thống nền tảng các phần mềm dành cho điện thoại di động bao gồm hệ điều hành, các phần tử giao tiếp trung gian (midleware) và các ứng dụng chính (key application)

Nền tảng di động Android của Google ngày càng trở nên hiện thực và đang là một đối thủ nặng ký cho những gã khổng lồ như Microsoft, Apple, RIM,…Cuộc chiến đã rõ ràng hơn khi mà Google tung ra bộ công cụ phát triển phần mềm cho Android (SDK) Bộ SDK sẽ giúp các nhà phát triển phần mềm hiểu rõ hơn về Android và tạo nên các sản phẩm phần mềm cho dòng thiết bị này Bộ SDK được thiết kế để cho phép các nhà phát triển “mở rộng, thay thế, tái sử dụng” các thành phần phần mềm, có nhiều công cụ debug, thư viện, dự

án mẫu Có một plug-in tích hợp SDK với nền tảng để phát triển Eclipse (từ Eclipse 3.2 trở về sau)

Phiên bản SDK đầu tiên ra phát hành vào tháng 11 năm 2007, hãng TMobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc TMobile G1, chiếc smartphone đầu tiên dựa trên nền tảng Android Một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1.0 Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho Android Platform

Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc của nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể

sử dụng lại các thành phần từ những ứng dụng khác Việc tái sử dụng không chỉ cho các dịch vụ mà nó còn được áp dụng cho cả các thành phần dữ liệu và giao diện người dùng

Trang 15

Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi

là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết

bị có thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào Vào khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên bản

vá lỗi 1.1 của hệ điều hành này Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ soft-keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý Android

cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một số tính năng khác Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vận dụng và các thư mục hiện tại (live folder) Chiếc điện thoại chạy Android đầu tiên được bán ra là HTC Dream, phát hành ngày 22 tháng 10 năm

2008 Biểu trưng của hệ điều hành Android mới là một con rôbốt màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ

Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến

hệ điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành trước Mỗi bản nâng cấp được đặt tên lần lượt theo thứ tự bảng chữ cái,

theo tên của một món ăn tráng miệng; Ví dụ như phiên bản 1.5 Cupcake (bánh bông lan nhỏ có kem) tiếp nối bằng phiên bản 1.6 Donut (bánh vòng) Phiên

bản mới nhất hiện nay là 5.1 Lollipop Vào năm 2010, Google ra mắt loạt thiết

bị Nexus một dòng sản phẩm bao gồm điện thoại thông minh và máy tính bảng chạy hệ điều hành Android, do các đối tác phần cứng sản xuất HTC đã hợp tác

từ đó nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm này, như điện thoại Nexus 4 và máy tính bảng Nexus 10, lần lượt do LG và Samsung sản xuất Google xem điện thoại và máy tính bảng Nexus là những thiết bị Android chủ lực của mình, với những tính năng phần cứng và phần mềm mới nhất của Android

Trang 16

1.2 Tổng quan về ngôn ngữ Java

1.2.1 Giới thiệu ngôn ngữ Java

Java là một ngôn ngữ lập trình được Sun Microsystems giới thiệu vào tháng 6 năm 1995 Từ đó, nó đã trở thành một công cụ lập trình của các lập trình viên chuyên nghiệp Java được xây dựng trên nền tảng của C và C++ Do vậy nó sử dụng các cú pháp của C và các đặc trưng hướng đối tượng của C++

Vào năm 1991, một nhóm các kỹ sư của Sun Microsystems có ý định thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử như Tivi, máy giặt, lò nướng, … Mặc dù C và C++ có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào từng loại CPU

Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất đắt

Vì vậy để mỗi loại CPU có một trình biên dịch riêng là rất tốn kém Do đó nhu cầu thực tế đòi hỏi một ngôn ngữ chạy nhanh, gọn, hiệu quả và độc lập thiết bị tức là có thể chạy trên nhiều loại CPU khác nhau, dưới các môi trường khác nhau “Oak” đã ra đời và vào năm 1995 được đổi tên thành Java Mặc dù mục tiêu ban đầu không phải cho Internet nhưng do đặc trưng không phụ thuộc thiết

bị nên Java đã trở thành ngôn ngữ lập trình cho Internet

Java là ngôn ngữ lập trình hướng đối tượng, do vậy không thể dùng Java

để viết một chương trình hướng chức năng

Java là ngôn ngữ vừa biên dịch vừa thông dịch Đầu tiên mã nguồn được biên dịch bằng công cụ JAVAC để chuyển thành dạng ByteCode Sau đó được thực thi trên từng loại máy cụ thể nhờ chương trình thông dịch Mục tiêu của các nhà thiết kế Java là cho phép người lập trình viết chương trình một lần nhưng có thể chạy trên bất cứ phần cứng cụ thể

Ngày nay, Java được sử dụng rộng rãi để viết chương trình chạy trên Internet Nó là ngôn ngữ lập trình hướng đối tượng độc lập thiết bị, không phụ thuộc vào hệ điều hành Nó không chỉ dùng để viết các ứng dụng chạy đơn lẻ hay trong mạng mà còn để xây dựng các trình điều khiển thiết bị cho điện thoại

di động, PDA,

Trang 17

1.2.2 Các đặc trưng của Java

 Đơn giản:

Những người thiết kế mong muốn phát triển một ngôn ngữ dễ học và quen thuộc với đa số người lập trình Do vậy Java được loại bỏ các đặc trưng phức tạp của C và C++ như thao tác con trỏ, thao tác nạp đè (overload),… Java không sử dụng lệnh “goto” cũng như file header (.h) Cấu trúc “struct” và

“union” cũng được loại bỏ khỏi Java

 Hướng đối tượng

Java được thiết kế xoay quanh mô hình hướng đối tượng Vì vậy trong Java, tiêu điểm là dữ liệu và các phương pháp thao tác lên dữ liệu đó Dữ liệu

và các phương pháp mô tả trạng thái và cách ứng xử của một đối tượng trong Java

Ở mức nhị phân, một chương trình đã biên dịch có thể chạy trên nền khác

mà không cần dịch lại mã nguồn Tuy vậy cần có phần mềm máy ảo Java (sẽ

đề cập đến ở phần sau) hoạt động như một trình thông dịch tại máy thực thi

Trình biên dịch sẽ chuyển các chương trình viết bằng C, C++ hay ngôn ngữ khác thành mã máy nhưng phụ thuộc vào CPU Nên khi muốn chạy trên

Hình 1.2 Quá trình thực thi

Trang 18

loại CPU khác, chúng ta phải biên dịch lại chương trình

Môi trường phát triển của Java được chia làm hai phần: Trình biên dịch

và trình thông dịch Không như C hay C++, trình biên dịch của Java chuyển mã nguồn thành dạng bytecode độc lập với phần cứng mà có thể chạy trên bất kỳ CPU nào

Nhưng để thực thi chương trình dưới dạng bytecode, tại mỗi máy cần phải có trình thông dịch của Java hay còn gọi là máy ảo Java Máy ảo Java chuyển bytecode thành mã lệnh mà CPU thực thi được

Trong lớp thứ hai, trình biên dịch kiểm soát để đảm bảo mã an toàn Lớp thứ ba được đảm bảo bởi trình thông dịch Chúng kiểm tra xem bytecode có đảm bảo các qui tắc an toàn trước khi thực thi Lớp thứ tư kiểm soát việc nạp các lớp lên bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống

 Phân tán

Java có thể dùng để xây dựng các ứng dụng có thể làm việc trên nhiều phần cứng, hệ điều hành và giao diện đồ họa Java được thiết kế cho các ứng dụng chạy trên mạng Vì vậy chúng được sử dụng rộng rãi trên Internet

Trang 19

 Đa luồng

Chương trình Java sử dụng kỹ thuật đa tiến trình (Multithread) để thực thi các công việc đồng thời Chúng cũng cung cấp giải pháp đồng bộ giữa các tiến trình Đặc tính hỗ trợ đa tiến trình này cho phép xây dựng các ứng dụng trên mạng chạy uyển chuyển

 Động

Java được thiết kế như một ngôn ngữ động để đáp ứng cho những môi trường mở Các chương trình Java bổ sung các thông tin cho các đối tượng tại thời gian thực thi Điều này cho phép khả năng liên kết động các mã

1.3 Tổng quan về học phần lập trình ASP.NET

Từ khoảng cuối thập niên 90, ASP (Active Server Page) đã được nhiều lập trình viên lựa chọn để xây dựng và phát triển ứng dụng Web động trên máy chủ sử dụng hệ điều hành Windown ASP đã thể hiện được những ưu nhược điểm của mình với mô hình lập trình thủ tục đơn giản, sử dụng hiệu quả các đối tượng COM: ADO (ActiveX Data Object) – xử lý dữ liệu, FSO (File System Object) làm việc với hệ thống tập tin , đồng thời, ASP cũng hỗ trợ nhiều ngôn ngữ: VBScript, JavaScript Chính những ưu điểm đấy, ASP đã được yêu thích trong một thời gian

Đầu năm 2002 Microsoft giới thiệu một kỹ thuật lập trình Web khá mới

mẻ với tên gọi ban đầu là ASP+, tên chính thức sau này là ASP.NET Với ASP.NET, không những không cần đòi hỏi người dùng phải biết các tag HTML, thiết kết Web, mà nó còn hỗ trợ mạnh lập trình hướng đối tượng trong quá trình xây dựng và phát triển ứng dụng Web

ASP.NET là kỹ thuật lập trình và phát triển ứng dụng Web ở phía Server dựa trên nền tảng của Microsoft NET Framework

Hầu hết những người mới đến với lập trình Web đều bắt đầu tìm hiểu những kỹ thuật ở phía Client như: HTML, Java Script, CSS Khi Web browser yêu cầu một trang web, Web Server tìm trang web mà Client yêu cầu, sau đó gửi

về cho Client Client nhận kết quả trả về từ Server và hiển thị lên màn hình

ASP.NET sử dụng kỹ thuật lập trình ở phía Server thì hoàn toàn khác,

Trang 20

mã lệnh ở phía Server sẽ được biên dịch và thi hành tại Web Server Sau khi được Server đọc, biên dịch và thi hành, kết quả tự động được chuyển sang HTML/JavaScript/CSS và trả về cho Client Tất cả các sử lý lệnh ASP.NET đều được thực hiện tại Server và do đó, gọi là kỹ thuật lập trình ở phía Server

1.3.1 Ưu điểm của ASP.NET

 ASP.NET cho phép người dùng lựa chọn một trong các ngôn ngữ lập trình mà người dùng yêu thích: Visual Basic.Net, J#,C#,…

 Trang ASP.NET được biên dịch trước Thay vì phải đọc và thông dịch mỗi khi trang Web được yêu cầu, ASP.NET biên dịch những trang Web động thành những tập tin DLL mà Server có thể thi hành nhanh chóng

và hiệu quả Yếu tố này là một bước nhảy vọt đáng kể so với kỹ thuật thông dịch của ASP

Hình 1.3 Mô hình xử lý ASP.NET

 ASP.NET hỗ trợ mạnh mẽ bộ thư viện phong phú và đa dạng của NET Framework, làm việc với XML, Web Service, truy cập cơ sở dữ liệu qua ADO.Net,…

 ASPX và ASP có thể cùng hoạt động trong 1 ứng dụng

 ASP.NET sử dụng phong cách lập trình mới: Code behind Tách code riêng, giao diện riêng  dễ đọc, dễ quản lý và bảo trì

 Kiến trúc lập trình giống như ứng dụng trên Windows

Trang 21

1.3.2 Nội dung của học phần lập trình ASP.NET

CHƯƠNG 1: Tổng quan về ASP.NET

1.1 Tìm hiểu về ASP.NET

1.2 Những ưu điểm của ASP.NET

1.3 Tìm hiểu về NET Platform và NET Framework 1.4 Cách thức web server thực thi ứng dụng asp.net 1.5 Tạo ứng dụng ASP.NET đầu tiên

CHƯƠNG 2: ASP.NET Server Controls

2.1 Điều khiển Label

2.2 Điều khiển TextBox

2.3 Điều khiển Image

2.4 Điều khiển Button, ImageButton, LinkButton 2.5 Điều khiển HyperLink

2.6 Điều khiển CheckBox và RadioButton

CHƯƠNG 3: Các điều khiển liên kết dữ liệu

3.1 Điều khiển GridView

3.2 Điều khiển DataList

3.3 Điều khiển Repeater

3.4 Điều khiển DataGrid

3.5 Điều khiển DetailView và FormView

CHƯƠNG 4: Xử lý dữ liệu với ADO.NET

4.1 Tìm hiểu về ADO.NET

4.2 Các namespace của ADO.NET

4.3 Các đối tượng trong ADO.NET

4.3 Các đối tượng trong ADO.NET

CHƯƠNG 5: Quản lý trạng thái

Trang 22

5.1 Vấn đề trạng thái

5.2 Xem trạng thái và chuyển thông tin giữa các trang

5.3 Đối tượng Cookies và Session

5.4 Đối tượng Application

5.5 Tập tin Global.asax và Web.config

1.4 Lập trình ứng dụng trên hệ điều hành Android

1.4.1 Công cụ lập trình ứng dụng trên Android

 Android SDK(Android Software Development Kit): Bộ công cụ phát triển

Android bao gồm các công cụ riêng lẻ như: debugger, các thư viện, trình giả lập điện thoại Android, các tài liệu hỗ trợ và code mẫu Hiện Android cung cấp bộ công cụ này trên nhiều nền tảng hệ điều hành khác nhau (Windows, Linux, Mac, ) yêu cầu cài sẵn Java Development Kit, Apache Ant và Python2.2 trở lên

 IDE (Integrated Development Environment): Môi trường phát triển tích

hợp Eclipse phiên bản 3.2 trở lên với plugin ADT (Android Development Tools), Netbeans Tuy nhiên, người lập trình có thể sử dụng bất kỳ 1 IDE hay trình soạn thảo văn bản nào để viết code Java và XML rồi biên dịch nên ứng dụng hoàn chỉnh bằng cách sử dụng dòng lệnh (command lines- dòng lệnh) Eclipse hỗ trợ tốt hơn Netbeans nên được sử dụng làm công cụ phát triển chính thức

 Một số công cụ hỗ trợ lập trình Android tiêu biểu:

- SQLite Manager: là một addon của Firefox giúp quản lí SQLite

- DroidDraw: giúp thiết kế file XML giao diện ứng dụng

- Balsamiq Mockups và AdobeFireworks: giúp nhanh chóng phác thảo ý tưởng và giao diện sơ bộ của ứng dụng

- StarUML: vẽ các lược đồ UML hỗ trợ phân tích thiết kế

Trang 23

 Activity

- Khái niệm:

Một hoạt động là một giao diện người dùng trực quan mà người dùng có thể thực hiện trên đó mỗi khi được kích hoạt Một ứng dụng có thể có nhiều hoạt động và chúng có thể gọi qua lại lẫn nhau Mỗi Activity là một dẫn xuất của lớp android.app.Activity

Mỗi hoạt động có một cửa sổ để vẽ lên Thông thường cửa sổ này phủ đầy màn hình, ngoài ra nó cũng có thể có thêm các cửa sổ con khác như là hộp thoại…Nội dung của cửa sổ của hoạt động được cung cấp bởi một hệ thống cấp bậc các View (là đối tượng của lớp Views)

- Vòng đời hoạt động (circle activities)

Các hoạt động trong hệ thống được quản lý bởi một cấu trúc dữ liệu ngăn xếp Khi có một hoạt động được khởi tạo, nó được đẩy vào trong ngăn xếp, chuyển sang trạng thái thực thi và hoạt trộng trước đó sẽ chuyển sang trạng thái chờ Hoạt động này chỉ trở lại trang thái kích hoạt khi mà hoạt động vừa khởi tạo kết thúc việc thực thi

Một Activity có 3 trạng thái chính:

- Active hoặc running khi nó ở trên nhấ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

- Stopped khi một Activity hoàn toàn bị che khuất, nó sẽ rơi vào trạng thái

Trang 24

Stopped Tuy nhiên, nó vẫn còn lưu trữ toàn bộ thông tin trạng thái Và

nó thường bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ

Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với các bước chuyển:

- void onCreate(Bundle savedInstanceState)

Vòng đời của một hoạt động có thể được thể hiện trong những quá trình sau:

Hình 1.4 Vòng đời của một activity

Trang 25

Toàn bộ thời gian sống của một hoạt động bắt đầu từ lời gọi đầu tiên tới phương thức onCreate(Bundle) tới lời gọi phương thức onDestroy() Trong quá trình này, một hoạt động sẽ khởi tạo lại tất cả các tài nguyên cần sử dụng trong phương thức onCreate() và giải phóng chúng khi phương thức onDestroy() được thực thi

Thời gian sống có thể nhìn thấy của một hoạt động bắt đầu từ lời gọi tới phương thức onStart(), cho tới khi phương thức onStop() của nó được thực thi Toàn bộ các tài nguyên đang được sử dụng bởi hoạt động vẫn tiếp tục được lưu giữ, người dùng có thể thấy giao diện nhưng không tương tác được với hoạt động

do trong qua trình này hoạt động không ở trạng thái chạy tiền cảnh

Thời gian sống tiền cảnh của một hoạt động là quá trình bắt dầu từ khi

có lời gọi tới phương thức onResume() và kết thúc bằng lời gọi tới phương thức onPause() Trong thời gian này, hoạt động chạy ở tiền cảnh và có thể tương tác với người dùng

 Service

Một dịch vụ (Service) là các đoạn mã được thực thi ngầm bởi hệ thống

mà người sử dụng không thấy được Mỗi service đều được mở rộng từ lớp cơ

sở là service trong gói android.app Có thể kết nối tới hoặc kích hoạt một Service thông qua interface mà Service đưa ra.Ví dụ như một chương trình chơi nhạc, sẽ có vài hoạt động cho phép người dùng duyệt danh sách các bài hát và lựa chọn bài nào để phát Tuy nhiên, chức năng chơi nhạc không được thiết kế như một hoạt động bởi chúng ta sẽ muốn chuyển qua cửa sổ khác, như khi soạn tin nhắn thì bài nhạc vẫn tiếp tục được chơi Trong trường hợp này, ứng dụng chơi nhạc sẽ khởi tạo một dịch vụ bằng cách sử dụng phương thức:

Context.startService()

Một ứng dụng có thể dễ dàng thực hiện liên kết tới một dịch vụ đang chạy (thậm chí khởi động nếu nó chưa thực thi) bằng phương thức Context.bindService() Khi đó dịch vụ này sẽ cung cấp cho ứng dụng cơ chế để giao tiếp với chúng thông qua giao diện gọi là IBinder (đối với dịch vụ chơi nhạc có thể cho phép dừng hoặc chuyển qua bài nhạc kế tiếp)

Trang 26

- Vòng đời của một dịch vụ được hiểu là quá trình hoạt động từ khi nó được tạo ra cho tới khi bị loại khỏi hệ thống Có hai cách thức để một dịch vụ có thể được chạy trong hệ thống

- Khi hệ thống có lời gọi tới phương thức Context.startService() Trong trường hợp này, dịch vụ sẽ được thực hiện liên tục cho tới khi hệ thống gọi phương thức Context.stopService()

Khi các ứng dụng gọi phương thức Context.bindService() để tạo kết nối với dịch vụ (dịch vụ sẽ được khởi tạo nếu tại thời điểm đó nó đang không hoạt động) Ứng dụng sẽ nhận được một đối tượng IBinder do dịch vụ trả lại

để có thể gọi các phương thức Callback phù hợp để truy cập tới các trạng thái của dịch vụ Nếu do lời gọi Context.bindService() mà dịch vụ được khởi tạo thì nó sẽ được thực thi cho tới khi nào kết nối trên vẫn còn tồn tại

Hình 1.5 Sơ đồ chuyển trạng thái của service

 Bộ nhận quảng bá (Broadcast Receivers)

Bộ nhận quảng bá là một thành phần không làm gì cả nhưng nó nhận và phản hồi lại các thông báo quảng bá Nhiều quảng bá có nguồn gốc từ mã hệ thống, ví dụ thông báo thay đổi múi giờ, pin yếu, ảnh đã chụp hay thay đổi ngôn ngữ Các ứng dụng có thể khởi động quảng bá, ví dụ để các ứng dụng khác biết rằng dữ liệu đã được tải về xong trên thiết bị và sẵn sàng sử dụng

Trang 27

Một ứng dụng có thể có bất kỳ số lượng bộ nhận quảng bá nào để nhận những thông báo quan trọng với nó Tất cả các bộ nhận quảng bá được kế thừa

từ lớp BroadcastReceiver

Bộ nhận quảng bá không có giao diện Tuy nhiên, chúng có thể khởi động một hoạt động để đáp lại thông tin mà nó nhận được, hay chúng có thể sử dụng NotificationManager để thông báo người dùng biết Các thông báo có thể được sự chú ý của người dùng theo các cách các nhau như là sáng màn hình, rung thiết bị, bật âm thanh nào đấy… Thông thường, chúng đặt thông báo trên thanh trạng thái, nơi người dùng có thể nhận được thông báo

 Content Provider

Các ứng dụng có thể lưu trữ dữ liệu của mình trong các tập tin hoặc sử dụng cơ sở dữ liệu SQLite sẵn có v.v… Content Provider có chức năng cung cấp một tập hợp các phương thức cho phép một ứng dụng có thể lưu trữ và lấy

dữ liệu được quản lý bởi content provider đó

Content Provider là một đặc trưng riêng của Android, nhờ đó mà các ứng dụng có thể chia sẻ dữ liệu với nhau một cách dễ dàng

 Các Intent

Content Provider được kích hoạt khi chúng được gọi từ một ContentResolver

Ba thành phần khác (hoạt động, dịch vụ và bộ nhận quảng bá) được kích hoạt bởi thông điệp không đồng bộ từ các Intent Một Intent là một đối tượng có kiểu Intent chứa nội dung của thông điệp Với các hoạt động và dịch vụ, nó gọi tên hành động được yêu cầu và xác định URI của dữ liệu tác động tới ở giữa

Ví dụ, nó có thể truyền tải một yêu cầu cho một hoạt động hiển thị một ảnh cho người dùng hay cho phép người dùng sửa văn bản Với bộ nhận quảng bá, đối tượng Intent gọi tên của hành động được thông báo Ví dụ, bộ nhận quảng bá có thể thông báo các phần nó quan tâm là nút chụp ảnh đã được bấm

Có vài phương thức cho việc kích hoạt mỗi thành phần: Một hoạt động được khởi chạy thông qua một đối tượng Intent Context.startActivity() hay Activity.startActivityForResult() Hoạt động đáp lại có thể theo dõi Intent được tạo ra đó bằng phương thức getIntent() và cập nhật thông qua phương thức

Trang 28

setIntent(Intent) Android gọi phương thức onNewIntent() để bỏ qua các Intent đến trước nó

Một hoạt động thường bắt đầu hoạt động khác Nếu nó muốn trả lại kết quả hoạt động nó đã khởi chạy, nó sẽ gọi phương thức:

startActivityForResult() thay cho phương thức startActivity() Ví dụ, nếu nó khởi chạy một hoạt động mà cho phép người dùng lấy một ảnh, nó có thể muốn lấy kết quả của ảnh được chọn Kết quả được trả về trong một đối

tượng Intent thông qua phương thức onActivityResult()

Một dịch vụ được bắt đầu thông qua một đối tượng Intent là :

Context.startService() Android gọi phương thức onStart() của dịch vụ và thông qua đối tượng Intent của nó

Tương tự, một Intent có thể thông qua Context.bindService() để thiết lập một kết nối liên tục giữa các thành phần và dịch vụ đích Dịch vụ nhận đối tượng Intent qua lời gọi onBind() (nếu dịch vụ chưa được chạy, bindService()

có thể chọn bắt đầu nó) Cho ví dụ, một hoạt động có thể thiết lập kết nối với dịch vụ chơi nhạc đề cập ở phần trước để nó có thể cung cấp cho người dùng giao diện sử dụng để điều khiển chơi lại Hoạt động sẽ gọi bindService để thiết lập kết nối và sau đó gọi phương thức đã định nghĩa bởi dịch vụ để áp dụng chơi lại ca khúc

Một ứng dụng có thể khởi tạo một quảng bá thông qua đối tượng Intent bằng phương thức như: Context.setBroadcast(),Context.setOrderedBroadcast()và Context.sendStickyBroadcast() Android chuyển những Intent tới tất cả các bộ nhận quảng bá nào quan tâm bằng việc gọi phương thức onReceive() của nó

 Tập tin khai báo (Manifest File)

Trước khi có thể khởi chạy một ứng dụng thành phần, nó phải xem ứng dụng bao gồm những thành phần nào Thêm nữa, các ứng dụng khai báo các thành phần của nó trong một tập tin khai báo để đóng gói lại vào trong gói Android (tập tin apk chứa các mã nguồn, tập tin và tài nguyên) Tập tin này có cấu trúc của tập tin XML và luôn có tên là AndroidManifest.xml trong mọi ứng dụng Tập tin này thực hiện một số chức năng như thêm và khai báo các thành

Trang 29

phần của ứng dụng, tên các thư viện ứng dụng cần liên kết tới (ngoài thư viện chuẩn của Android) và xác định các quyền cho ứng dụng

Tuy nhiên, nhiệm vụ chính của tập tin khai báo là khai báo các thành phần của ứng dụng Một hoạt động có thể được khai báo như sau:

Thuộc tính “name” của phần tử <activity> là tên các lớp con lớp Activity

đã được cài đặt, thuộc tính “icon” và “label” trỏ đến tập tin tài nguyên chứa biểu tượng và nhãn được hiển thị cho người dùng

Các thành phần khác được khai báo theo cách tương tự: <service> dịch

vụ, <receiver> bộ nhận quảng bá và <provider> content provider Các hoạt động, dịch vụ và content provider có thể cùng được khai báo trong tập tin khai báo hoặc có thể được tạo tự động trong mã (như đối tượng BroadcastReceiver)

và được đăng ký với hệ thống bằng cách gọi Context.registerReceiver()

 Bộ lọc Intent

Một đối tượng Intent có thể có tên rõ ràng trong thành phần đích Nếu

có, Android sẽ tìm thành phần đó (dựa trên khai báo trong tập tin khai báo) và kích hoạt nó Nhưng nếu đích có tên không rõ ràng, Android phải xác định thành phần nào thích hợp nhất để đáp lại intent Nó thực hiện so sánh đối tượng Intent với bộ lọc intent trong các đích có khả năng Một thành phần của bộ lọc intent cho Android biết loại intent thành phần nào cần xử lý Giống các thông

Trang 30

tin cơ bản, chúng được khai trong tập tin khai báo Đây là một ví dụ để thêm hai bộ lọc intent cho một hoạt động

Bộ lọc thứ hai được khai báo để hoạt động có thể thực thi trên một kiểu

dữ liệu đặc biệt

Một thành phần có thể có bao nhiêu số bộ lọc intent tùy thích, mỗi một cái lại được khai báo khác nhau cho các khả năng Nếu nó không có một bộ lọc nào, nó có thể được được kích hoạt bởi các intent khác gọi đến

Để tạo và đăng ký một bộ nhận quảng bá trong mã nguồn, bộ lọc intent tạo thẳng một đối tượng giống đối tượng IntentFilter Tất cả các bộ lọc khác đều được cài đặt trong tập tin khai báo

Trang 31

CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG CỦA ỨNG DỤNG

HỖ TRỢ HỌC LẬP TRÌNH ASP.NET

2.1 Xác định yêu cầu

Bài toán của chúng ta ở đây là xây dựng được một công cụ hỗ trợ học tập dưới dạng một ứng dụng trên thiết bị sử dụng hệ điều hành mã nguồn mở Android Như vậy có nghĩa là ứng dụng phải hỗ trợ tất cả những thiết bị chạy

hệ điều hành Android và có đầy đủ các chức năng của một ứng dụng hỗ trợ học tập

2.1.1 Các chức năng của chương trình

 Học lý thuyết: Cho phép người dùng lựa chọn bài giảng của từng chương và hiển thị nội dung bài giảng đó lên màn hình

 Bài tập minh họa: Cho phép người dùng chọn bài tập minh họa của từng chương và hiển thị nội dung bài và cách làm đó lên màn hình

 Học bằng video: Cho phép người dùng chọn một video bài giảng của chương

đó và hiển thị nội dung video đó lên màn hình

 Làm bài tập trắc nghiệm:

lên mành hình

o Khi kết thức phần thi trắc nghiệm thì hiển thị kết quả làm bài thi và điểm số của người dùng

Ngoài ra còn một số chức năng khác: Đăng ký, đăng nhập tài khoản, màn hình intro khi cài đặt phần mềm, chức năng giới thiệu, tìm kiếm câu hỏi

2.1.2 Biểu đồ Usercase

Biểu đồ Usercase thể hiện số lượng chức năng mà người sử dụng có thể tương tác trực tiếp với chương trình Sau khi chương trình hoạt động, người sử dụng sẽ có thể sử dụng một số chức năng nhất định sau:

Trang 32

Hình 2.1 Biểu đồ UserCase về chức năng

2.2 Phân tích và thiết kế

2.2.1 Phân tích mô hình xử lý các chức năng

 Mô hình xử lý đăng ký

Bước 1: User nhập vào input, client kiểm tra input trước khi gửi đến hàm

đăng ký Nếu input sai thì hiện thông báo nhập lại

Bước 2: Gửi thông tin đăng ký đến hàm đăng ký Hàm này kiểm tra

username có tồn tại trong database chưa Nếu username tồn tại thì hiện thông báo lỗi và quay lại bước 1 Nếu username không tồn tại đến bước 3

Bước 3: Xử lý đăng kí và thêm dữ liệu vào database Gửi trả kết quả lại

Trang 33

Hình 2.2 Mô hình xử lý đăng ký

 Mô hình xử lý đăng nhập

Bước 1: User gửi username, password Nếu có lỗi input thì hiển thị thông báo Bước 2: Truyền username và password vào hàm login, xử lý Nếu

username hoặc password không đúng thì hiển thị lỗi và quay lại bước 1

Bước 4: Đăng nhập thành công tiếp tục sử dụng chương trình

createUser()

Msg Success Success

Trang 34

 Mô hình xử lý chức năng học bằng video

Bước 1: Người dùng gửi groupPosition và childPosition Có lỗi input thì

hiển thị thông báo

Bước 2: Truyền groupPosition và childPosition vào hàm checkPosition

để xử lý

Bước 3: Hàm checkPosition trả lại nội dung của video cho người dùng

Hình 2.4 Mô hình xử lý học bằng video

 Mô hình xử lý chức năng học lý thuyết

Bước 1: Người dùng gửi groupPosition và childPosition Có lỗi input thì

hiển thị thông báo

Bước 2: Truyền groupPosition và childPosition vào hàm checkPosition

Trang 35

Hình 2.5 Mô hình xử lý học lý thuyết

 Mô hình xử lý chức năng bài tập minh họa

Bước 1: Người dùng gửi groupPosition và childPosition Có lỗi input thì

hiển thị thông báo

Bước 2: Truyền groupPosition và childPosition vào hàm checkPosition

để xử lý

Bước 3: Hàm checkPosition trả lại nội dung của bài tập kèm hướng dẫn

giải cho người dùng

Hình 2.6 Mô hình xử lý bài tập minh họa

Trang 36

 Mô hình xử lý chức năng tìm kiếm câu hỏi

Bước 1: Người dùng gửi từ khóa đến hàm CheckInput() Có lỗi input thì

hiển thị thông báo

Bước 2: Truyền từ khóa tìm kiếm vào hàm checkSearchQuestion() để xử lý Bước 3: Hàm checkSearchQuestion trả lại nội dung câu hỏi và đáp án

đúng của câu hỏi đó cho người dùng

Hình 2.7 Mô hình xử lý chức năng tìm kiếm câu hỏi

 Mô hình xử lý làm trắc nghiệm và chấm điểm

Bước 1: User gửi mã đề thi vào hàm getCauhoi() và trả lại danh sách câu

hỏi lên màn hình

Bước 2: Người dùng làm bài thi trắc nghiệm và gửi đáp án vào hàm

chamDiem() và trả lại kết quả điểm và số câu trả lời

Bước 3: Lưu lại điểm của của người dùng vào CSDL

Trang 37

Hình 2.8 Mô hình xử lý chấm điểm và lưu bài thi

Chọn bộ đề getCauhoi()

chamDiem()

Danh sách câu hỏi Làm bài thi

Hiển thị kết quả

Lưu điểm luuDiem()

Msg Success Success

Ngày đăng: 29/06/2022, 20:37

HÌNH ẢNH LIÊN QUAN

Hình 1.5. Sơ đồ chuyển trạng thái của service - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
Hình 1.5. Sơ đồ chuyển trạng thái của service (Trang 26)
Hình 2.1. Biểu đồ UserCase về chức năng - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
Hình 2.1. Biểu đồ UserCase về chức năng (Trang 32)
Hình 2.2. Mô hình xử lý đăng ký - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
Hình 2.2. Mô hình xử lý đăng ký (Trang 33)
 Mô hình xử lý đăng nhập - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
h ình xử lý đăng nhập (Trang 33)
 Mô hình xử lý chức năng học bằng video - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
h ình xử lý chức năng học bằng video (Trang 34)
Hình 2.5. Mô hình xử lý học lý thuyết - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
Hình 2.5. Mô hình xử lý học lý thuyết (Trang 35)
 Mô hình xử lý chức năng bài tập minh họa - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
h ình xử lý chức năng bài tập minh họa (Trang 35)
 Mô hình xử lý chức năng tìm kiếm câu hỏi - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
h ình xử lý chức năng tìm kiếm câu hỏi (Trang 36)
Hình 2.8. Mô hình xử lý chấm điểm và lưu bài thi - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
Hình 2.8. Mô hình xử lý chấm điểm và lưu bài thi (Trang 37)
Bảng 2.1. Danh sách các thực thể - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
Bảng 2.1. Danh sách các thực thể (Trang 38)
 Bảng Account: - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
ng Account: (Trang 38)
 Bảng Cauhoi: - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
ng Cauhoi: (Trang 39)
Bảng 2.3. Bảng câu hỏi - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
Bảng 2.3. Bảng câu hỏi (Trang 39)
2.2.3. Thiết kế mô hình lớp - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
2.2.3. Thiết kế mô hình lớp (Trang 40)
3.1.2. Chi tiết các màn hình - Xây dựng ứng dụng hỗ trợ học lập trình ASP NET trên thiết bị di động
3.1.2. Chi tiết các màn hình (Trang 43)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w