Tải bản đầy đủ (.doc) (32 trang)

Ứng dụng học ngữ pháp tiếng anh (EnglishGramar_TOEIC) Window phones 7

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (570.99 KB, 32 trang )

MỞ ĐẦU
Điện thoại thông minh phát triển mạnh ở Việt Nam đang được đánh giá
là thiên đường để cho các nhà phát triển ứng dụng di động.
Hệ điều hành Windows Phone là một hệ điều hành khá mới và có nhiều
thú vị với thị trường Việt Nam. Thị trường Windows Phone đang được phát
triển rất rộng và tiềm năng. Các ứng dụng trên nền Windows Phone cũng đang
được chú trọng phát triển và đây sẽ là mảnh đất màu mỡ cho các nhà phát triển
ứng dụng cho dòng Smartphone.
Có một điều dễ dành nhận thấy là Việt Nam có thể là “mỏ” cho thị
trường phần mềm di động - với hơn 11 triệu thuê bao điện thoại và tốc độ tăng
trưởng đang đạt mức khá cao. Đây thực sự đây là một mảnh đất màu mỡ không
chỉ cho các nhà cung cấp phần mềm nói riêng mà còn cho các nhà cung cấp
dịch vụ nội dung nói chung. Điểm đáng ghi nhận là các nhà cung cấp trò chơi
cho điện thoại đang cố gắng thu hút khách hàng bằng nhiều hình thức khác
nhau trong đó có việc cung cấp ngày càng nhiều trò có nội dung hấp dẫn với
hình ảnh đẹp và âm thanh chất lượng cao
1
Window Phone 7
Giới thiệu ứng dụng học ngữ pháp tiếng anh
(EnglishGramar_TOEIC)
I. Khảo sát ứng dụng
1. Khảo sát hiện trạng
Nhu cầu thực tế của đề tài
Hiện nay, đối với học sinh, sinh viên và công chức thì việc thông thạo tiếng
Anh là một nhiệm vụ gần như là tối thiểu và bắt buộc. Với việc Việt Nam gia
nhập WTO và ngày càng giao thương nhiều với nước ngoài thì phần lớn tất cả
công ty, tập đoàn trong cũng như: ngoài nước đều đòi hỏi người làm việc cho
họ phải thông thạo tiếng Anh. Do đó, nhu cầu học tiếng Anh trở nên cấp thiết
và là xu thế chung của xã hội hiện nay. Tuy nhiên hiện nay học tiếng anh với ai,
ở đâu và như thế nào để tiết kiệm nhất và có hiệu quả cao nhất luôn là một câu
hỏi khó dành cho các học viên.


Vì vậy một ứng dụng học tiếng anh trên nền tảng di dộng sẽ giúp chúng ta có
thể học, trao đổi tiếng Anh trong mọi thời điểm rất tiện lợi, làm cho việc học trở
nên hiệu quả hơn nâng cao được vốn tiếng Anh của mình.
2
Các phần mềm cùng loại hiện có trên Store:
“EnglishGrammar” của
WGAmod chạy trên
Windows Phone
“EnglishGrammar” của
TFLAT chạy trên Android
Bảng : Minh họa các phần mềm học ngữ pháp tiếng anh hiện nay
Những hạn chế trong những phần mềm hiện có
3
“EnglishGrammar” của
WGAmod chạy trên
Windows Phone
“EnglishGrammar” của TFLAT
chạy trên Android
Cách dùng Gần như đầy đủ các tính năng Đơn giản
Giao diện Chưa sinh động và trực quan. Trực quan chưa sinh động
Ngôn ngữ hổ trợ học Anh-Anh Anh-Việt
Bảng : So sánh các phần mềm học ngữ pháp tiếng anh hiện nay
Nhóm lập trình chúng em sẽ cố gắng khắc phục các nhược điểm của các phần
mềm cùng loại hiện có.
Ngoài ra, chúng em cũng cố gắng xây dựng thêm một số tính năng riêng biệt để
phần mềm thêm đặc sắc.
2. Xác định yêu cầu hệ thống :
* Phần mềm ngữ pháp tiếng anh gồm các chức năng chính sau:
 Khởi tạo:
- Hệ thống sẽ phát sinh ra danh sách các ngữ pháp.

- Màn hình phát sinh như sau:
Hình ảnh danh sách các ngữ pháp
4
 Tìm kiếm:
- Người chơi sẽ nhập một chuổi kí tự.
- Hệ thống sẽ tự động tìm kiếm tất cả các nội dung ngữ pháp khi người dùng
nhập từng kí tự.
 Đánh dấu trang:
- Khi người dùng muốn đánh dấu trang mình đọc chưa hết.
- Mỗi lần chỉ có thể đánh dấu 1 trang
- Hệ thống sẽ đánh dấu trang người dùng chưa đọc hết và lần dùng tiếp theo
người dùng có thể đọc tiếp
 Xem hướng dẫn:
- Người chơi có thể xem hướng sử dụng phần mềm.
II. Mô hình Usecase
1. Sơ đồ Use-case
Hình : Sơ đồ Use case phần mềm Ngữ Pháp Tiếng Anh
2. Danh sách các Actor:
Tên Actor Ý nghĩa / Ghi Chú
Người Dùng Người dùng điều khiển toàn bộ phần mền.
5
3. Danh sách các Use-case:
4. Đặc tả Use-case
• Use-case “Tìm Kiếm”
Người Sử Dụng Tìm Kiếm
Hình : Sơ đồ Use case “Tìm Kiếm”
6
stt
Tên Use-case
Ý nghĩa / Ghi chú

1 Tìm Kiếm
Use-case giúp người dùng tìm kiếm
cú pháp những nội dung mà người
dùng muốn tìm kiếm.
2 Bookmark
Use-case giúp người sử dụng đánh
dấu lại những trang mà người sử dụng
đang xem và muốn quay trở lại.
3 Học Ngữ Pháp
Use-case hệ thống sẽ liệt kê ra ngữ cú
pháp ngữ pháp để người sử dụng dễ
học.
4 Hướng Dẫn
Use-case hệ thống sẽ hiện một bảng
hướng dẫn sử dụng giúp người sử
dụng dễ dàng trong việc sử dụng phần
mền hơn.
 Tóm tắt: Use case giúp người sử dụng tìm kiếm những cú pháp nội dung
tiếng anh.
 Các dòng sự kiện chính:
B1 : Người chơi nhấn vào nút “Tìm Kiếm”.
B2 : Hệ thống sẽ đưa người sử dụng vào mục tìm kiếm .
Các dòng sự kiện khác: Nếu người sử dụng không nhấn vào nút tìm kiếm
thì không thể thực hiện Use case.
 Các yêu cầu đặc biệt: Yêu cầu người dùng nhấn vào nút Tìm Kiếm.
 Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Yêu cầu người dùng
nhấn vào nút Tìm Kiếm.
 Trạng thái hệ thống sau khi thực hiện Use-case: Người sử dụng bước vào
tìm kiếm.
 Điểm mở rộng: Không có.

7
• Use-case “Bookmark”
Người Sử Dụng Bookmark
Hình: Sơ đồ Use case “Bookmark”
 Tóm tắt: Use case hệ thống sẽ cho người sử dụng đánh dấu lại trang.
 Các dòng sự kiện chính:
B1 : Người sử dụng nhấn vào nút đánh dấu “bookmark”.
B2 : Hệ thống sẽ lưu lại trang vừa đánh dấu.
B3 : Tìm kiếm gồm : các cú pháp,ngữ pháp, nội dung tiếng anh …
 Các dòng sự kiện khác: Nếu người dùng không nhấn vào nút tìm kiếm thì
không thể thực hiện Use case.
 Các yêu cầu đặc biệt: Yêu cầu người sử dụng vào nút Bookmark.
 Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Yêu cầu người dùng
nhấn vào nút Bookmark.
 Trạng thái hệ thống sau khi thực hiện Use-case: Trang được đánh dấu sẽ
được lưu lại trong Bookmark.
 Điểm mở rộng : Không có.
8
• Use-case “Học Ngữ Pháp”
Người Sử Dụng Học Ngữ Pháp
Hình : Sơ đồ Use case “Học Ngữ Pháp”
 Tóm tắt: Use case hệ thống sẽ liệt kê ra những cú pháp ngữ pháp.
 Các dòng sự kiện chính:
B1 : Người chơi nhấn vào nút “Học Ngữ Pháp”.
B2 : Hệ thống sẽ liệt kê ra những cú pháp ngữ pháp đầy đủ đẻ người sử
dụng dễ dàng xem và học.
 Các dòng sự kiện khác: Nếu người sử dụng không nhấn vào nút Học Ngữ
Pháp thì không thể thực hiện Use case
 Các yêu cầu đặc biệt: Yêu cầu người chơi nhấn vào nút Học Ngữ Pháp.
 Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Yêu cầu người chơi

nhấn vào nút Học Ngữ Pháp.
 Trạng thái hệ thống sau khi thực hiện Use-case:Một loạt ngữ pháp,cú
pháp,nội dung,được hiên lên để người sử dụng xem.
 Điểm mở rộng: Không có.
9
• Use-case “Hướng Dẫn”
Người Sử Dụng Hướng Dẫn
Hình : Sơ đồ Use case “Hướng Dẫn”
 Tóm tắt: Use case hệ thống giúp cho người sử dụng dễ dàng sử dụng phần
mền hơn.
 Các dòng sự kiện chính: Hệ thống sẽ hướng dẫn chi tiếc giúp từng mục nội
dung.
 Các dòng sự kiện khác: Nếu Use case “Hướng Dẫn” không được thực hiện
thành công thì Use case này cũng không được thực hiện.
 Các yêu cầu đặc biệt: Yêu cầu Use case “Hướng Dẫn” được thực hiện
thành công.
 Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Yêu cầu Use case
“Hướng Dẫn” được thực hiện thành công.
 Trạng thái hệ thống sau khi thực hiện Use-case: File hướng dẫn mở ra
cho người dùng đọc.
 Điểm mở rộng: Không có.
10
III. Hồ sơ phân tích
1. Sơ đồ lớp
Hình : Sơ đồ lớp phần mềm EnglishGrammar
12
• Các lớp đối tượng và quan hệ
Tên lớp/quan hệ Loại Ý nghĩa/ghi chú
Ngữ Pháp – Loại
Association

1 – *
Ngữ Pháp có nhiều loại
Ngữ Pháp – Danh Từ Kế thừa
Ngữ Pháp – Câu Kế thừa
Ngữ Pháp – Tính Từ Kế thừa
Ngữ Pháp – Trạng Từ Kế thừa
Ngữ Pháp – Động Từ Kế thừa
Ngữ Pháp – Thì Kế thừa
Ngữ Pháp – Giới Từ Kế thừa
Ngữ Pháp – Liên Từ Kế thừa
Ngữ Pháp – Đại Từ Kế thừa
Ngữ Pháp – Mệnh Đề Kế thừa
Ngữ Pháp – Tự Định Nghĩa Kế thừa
• Mô tả chi tiết các lớp đối tượng:
 Lớp Ngữ Pháp:
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa / Ghi chú
1 Ten String Tên ngữ pháp
2 DinhNghia String Định nghĩa ngữ pháp
3 CachSuDung String Cách sử dụng ngữ pháp
4 ChucNang String Chức năng ngữ pháp
5 CacLoai Loai [,]
Mảng chứa các phân loại của
một ngữ pháp
ViDuMinhHoa String Ví dụ minh họa cho ngữ pháp
6 LuuY String
Những đặc điểm cần lưu ý
trong ngữ pháp
STT Tên phương thức Kiểu trả về Ý nghĩa / Ghi chú
1 KhoiTao() Void
Hàm load dữ liệu lên danh sách các

ngữ pháp
2 Tìm kiếm() Void
Hàm tìm kiệm một nội dung trong
tất cả các ngữ pháp
13
 Lớp Danh Từ, Tính Từ, Câu, Trạng Từ, Động Từ, Đại Từ, Mệnh Đề
Các lớp này không có thuộc tính gì riêng biệt.
 Lớp Thì
STT Tên thuộc tính
Kiểu dữ
liệu
Ràng buộc Ý nghĩa / Ghi chú
1 DauHieuNhanBiet String
Các dấu hiệu để nhận biết về
Thì
2 CauTruc String Cấu trúc của Thì
 Lớp Giới Từ
STT Tên thuộc tính
Kiểu dữ
liệu
Ràng
buộc
Ý nghĩa / Ghi chú
1 Vị trí String
Vị trí của giới từ trong
câu
2 CachDatTuNgu String
Cách đặt một giới từ
trong câu
3

MotSoGioiTuThongDun
g
String
Một số giới từ thường
hay sử dụng.
 Lớp Lien Từ:
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa / Ghi chú
1 LienTuDangLap String
 Lớp Tự Định Nghĩa:
STT Tên thuộc tính
Kiểu trả
về
Ý nghĩa / Ghi chú
1 DinhNghia1 String Thuộc tính tự định ngĩa
2 DinhNghia2 String
3 DinhNghia3 String
4 DinhNghia4 String
5 DinhNghia5 String
6 DinhNghia6 String
7 DinhNghia7 String
14
 Lớp Loại
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa / Ghi chú
1 TenLoai String Tên Loại thuộc 1 ngữ pháp
2 ViDuMinhHoa String
Ví dụ minh họa cho loại ngữ
pháp
3 DacDiem String
Đặc Điểm minh họa cho loại
ngữ pháp

15
2. Thiết kế dữ liệu
Trong Window phone việc lưu trữ dữ liệu bằng SQL Compact edition giúp việc
lưu trữ dữ liệu trở nên dể dàng hơn. Tất cả những cách lưu trữ này đều là cách
lưu trữ phía local của phone.
Để lưu trữ dữ liệu phía local, một Windows Phone app cần dùng LINQ to SQL,
LINQ to SQL cung cấp một giải pháp lập trình hướng đối tượng tương tác trực
tiếp lên thực thể dữ liệu.
Các thao các trên LINQ to SQL được cung cấp thông qua
System.Data.Linq.DataContext , các thao tác thêm, sửa, xóa, cập nhật dữ liệu
được cung cấp thông qua lớp Datacontext giúp chúng ta sử dụng rất dể dàng.
Lớp Datacontext trong ứng dụng Windows Phone có thể hiểu là lớp chưa kiến
trúc dữ liệu, chứa những đối tượng Table của SQL
LINQ to SQL runtime là cầu nối giữa thế giới đối tượng thự thể và thế giới dữ
liệu.
Để tạo Local Database, việc đầu tiên bạn phải làm là định nghĩa kiến trúc dữ
liệu, bao gồm lớp kế thừa lớp Datacontext, lớp này sẽ chứa tập những đối tượng
có quan hệ trong ứng dụng. Ngoài ra phải định nghĩa từng thực thể đổi tượng
bảng (Table) để việc Datacontext mapping.
Một điều không thể thiếu là để sử dụng lớp Datacontext trên chúng ta phải khai
báo những namespace sau :
16
Mô tả cấu trúc file dùng để lưu trữ
Nhóm em lưu trữ dữ liệu phần mềm bằng SQL Sever Compact 3.5 .
CONTENTS
ID: int
CONTENT:
nvarchar(4000)
ITEM: int
GRAMMAR: int

3. Thiết kế giao diện
 Danh sách các màn hình
Tên màn hình Ý nghĩa / Ghi chú
Trang Chính Giao diện trang chính
Trang Tìm Kiếm Giao diện tìm kiếm
Trang Bookmarks Giao diện đánh dấu
Hướng Dẫn Giao diện hướng dẫn người dùng
17
BOOKMARS
ID: int
ITEM: int
GRAMMAR: int
GRAMMAR
ID: int
CONTENTS: int
 Mô tả chi tiết mỗi màn hình
Màn hình “Trang Chính”:
Hình : Giao diện chính
 Các sự kiện:
(1) Click nút Home.
(2) Click nút Tìm Kiếm.
(3) Click nút Bookmarks.
(4) Click nút Hướng Dẫn.
(5) Click nút Back của điện thoại.
 Cách sử dụng:
18
- Click nút “Bắt đầu” (1), form Trang Chính sẽ hiện ra, danh sách các ngữ pháp
được hiển thị
- Click nút “Tìm Kiếm” (2), form Tìm Kiếm sẽ hiện ra.
- Click nút “Bookmarks” (3), form Bookmarks sẽ hiện ra

- Click nút “Hướng Dẫn” (4), form Hướng Dẫn sẽ hiện ra.
- Click nút Back (5) của điện thoại để thoát khỏi chương trình.
Màn hình “Tìm Kiếm”:
Hình : Giao diện tìm kiếm
19
Hình : Giao diện xem nội dung
 Các sự kiện:
(1) Click nút Tìm Kiếm.
(2) Nhập ký tự vào textbox
(3)Chạm vào màn hình cảm ứng 1 item bất kì ở danh sách search.
 Cách sử dụng:
- Người dùng chạm vào nút Tìm Kiếm (1) , form Tìm Kiếm hiện ra.
- Người dùng textbox (2) , nhập từng kí tự hệ thống sẽ tự động tìm kiếm và sẽ
hiển thị lên danh sách đã tìm kiếm
- Người dùng nhấn vào một item bất kì (3)giao diện xem nội dung sẽ mở để
xem nội dung của người dùng cần tìm.
Màn hình “Bookmarks”
20
Hình : Giao diện khi nhấn nút
bookmark khi dang xem
21
(1)
(2)
Hình : Giao diện Booookmarks khi không đang xem nội dung
 Các sự kiện:
 (1) Click nút bookmarks một trang mới
 (2) Click nút các đã trang đánh dấu
 (3)Chạm vào màn hình cảm ứng 1 item bất kì ở danh sách đã đánh dấu.
 Cách sử dụng:
- Người dùng chạm vào đánh dấu trang, hệ thống sẽ tự động đánh dấu trang

người dùng đang đọc.
- Người dùng nhấn vào các trang đã đánh dấu(2) , thì form bookmark sẽ hiển
thị và hiển thị các trang đã được đánh dấu
- Người dùng nhấn vào một item bất kì (3)giao diện xem nội dung sẽ mở để
xem nội dung của người dùng cần tìm.
22
(3)
Màn hình “Hướng Dẫn”
Hình 4.13. Giao diện Tùy
Chọn
 Các sự kiện:
Click vào nút “hướng dẫn”
 Cách sử dụng:
Người dùng chạm vào
biểu tượng hướng dẫn thì chương trình sẽ mở form và hướng dẫn người
dùng sử dụng
4. Xử lý các sự kiện chính
 Sự kiện tìm kiếm:
• Nạp dữ liệu lên danh sách kết quả tìm kiếm
23
void LoadSearchBar()
{
db = new EnglishGrammarContext(@"isostore:/EnglishGrammar.sdf");
var query = from p in db.CONTENTS select p;
leght=query.ToList().Count;
array = new CONTENTS[leght];
array = query.ToArray();
lstSearchResult.SelectedItem = null;
}
• Windows phone 7 không tích hợp bộ gõ tiếng Việt, khó khăn cho việc

tìm kiếm Vì vậy cần sự kiện chuyển chữ có dấu sang không dấu giúp cho
việc tìm kiếm dễ dàng hơn.
public static string ConvertVN(string chucodau)
{
const string FindText =
"áàảãạâấầẩẫậăắằẳẵặđéèẻẽẹêếềểễệíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵÁÀẢ
ÃẠÂẤẦẨẪẬĂẮẰẲẴẶĐÉÈẺẼẸÊẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯ
ỨỪỬỮỰÝỲỶỸỴ";
const string ReplText =
"aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAA
AAAAAAAAAAAAADEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOUUUUUUU
UUUUYYYYY";
int index = -1;
char[] arrChar = FindText.ToCharArray();
while ((index = chucodau.IndexOfAny(arrChar)) != -1)
{
24
int index2 = FindText.IndexOf(chucodau[index]);
chucodau = chucodau.Replace(chucodau[index], ReplText[index2]);
}
return chucodau;
}
• Sự kiện phát sinh khi nhấn một button bất kì trên danh sách kết quả tìm
kiếm
private void lstSearchResult_SelectionChanged(object sender,
SelectionChangedEventArgs e)
{
if ((sender as ListBox).SelectedItem!=null)
{
StackPanel stpItem = (sender as ListBox).SelectedItem as StackPanel;


ListBox lst = (sender as ListBox);
lst.Tag =stpItem.Tag.ToString();
listgrammars_SelectionChanged(lst, e);
pivot.SelectedIndex = int.Parse((stpItem.Children[0] as
StackPanel).Tag.ToString())-1;
}
else
{
}
}
void VisibilityViews(String name)
{
switch (name)
{
25
case "ViewHome":
{
ViewHome.Visibility = Visibility.Visible;
ViewReader.Visibility = ViewSearch.Visibility =
ViewBookmarks.Visibility = ViewSetting.Visibility = Visibility.Collapsed;
}
break;
case "ViewReader":
{
ViewReader.Visibility = Visibility.Visible;
ViewHome.Visibility = ViewSearch.Visibility =
ViewBookmarks.Visibility = ViewSetting.Visibility = Visibility.Collapsed;
}
break;

case "ViewSearch":
{
ViewSearch.Visibility = Visibility.Visible;
ViewReader.Visibility= ViewHome.Visibility
=ViewBookmarks.Visibility=ViewSetting.Visibility= Visibility.Collapsed;
}
break;
case "ViewBookmarks":
{
ViewBookmarks.Visibility = Visibility.Visible;
ViewHome.Visibility = ViewSearch.Visibility =ViewSetting.Visibility=
ViewReader.Visibility = Visibility.Collapsed;
}
break;
26

×