英语字典软件的设计和实现文档格式.docx
- 文档编号:16267882
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:18
- 大小:140.49KB
英语字典软件的设计和实现文档格式.docx
《英语字典软件的设计和实现文档格式.docx》由会员分享,可在线阅读,更多相关《英语字典软件的设计和实现文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
该系统的可行性分析包括以下几个方面的内容。
3.1.1技术可行性
WIN-TC是一个TC2WINDOWS平台开发工具。
该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。
并提供一组相关辅助工具令你在编程过程中更加游刃有余,如虎添翼。
本软件用于编写C语言程序。
WIN-TC简繁双语版可以正常运行于98及其以上的简体及繁体WINDOWS操作系统上。
WIN-TC是TurboC2.0(简称TC2.0)的一种扩展形式,是在TC2.0的基础上,增强了系统的兼容性和共享性,允许进行复制粘贴的多项可以用鼠标来操作的功能,比TC2.0使用起来方便。
运用该软件可以实现英语词典包括查找单词的中文意思,增加单词,删除单词,退出系统等功能。
3.1.2经济可行性
随着科学技术的发展,传统的字典由于携带不方便,词汇量受限等等原因,使用者减少很多,而英语词典软件解决了这些问题,让人们能更加方便的学习英语。
3.1.3操作可行性
操作非常简单,只要进入界面,然后可以按照自己的需要选择相应的界面进行输入自己要查找的单词,添加新单词以及删除不需要的单词等相关操作,操作非常方便。
从法律方面来说该系统完全可行。
3.2英语词典软件需求分析
这是一个拥有50个词汇量的英语电子小字典,它利用结构体存放单词库,有较好的可扩充性,具有查找单词中文意思以及词性、添加字典单词、删除字典单词等功能。
(1)查找单词中文意思以及词性
用户输入想要查找的单词,并按回车,该词典便会自动搜索与用户键入单词一样的单词,并将其连同中文意思,词性等打印出来,如果在字典库里面找不到与之相匹配的英语单词,则打印输出“thereisnotthiswordinthevocabulary!
!
”
(2)添加字典单词库
为了扩充单词库的内容,该软件添加了另一项功能,添加单词库单词功能,该功能所执行的任务是:
从键盘上输入单词内容并保存在内存上,用户只需键入要添加位置,并敲进单词的内容便可。
(3)删除字典单词
该功能实现的是删除不想要的单词,以及它对应的词性,中文意思,等等。
(4)查找相近单词
该部分执行的功能是当用户打入某个英文单词的开头时,软件将自动把所有与用户所敲进单词开头相同的单词打印出来。
例如,当用户敲进“go”时,电脑将打印出“go”“good”“goodmorning”
(5)作者介绍以及软件介绍
该功能主要是向用户介绍该软件制作者,以及该软件的使用方法。
(6)退出系统
这功能执行的是结束软件的进程。
英语词典软件系统设计
4.1总体设计
4.1.1大致流程图
图4-1
4.2详细设计
(1)查找函数
流程图如下:
图4-2
(2)查找相近函数
图4-3
(3)fatecmp模糊比较函数
图4-4
(4)删除函数
流程图如下:
图4-5
(5)添加函数
图4-6
(6)作者介绍
图4-7
4.3界面设计
1.充分考虑界面易于操作的系统需求,单词查询和添加单词等功能需求采用类似于菜单的功能选择方式实现。
具体功能选择界面设计效果图如图所示。
图4-8
2选择相应选项时,表示选择选择相应的功能
(1)选择1,查找英语单词
图4-9
(2)添加英语单词
图4-10
(3)删除单词
图4-11
(4)查找形近单词
图4-12
(5)作者介绍
图4-13
英语词典软件的编码和测试
5.1编码
5.1.1结构体
代码开头定义了一个结构体structwords,存放字典单词库.该结构体里面包含:
english,cixing,means三部分内容。
并定义了一个全局变量count=52,表示单词表中总共存放了52个单词.具体代码如下:
#include<
stdio.h>
#include<
string.h>
stdlib.h>
intcount=52;
structwords
{
charenglish[20];
charcixing[20];
charmeans[20];
}
stu[100]={{"
very"
"
prep"
feichang"
},{"
good"
adj"
haode"
beautiful"
paioliangde"
I"
n"
wo"
me"
wode"
hand"
shou"
congratulation"
zhuhe"
man"
nanren"
handsome"
shuai"
pretty"
junqiaode"
fuck"
made"
mother"
mama"
father"
baba"
morning"
zaoshang"
well"
adv"
went"
v"
zou"
how"
zenyang"
where"
nali"
chick"
jirou"
duck"
ya"
kiss"
jiewen"
home"
jia"
mail"
youjian"
net"
wang"
internet"
hulianwang"
dream"
mengxiang"
boy"
nanhai"
computer"
diannao"
female"
nvsheng"
goods"
huoping"
},{"
girl"
nvhai"
screen"
pingmu"
love"
ai"
sex"
xing"
pitty"
kexide"
fall"
diaoxia"
in"
zailimian"
out"
waimian"
time"
shijian"
language"
yuyan"
window"
chuangkou"
learn"
xuexi"
share"
gongxiang"
shift"
zhuanhuan"
sound"
shengyin"
medicine"
yao"
now"
xianzai"
help"
bangzu"
start"
kaishi"
paste"
zhantie"
search"
chazhao"
couse"
kecheng"
}};
5.1.2主函数
软件的主函数.该软件主函数是由一个switch函数构成,通过switch函数调用各个子函数,从而实现,当键盘敲入选项的时候,选择向相应的功能.在主函数中,我定义了五个子函数:
finding,add,dele,near1,introduce.它们相应的功能是:
查找,添加,删除,查找相近,介绍.其次,主函数中还利用printf语句构建了一个软件的初始界面.并在界面中明确如何使用该软件.具体代码如下:
voidmain()
{
intin;
voidfinding1();
/*调用查找函数*/
voidadd();
/*调用增加单词函数*/
voiddele();
/*调用删除单词函数*/
voidnear1();
/*调用查找相似单词函数*/
voidintroduce();
printf("
*****************************************************\n"
);
\n"
huanyingshiyongxinhuazidian\n"
designbyMia"
);
*******************************************************\n"
**\n"
*1chazhaozhongwenyisijicixing*\n"
*2tianjiaxindanci*\n"
*3shanchudanci*\n"
*4chazhaoxingjindanci*\n"
*5zuozhejieshao*\n"
*6tuichu*\n"
for(;
;
)
scanf("
%d"
&
in);
switch(in)
case1:
finding1();
break;
case2:
add();
case3:
dele();
case4:
near1();
case5:
introduce();
case6:
exit(0);
}}}
5.1.3子函数finding
该子函数主要用到的语句是for语句跟比较函数strcmp。
首先我定义了一个长度为20的字符串charword[20],该字符串用来存放用户查找的单词。
然后利用strcmp函数,与stu[i].english一一比较,当strcmp()==0时,则打印stu[i].english,stu[i].cixing,stu[i].means.当strcmp()!
=0时候,执行for语句,也就是说,当strcmp()!
=0时,执行i++,与单词库里的下一个英语单词进行比较。
知道找到i>
52为止,如果还未找到,则打印“thereisnothiswordinthevocabulary!
”具体代码如下:
voidfinding1()/*查找函数*/
charword[20];
/*定义要找的单词*/
inti;
qingshuruninyaochazhaodeyinwendanci:
"
scanf("
%s"
word);
/*输入要查找的单词*/
for(i=0;
i<
=100;
i++)
if(strcmp(word,stu[i].english)==0)/*利用比较函数与字母库里面的单词一一比较*/
{printf("
%s,%s,%s\n"
stu[i].english,stu[i].cixing,stu[i].means);
break;
}
if(i>
100)
thiswordisnotfoundinthedictionary!
5.1.4子函数near1
该部分中调用了另外一个模糊比较函数(fatecmp()),从而实现,查找相近单词的功能。
用户从键盘敲入单词或字母b,执行fatecmp(b,stu[i].english),当函数fatecmp()==0时,即已经找到相近的单词,则打印stu[i].english.然后继续执行for语句,执行i++,直至i>
=count.如果未能找到,也继续执行for语句。
具体代码如下:
voidnear1()/*查找相近函数*/
{intfatecmp(char*s1,char*s2);
/*调用模糊函数*/
charb[20];
/*定义一个数组存放要查找的单词*/
inti,j;
qingshuruniyaochazhaodexingjindanci:
b);
for(i=0;
count;
{if(fatecmp(b,stu[i].english)==0)
%s\n"
stu[i].english);
}}
5.1.5子函数fatecmp
定义两个字符数组s1,s2,独个比较字符串中的每个字符,直至遇到字符’\0’为止。
当s1[]!
=s2[],则return1;
否则return0。
intfatecmp(char*s1,char*s2)/*定义模糊比较函数*/
s1[i]!
='
\0'
i++)/*当s1[i]!
=0时i++*/
{if(s1[i]!
=s2[i])/*直到i出来*/
return1;
}
return0;
5.1.6删除函数dele
该函数通过strcpy函数,将要删除的单词用它的下一个单词替代,以即利用strcpy函数。
将要删除单词的下一个单词替代到要删除单词的位置。
voiddele()/*定义一个删除函数*/
intj,i;
chark[10];
shuruyaoshanchudeyinwendanci\n"
k);
for(j=k;
j<
=51;
j++)/*将第K个要删的函数附值*/
strcpy(stu[j-1].english,stu[j].english);
/*找到要找的单词,然后用它的下一个单词替代原有的单词,实现查找删除功能*/
strcpy(stu[j-1].cixing,stu[j].cixing);
strcpy(stu[j-1].means,stu[j].means);
51;
i++)/*当i<
51时,把所有的单词都打印出来*/
%s%s%s\n"
stu[i].english,stu[i].cixing,stu[i].means);
5.1.7添加函数add
该函数的原理与dele函数一样,它同样是利用strcpy,将要插入单词的后面的那些单词往后移。
voidadd()/*定义一个增加函数*/
inti,k;
shuruyaocharudeweizhi\n"
k);
for(i=51;
i>
=k;
i--)/*查找要插入的位置,并插入,后面的往后移一位*/
strcpy(stu[i].english,stu[i-1].english);
strcpy(stu[i].cixing,stu[i-1].cixing);
strcpy(stu[i].means,stu[i-1].means);
shuruyinwendanci\n"
stu[k-1].english);
shurudancicixing\n"
stu[k-1].cixing);
shurudancizhongwenyisi\n"
stu[k-1].means);
stu[k-1].english,stu[k-1].cixing,
stu[k-1].means);
youhaveaddthewordintothedictionary!
);
5.1.8模块introduce
一些printf语句,打印作者信息与软件介绍。
voidintroduce()
zhizuozhecailiao\n"
xueyuan:
shuliyuxinxixueyuan\n"
banji:
C08jisuanji1ban\n"
xingming:
wuyingya\n"
xuehao:
081316140\n"
ruanjianjieshao\n"
gairuanjianshiyigeyongyoucihuiliang50gededancichazhaoruanjian,tashixian\n"
degongnengbaohanchazhaodancizhongwenyisi,zengjiadanci,shanchudanci\n"
tuichuxitongdenggongneng,gairuanjianzhuyaoyongdaodeshiswitch,for\n"
while,if,strcmpdengyuju!
5.1.9退出系统
通过库函数#include<
中的exit(0)实现的。
5.2系统测试
信息技术深深融入业务生活,使得软件产品质量的要求变得很高。
这也使我们为提高软件测试的效率来寻求各式各样的方法。
而软件测试的方法和技术是多种多样的。
对于软件测试技术,可以从不同的角度加以分类:
按测试阶段可分为:
单元测试、集成测试、确认测试、系统测试
在每个阶段,按测试的内容可分为:
功能测试、性能测试、边界测试、余量测试、可靠性测试、安全性测试、强度测试、安装测试、恢复性测试、配置测试。
测试任何产品都有两种方法:
如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;
如果知道产品的内部过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。
前一种方法称为黑盒测试,后一种方法成为白盒测试。
5.2.1功能测试
功能测试也称为黑盒测试,用于验证系统的各项功能是否能正常完成。
由于实际情况的多样性,需要由多人重复测试,在不同情况下执行各项功能操作,其输出就是该功能的执行结果。
黑盒测试发现下述类型错误:
(1)功能不正确或遗漏了功能。
(2)界面错误。
(3)数据结构错误或外部数据库访问错误。
(4)性能错误。
(5)初始化和终止错误。
5.2.2测试用例的设计和结果分析
以查询单词为例:
测试用例的设计和结果显示:
1.输入数据:
hand
2.预期输出:
hand,n,shou
运行结果如图所示:
图5-1
结果分析:
运行结果与预期输出结果一致。
其他模块的运行结果和预期输出结果基本都一致
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 英语 字典 软件 设计 实现