电子英汉词典的编程C语言报告.doc
《电子英汉词典的编程C语言报告.doc》由会员分享,可在线阅读,更多相关《电子英汉词典的编程C语言报告.doc(33页珍藏版)》请在沃文网上搜索。
1、 课程设计(论文)课 题: 电子英汉词典的编程 学 院:专 业:学生姓名:学 号: 指导老师 : 目录*内容摘要.3*关键词.31、电子英汉词典的编程设计.4( 1 )、编辑任务与要求4(2)、编程过程.4A、方案设计.4总流程图.4B、程序的编写,及功能实现.5B.1 全局变量的定义.5B.2 二维数组的定义.5B.3 词条文本库中数据个数的探测.5B.4 词条录入.5B.5 信息显示.9B.6 词条修改.10B.7 词条删除.13B.8 单词查询.17B.9 信息保存.19C、程序调试过程中出现的问题,以及解决方法.222、总结收获、体会.243、谢辞.244、参考文献.245、源代码25
2、*内容摘要随着日益进步的科学技,那种纸质的英汉词典应经成为过去。现代的电子英汉词典兼容了携带方便,使用便捷,词库及时更新,数据量庞大等优点。本次实验设计利用对二维数组中数据的添加,显示,查找,删除,修改,排序和保存实现了电子英汉词典中添加,显示,查找,删除,修改和保存单词的功能,让我们初步认识了电子英汉词典的工作原理以及设计要求。*关键词:词条录入,信息显示,词条修改,词条删除,单词查询,信息保存。(1)、编程任务与要求:电子英汉词典的设计要求是:实现简单的电子英汉词典的功能,具体管理操作包括:单词的添加,显示,查找,删除,修改和保存。(1) 使用结构体数组实现,每个数组的结构应包括:单词的英
3、文拼写,单词的中文释义。(2) 系统功能a 词条录入:即添加单词记录。b 信息显示:将所有的单词俺字母顺序显示。c词条修改:对已经输入的单词信息进行修改。d 词条删除:删除某个单词记录。e单词查询:输入单词英文拼写,输出该单词的中文释义。f 信息保存:将词条信息保存到文件。g 退出系统。(2)编程过程 A、 方案设计:总流程图:电子英汉词典scanf(%d,&j);j=1j=7j=6j=5j=4j=3j=2退出系统信息保存单词查询词条删除词条修改信息显示词条录入A、B、程序的编写B.1全局变量的定义:在编程中需要用到许多变量,为了不用反复定义变量,我们需要定义全局变量。全局变量的定义如下:in
4、t i=0,j,m,k,N,a,b,c; /定义全局变量char temp20,dsq20,tabl2020; char word1200,word2200;FILE *p; /定义指针变量B.2 二维数组的定义:根据要求,电子英汉词典中应该包含英语单词和中文解释。这应我们就需要定义一个二维数组来存储英文单词和中文释义。定义的二维数组如下:char table200200=apple,苹果,buy,购买,cat,猫,dog,狗,end,结束,fat,肥胖,good,好,hello,你好,job,事业;B.3 词条文本库中数据个数的探测:在文本储存中,如果不对已存在文件的个数进行探测,那么在进行
5、读写操作的时候就会浪费大量内存,以及给往后的各种操作增加难度与运行时间。故,对已存在的数据个数进行探测是很必要的。loop0:N=0;printf(请输入您所需要进行的操作代号:n);p=fopen(danciku.txt,r+);while(!feof(p)fread(&tablei,20,1,p);N+;N=N-1; /输出N为已存在的数据个数 if(N!=0) /如果N不等于0,进行菜单操作printf(/*当前单词库单词个数 N=%d*/n,N/2);scanf(%d,&j);else /如果N=0,则自动保存程序中table200200的数据goto loop6;B.4 词条录入根据
6、要求,我们需要对单词库进行新单词的录入,为了不出现重复录入,我们还需要将准备录入的单词与单词库中的单词进行对比。最后将录入的单词与单词库里的单词进行排序后,再存入文本词库中。流程图:词条录入打开文本,从文本词库中提取词条到tablei中后,关闭文本输入准备录入的词条词库中是否存在是否排序写入文本录入成功是否继续录入是否返回主菜单具体程序如下:loop1:p=fopen(danciku.txt,r+); /打开文本文档,进行读写操作for(i=0;iN;i+)fread (&tablei,20,1,p); /读取文本词库中的单词fclose(p);printf(请输入单词:n); /输入准备录入
7、的单词scanf(%s,tableN);for(i=0;iN;i+=2) if( strcmp(tableN,tablei)=0) /判断词库中是否已存在此单词printf(帅锅,此单词已存在喔!n);break;if(i=N-2 & strcmp(tableN,tablei)!=0) /printf(请输入意思:n);scanf(%s,&tableN+1); / 输入准备录入的中文释义for(i=0;i=N;i+=2) k=i; /排序for(j=i+2;j0) k=j;if(k!=i) strcpy(temp,tablei);memset(tablei,0,20); /清空tablei中的
8、数据strcpy(tablei,tablek);memset(tablek,0,20);strcpy(tablek,temp);memset(temp,0,20);strcpy(dsq,tablei+1);memset(tablei+1,0,20);strcpy(tablei+1,tablek+1);memset(tablek+1,0,20);strcpy(tablek+1,dsq);memset(dsq,0,20);p=fopen(danciku.txt,r+); /打开文本库,将排序好的单词写入文库for(i=0;i=N+1;i+)fwrite(&tablei,20,1,p);fclose
9、(p);printf(帅锅,词条录入成功啦!n); fclose(p); /关闭文本库printf(继续录入,请按 1,退出录入进行其他操作请按 0,退出程序请按 7 !n);scanf(%d,&a);if(a=1)goto loop1; /继续录入if(a=0)goto loop0; /返回主菜单程序调试:B.5信息显示按要求,我们需要对文本词库中的单词进行显示,利用前面的对文本词库的读写操作,就可以轻松的显示文本词库中的单词。信息显示流程图:打开文本,从文本词库中提取词条到tablei中后,关闭文本显示词条及其中文释义是否继续显示是返回主菜单否具体程序如下:else if(j=2)loop
10、2: p=fopen(danciku.txt,r+); /打开文本词库for(i=0;iN;i+)fread (&tablei,20,1,p); /读取文本词库中的单词及其中文释义for(i=0;iN;i+=2) /显示文本词库中的单词及其中文释义printf( %s 中文释义:%s n, tablei,tablei+1);fclose(p);printf(继续显示,请按 1,退出显示进行其他操作请按 0,退出程序请按 7 !n);scanf(%d,&a);if(a=1)goto loop2; /继续显示if(a=0)goto loop0; /返回主菜单程序调试: B.6 词条修改 按要求,我
11、们需要完成对词库中的单词进行修改,以完善词库。要想对文本词库中的单词进行修改,我们需要对词库中的数据进行读取,然后执行修改操作,修改完成后再将所有单词从新排序后写入文本词库。词条修改流程图:打开文本,从文本词库中提取词条到tablei中是否存在准备修改的单词否是修改该词条以及中文释义是否继续修改是返回主菜单否具体程序如下:else if(j=3)loop3: p=fopen(danciku.txt,r+); /打开文本词库for(i=0;iN;i+)fread (&tablei,20,1,p); /读取文本词库中的所有单词fclose(p);printf(请输入单词:); /输入需要修改的单词
12、scanf(%s,word1);for(i=0;iN;i+=2) /查找词库中是否存在次单词if(strcmp(tablei,word1)=0) /词库中存在次单词,进行下面修改操作c=i;printf(单词库中: %s 中文释义: %sn,tablei,tablei+1); /输出词库中需要修改的单词printf(确认修改请输入 1 ,退出修改请输入 0 !n);scanf(%d,&b);if(b=1) printf(请输入修改后的英语单词:); scanf(%s,word1); printf(请输入需要修改的单词释义:); scanf(%s,word2);memset(tablec,0,2
13、0); /清空tablec中的数据strcpy(tablec,word1);memset(tablec+1,0,20);strcpy(tablec+1,word2);for(i=0;i=N;i+=2) /对所有单词进行排序 k=i;for(j=i+2;j0) k=j;if(k!=i) strcpy(temp,tablei);memset(tablei,0,20);strcpy(tablei,tablek);memset(tablek,0,20);strcpy(tablek,temp);memset(temp,0,20);strcpy(dsq,tablei+1);memset(tablei+1,
14、0,20);strcpy(tablei+1,tablek+1);memset(tablek+1,0,20);strcpy(tablek+1,dsq);memset(dsq,0,20);p=fopen(danciku.txt,r+);for(i=0;iN;i+) fwrite(&tablei,20,1,p); /将排好序后的单词写入文本词库fclose(p);printf(靓女,词条修改成功了哦!n);break;if(b=0)goto loop0;if(i=N-2)printf(帅锅,字典中木有此单词啊!n);printf(继续修改,请按 1,退出修改进行其他操作请按 0,退出程序请按 7 !
15、n);scanf(%d,&a);if(a=1)goto loop3; /继续对文本词库中的单词进行修改if(a=0)goto loop0;程序调试:B.7词条删除 按要求,我们需要对文本词库中的单词进行删除操作,其删除原理为:先清空需要删除词条所在的数组1,然后将其后一个数组2中的数据复制给数组1,在清空数组2,将数组3的数据复制给数据2.循环操作,最后在执行保存即可。词条删除流程图:打开文本,从文本词库中提取词条到tablei中输入准备删除的单词词库中是否存在此单词否是是否删除此单词否是删除成功是否继续删除是否返回主菜单具体程序段如下:else if(j=4)loop4:printf(现已存
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 英汉词典 编程 语言 报告