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

xây dựng phần mềm từ điển Anh - Việt

10 1,5K 8
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 63,5 KB

Nội dung

tài liệu về xây dựng phần mềm từ điển Anh - Việt

Trang 1

Đề tài : Xây dựng phần mềm từ điển Anh – Việt

1.Đặt vấn đề :

Xu hớng chung trên thế giới ngày nay là toàn cầu hoá Việt nam một quốc gia kém phát triển trên thế giới muốn phát triển nền kinh tế để không lạc hậu so với thế giới thì không có con đờng nào khác nhanh hơn con đờng hội nhập vào nền kinh tế đang toàn cầu hoá Một trong những công cụ quan trọng để cho một quốc gia có thể hội nhập vào nền kinh tế thế giới

đó chính là trình độ ngoại ngữ của những ngời dân nớc ấy Đặc biệt là đối với sinh viên của

n-ớc ấy Chính vì vậy việc học ngoại ngữ với sinh viên là vô cùng quan trọng Trong các ngôn ngữ chính trên thế giới hiện nay thì tiếng Anh là phổ cập nhất Để học tốt tiếng Anh thì không gì bằng một quyển từ điển tốt Xuất phát từ nhu cầu thực tiễn đó nhóm lập trình Star Sofware Center của lớp CTM4-K45 ĐH BK HN đã xây dựng một chơng trình từ điển Anh-Việt

Chơng trình có một giao diện thân thiện cho phép ngời dùng dễ dàng tra cứu từ tiếng Anh , ngoài ra nó còn cho phép ngời dùng bổ xung từ tiếng Anh vào trong từ điển

2.Cơ sở lí thuyết của đề tài :

Việc xây dựng chơng trình từ điển từ lâu đã đợc các công ty phần mềm trong và ngoài

n-ớc nghiên cứu thực hiện và họ cũng đã cho ra rất nhiều bộ từ điển ví dụ nh : Lạc-Việt , just’click & see Đây là 1 đề tài không phải là mới mẻ nhng nó lại rất thu hút nhóm lập trình chúng em Tuy là đi sau nhng chúng em luôn luôn muốn phát huy hết những ý tởng sáng tạo của mình để làm cho chơng trình thực sự là 1 cuốn từ diển điện tử hữu ích và không thể thiếu cho mọi ngời

3.Ph ơng án giải quyết :

Khi xây dựng chơng trình từ điển này việc đầu tiên là giải quyết việc vấn đề lu

trữ từ và nghĩa của từ 1 từ tiếng Anh thì đi kèm theo nó là rất nhiều nghĩa tiếng Việt , vì vậy

em tổ chức lu trữ những từ tiếng Anh ra 1 file,nghĩa tiếng Việt ra 1 file riêng Từ tiếng Anh sẽ

đợc lu trong file “Td.idx” la file cua xâu chữ(String) còn nghĩa tiếng Việt sẽ đợc lu trong file

“Tudien.dat” là file của các bản ghi Các bản ghi này gồm nhiều trờng n,v,adj,vidu để lu trữ nghĩa Danh từ,Động từ,Tính Từ ,Ví dụ của từ tiếng Anh tơng ứng.Việc tách ra làm 2 file này sẽ làm cho dung lợng file nhỏ đi và việc tìm kiếm sẽ nhanh hơn và dễ dàng hơn

Thuật toán chính của chơng trình là việc truy nhập và tìm kiếm trong file lu trữ từ Khi ngời dùng nhập 1 từ bất kỳ việc tìm kiếm sẽ diễn ra Chơng trình sẽ truy nhập vào file lu trữ từ tiếng Anh (Td.idx) và thủ tục “timtu(s)” tìm kiếm so sánh trong đó Nếu từ đã nhập trùng với từ lu trữ trong file thì chơng trình sẽ ghi nhận vị trí của từ đó và kết thúc quá trình tìm kiếm.Tiếp theo chơng trình sẽ truy nhập vào file lu trữ nghĩa tiếng Việt(Tudien.dat),đặt

Trang 2

con trỏ ngay tại vị trí vừa ghi nhận và thủ tục “intu(s)” sẽ in nghĩa tiếng việt ra màn hình Nếu việc tìm kiếm thất bại (không tìm thấy từ cần tìm ) thì chơng trình sẽ đa ra thông báo là từ cần tìm cha có trong từ điển

Ngoài việc tra cứu , chơng trình còn cho phép ngời dùng bổ xung những từ cha có vào trong từ điển bằng th tục “Nhaptu” Khi bạn muốn nhập một từ mới vào từ điển thì từ chơng trình chính bạn nhấn F1 Chơng trình sẽ hiện ra lời mời nhập từ vào Khi nhập từ

Tiếng Anh ,chơng trình sẽ kiểm tra xem từ đó đã có cha ,nếu từ đó đã có trong từ điển thì

ch-ơng trình sẽ thông báo cho bạn biết về sự trùng lặp đó và đch-ơng nhiên bạn sẽ phải nhập từ khác Sau khi nhập nghĩa tiếng Anh chơng trình sẽ hớng dãn bạn nhập tiếp nghĩa bằng tiếng việt của từ tuỳ theo từ đó thuộc loại từ gì (danh từ, động từ…) Kết thúc nhập một từ có lời hỏi có) Kết thúc nhập một từ có lời hỏi có sửa từ vừa nhập không nếu nh trong quá trình nhập có sai xót thì chọn có (c) còn nếu không thì từ vừa nhập sẽ ghi vào từ điển Quá trình nhập từ sẽ tiếp tục cho đến khi bạn nhập xâu rỗng và chơng trình sẽ quay về chơng trình chính

Để tối u hoá tốc độ truy nhập file , các file sẽ đợc mở ngay từ khi chơng trình khởi động

và sẽ đóng lại khi bạn thoátkhỏi chơng trình.Việc mở file sẽ kèm theo thủ tục kiểm tra sự tồn tại của file.Nếu file không tồn tại chơng trình sẽ báo lỗi và dừng lại

Ngoài ra trong chơng trình còn bổ xung thêm mục about để giới thiệu về nhóm tác giả Chơng trình đợc thoát khỏi bằng phím Esc

Tuy nhiên vì vấn đề thời gian nên chơng trình còn một số tồn tại cha giải quyết đợc:

- Chơng trình không có phiên âm và phát âm của từ tiếng Anh

- Giao diện cha thật thân thiện

- Chơng trình không thể chạy đồng thời cùng một lúc với các chơng trình khác

4.Xây dựng ,thực hiện ph ơng án đề xuất :

Chơng trình đợc viết bằng công cụ chính là phiên bản Turbol Pascal 7.0

Chơng trình nh sau:

Program Tu_Dien;

Uses crt,graph,dos;

Type

mangtv= record

N:string;

V:string;

ADJ:string;

vd:string;

end;

mangta=string[16];

Const thu:array[0 6] of string[8] = ('Chu nhat','Thu Hai','Thu Ba','Thu Tu','Thu Nam','Thu Sau','Thu Bay');

VAR

f:file of mangtv;

Trang 3

f1 :file of mangta;

ch:char;

tv:mangtv;

s,ta :mangta;

vitri,gd,gm,x,y,i:integer;

s1,s2:string;

mofile:boolean;

Procedure VietHoa(var s:mangta); {chuyển từ nhập vào thành chữ in Hoa trớc xử lý}

Var i:integer;

begin for i:=1 to length(s) do s[i]:=upcase(s[i]);

end;

Function KiemTra(var ta:mangta):boolean; {Kiểm tra xem từ đã có cha}

var tg:mangta;

ok:boolean;

Begin

kiemtra:=true;ok:=true;seek(f1,0);

while (not eof(f1))and(ok=true) do

begin read(f1,tg);

if ta=tg then begin

ok:=false;

kiemtra:=false;

end;

end;

end;

Procedure nhaptu; {Nhập từ }

Begin

clrscr;

if mofile=false then

BEgin

assign(f,'tudien.dat');{$I-}reset(f);{$I+}if IOResult<>0 then rewrite(f);

assign(f1,'td.idx');{$I-}reset(f1);{$I+}if IOResult<>0 then rewrite(f1);

mofile:=true;

ENd;

textcolor(7);

repeat

write('Nhap tu TIENG ANH : ');textcolor(14);readln(ta);textcolor(7);

if (ta <> '') then

Begin

VietHoa(ta);

if KiemTra(ta) then

Trang 4

Begin

writeln('Nhap nghia TIENG VIET : ');

writeln('1 DANH TU (Neu co,neu khong co thi nhan ENTER): ');

textcolor(13);readln(tv.n);textcolor(7);

writeln('2 DONG TU (Neu co,neu khong co thi nhan ENTER): ');

textcolor(13);readln(tv.v);textcolor(7);

writeln('3 TINH TU (Neu co,neu khong co thi nhan ENTER): '); t

textcolor(13);readln(tv.adj);textcolor(7);

write('4 VI DU (Neu co,Hay Nhap Theo Mau : ');

textcolor(14);Writeln('I Love You(Anh Yeu Em)'); textcolor(7);

writeln('Neu khong co thi nhan ENTER): ');textcolor(13);readln(tv.vd);textcolor(7);

Write('Ban co sua lai khong(C/K): ');readln(ch);

if upcase(ch)<>'C' then

Begin seek(f,filesize(f));write(f,tv); seek(f1,filesize(f1));write(f1,ta);

End;

End

else Begin textcolor(4);

Writeln('Tu Nay Da Co Trong Tu Dien,Moi Ban Nhap Tu Khac !');

textcolor(7);

End;

end;

writeln('*=======*=======*========*======*======*=======*=======*====*'); until (ta='') ;

writeln('Tong So Tu trong tu dien la : ',filesize(f1));delay(900);

End;

Procedure tach_xau(var xau,xau1,xau2:string); {T¸ch x©u vÝ dô lµm 2 phÇn tiÕng Anh vµ tiÕng ViÖt}

var j:integer;

Begin

j:=0;

repeat j:=j+1;

if xau[j]='(' then

begin

xau1:=copy(xau,1,j-1);

xau2:=copy(xau,j,length(xau)-j+1);

if xau2[length(xau2)] <> ')' then xau2:=xau2+')';

end;

until xau[j]='(';

End;

Procedure intu(var tg:mangtv); {in nghÜa tiÕng ViÖt ra mµn h×nh}

Begin i:=0;

Trang 5

if (tg.n <> '') then

begin

setcolor(12);

outtextxy(91,250,'Danh tu(n):');

setcolor(14);

outtextxy(200,250,tg.n);i:=i+26;

end;

if (tg.v <> '') then

begin

setcolor(12);

outtextxy(91,250+i,'Dong tu(v):');

setcolor(14);

outtextxy(200,250+i,tg.v);i:=i+26;

end;

if (tg.adj <> '') then

begin

setcolor(12);

outtextxy(91,250+i,'Tinh tu(adj):');

setcolor(14);

outtextxy(200,250+i,tg.adj);i:=i+26;

end;

if (tg.vd <> '') then

begin

setcolor(12);

outtextxy(91,250+i,'ViDu:');

setcolor(14);Tach_xau(tg.vd,s1,s2);

outtextxy(150,250+i,s1);i:=i+26;

setcolor(14);

outtextxy(150,250+i,s2);

end;

end;

Procedure Timtu(var s:mangta); {T×m kiÕm tõ}

var

ok:boolean;

Begin if mofile=false then

BEgin

assign(f,'tudien.dat');{$I-}reset(f);{$I+}if IOResult<>0 then

Begin cleardevice;outtextxy(100,100,'Khong tim thay file TUDIEN.DAT');readln;halt(1);end; assign(f1,'td.idx');{$I-}reset(f1);{$I+}if IOResult<>0 then

Begin cleardevice;outtextxy(100,120,'Khong tim thay file TD.idx');readln;halt(1);end;

mofile:=true;

ENd;

Trang 6

ok:=false;seek(f1,0);

while (ok=false) and (not eof(f1)) do

Begin

read(f1,ta);

if s=ta then

begin

vitri:=filepos(f1)-1;

seek(f,vitri);read(f,tv);intu(tv);

ok:=true;

end;

end;

if ok=false then

begin

settextstyle(7,0,1);setcolor(14);

outtextxy(92,260,'Xin Loi ! Tu Nay chua co trong tu dien !');

end;

End;

Procedure Giaodien; {Giao diÖn }

Begin

setlinestyle(0,$aaaa,3);setfillstyle(1,7);

bar(60,90,550,430);setfillstyle(1,9);

bar(90,220,520,410);setfillstyle(1,13);

bar(90,140,300,170);

settextstyle(3,0,4);setcolor(4);

for i:=1 to 4 do

outtextxy(330+(i-1)*2,110-(i-1)*1,'TD ANH-VIET');

settextstyle(3,0,1);setcolor(14);

outtextxy(330,150,'STAR SOFWARE CENTER');

outtextxy(90,110,'TIENG ANH');

outtextxy(90,190,'TIENG VIET');

settextstyle(3,0,1);setcolor(14);

outtextxy(60,460,'F1:');setcolor(15); outtextxy(100,460,'NHAP TU');

settextstyle(3,0,1);setcolor(14);

outtextxy(220,460,'F2:');setcolor(15); outtextxy(250,460,'ABOUT SOFWARE');

settextstyle(3,0,1);setcolor(14);

outtextxy(420,460,'ESC:');setcolor(15); outtextxy(465,460,'KET THUC');

settextstyle(2,0,8);setcolor(14);

end;

{ -PhÇn nµy dïng tr×nh bÇy phÇn ABOUT SOFWARE -}

Trang 7

Procedure chu_chay; {ch÷ ch¹y}

var

j,k,m:integer;

str:string;

begin

setfillstyle(1,0);settextstyle(4,0,6);setcolor(4);

str:='ABOUT SOFWARE';

repeat

for j:=1 to length(str) do begin

sound(100*j+100);

if (str[j] <> ' ') then

for m:=620 downto textwidth('M')*j do

begin

if keypressed then begin nosound;exit;end

else Begin

bar(m,150,m+textwidth('M'),200);

for k:=1 to 4 do

outtextxy(m+(k-1)*2,150-(k-1)*1,str[j]);delay(1);

end;

end;

nosound;

end;delay(300);

until keypressed;

end;

procedure About;

var th,ngay,thang,nam:word;

begin cleardevice;

settextstyle(3,0,1);setcolor(14);

getdate(nam,thang,ngay,th);

outtextxy(80,100,'Hom Nay');

outtextxy(170,100,thu[th]);outtextxy(260,100,'Ngay');str(ngay,s);

outtextxy(310,100,s); outtextxy(340,100,'Thang');str(thang,s);

outtextxy(400,100,s);outtextxy(440,100,'Nam');str(nam,s);

outtextxy(480,100,s);setcolor(7);

outtextxy(80,300,'Day la phien ban dau tien nen khong tranh khoi sai xot ,');

outtextxy(50,320,'Mong cac ban thong cam va gop y them de phan mem ngay 1 ');

outtextxy(50,340,'hoan thien hon.');

outtextxy(50,380,'Moi gop y xin gui ve :');

outtextxy(100,400,'Nhom STAR SOFWARE CENTER : CTM4 - K45 - DHBK HN ');

outtextxy(100,420,'E-MAIL : PQH@.student.hut.com');

outtextxy(100,440,' NTA@.student.hut.com');

chu_chay;

end;

Trang 8

Procedure creatsound(h,t:word); {tạo âm thanh }

begin

sound(h);delay(t);nosound;

end;

Procedure nhackt;

Begin

Creatsound(967,300);

Creatsound(861,300);

Creatsound(767,300);

Creatsound(575,900);

delay(60);

Creatsound(575,300);

Creatsound(861,300);

Creatsound(967,300);

Creatsound(767,900);

End;

Procedure Ketthuc; {phần kết thúc }

begin cleardevice;

settextstyle(10,0,6);setcolor(4);

for i:=1 to 4 do

outtextxy(40+(i-1)*2,30-(i-1)*1,'TD ANH-VIET');

setfillstyle(1,9);setcolor(14);

bar(30,150,600,230);settextstyle(7,0,4);

outtextxy(40,170,'THANKS FOR YOUR SUPPORT !');

settextstyle(3,0,2);setcolor(13);

outtextxy(400,300,'NHOM THUC HIEN :');setcolor(7);

outtextxy(400,340,'Pham Quoc Huong');

outtextxy(400,360,'Nguyen The Anh');

outtextxy(400,380,'Nguyen Huu Dinh');

outtextxy(400,400,'Dang Van Phuc');

outtextxy(400,420,'Le Anh Tuan');

nhackt;

end;

Procedure tldh;{thiết lập đồ hoạ}

begin

gd:=detect;

initgraph(gd,gm,'d:\Dos\tp\Bgi');

if graphresult <> grok then halt(1);

end;

{ -Chơng trình chính -}

BEGIN

Trang 9

setcolor(4);

textcolor(0);

Giaodien;mofile:=false;

repeat

i:=0;s:='';

repeat

setcolor(15);

ch:=readkey;creatsound(800,10);

if ch=#27{ESC} then Begin

if mofile=true then

begin close(f);close(f1);end;

ketthuc;closegraph;halt(1);

End;

if (ch=#59){F1}then begin closegraph;nhaptu;tldh;cleardevice;giaodien;ch:=#0;s:='';end;

if ch=#60{F2} then begin about;cleardevice;giaodien;s:='';end;

if (ch in [#8,#32,#48 #57,#65 #90,#97 #122]) and (length(s)<16) then

begin

if ch<>#8 then begin s:=s+ch;outtextxy(91+i,140,ch);i:=i+13;end;

if (ch=#8) and (length(s)<>0)then begin bar(91+i -textwidth('M'),140+textheight('H') +6,91+i,140);

delete(s,length(s),1);i:=i-13;end;

end;

if length(s) =16 then

if (ch=#8) and (length(s)<>0)then begin bar(91+i - textwidth('M'),140+textheight('H') +6,91+i,140);

delete(s,length(s),1);i:=i-13;end;

until (ch =#13) and (s<>'');

settextstyle(3,0,1);

VietHoa(s);

timtu(s);

ch:=readkey;setfillstyle(1,9);

bar(90,220,520,410);setfillstyle(1,13);

bar(90,140,300,170);settextstyle(2,0,8);

until ch=#27;

if mofile=true then begin close(f);close(f1); end;

ketthuc;

closegraph;

END

5.§¸nh gi¸ thö nghiÖm c¸c kÕt qu¶ thu ® îc :

Trang 10

Chơng trình cha đợc tối u hoá về mặt tốc độ tìm kiếm từ.Các từ ghi trong file cha đợc xắp xếp theo qui luật (có thể là Alphabet hoặc theo 1 qui luật nào đó tuỳ vào thuật toán tìm kiếm sao cho nhanh nhất).Vì vậy tốc độ tìm kiếm từ còn chậm

Dung lợng lu trữ của trơng trình tuỳ thuộc vào số lợng từ có trong từ điển.Số lợng từ càng nhiều thì dung lợng càng tăng.Nhng ngày nay với các ổ đĩa có dung lợng rất lớn(từ 10Gb trở lên)thì dung lợng chơng trình không đáng kể

6.Các ph ơng h ớng phát triển tiếp theo :

Trớc tiên sẽ khắc phục những tồn tại cha thể giải quyết đợc trong chơng trình này.Bổ xung các tính năng còn thiếu,tăng tốc độ tìm kiếm từ, giảm nhỏ kích thớc chơng trình bằng cách nén file

Khi có điều kiện sẽ tiếp tục phát triển chơng trình thành một công cụ học tiếng Anh hữu ích hơn nữa Chơng trình không chỉ đơn thuần là từ điển nữa mà có bổ xung thêm các phần mới để cho việc học tiếng Anh trở nên dễ dàng hơn đối với mọi ngời

7.Tài liệu tham khảo :

Sách tin học đại cơng, sách ngôn ngữ lập trình Pascal nâng cao, tạp trí PCWorld

Ngày đăng: 13/04/2013, 09:01

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w