简易英汉词典C语言.docx
- 文档编号:8332372
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:12
- 大小:39.52KB
简易英汉词典C语言.docx
《简易英汉词典C语言.docx》由会员分享,可在线阅读,更多相关《简易英汉词典C语言.docx(12页珍藏版)》请在冰豆网上搜索。
简易英汉词典C语言
轻工业学院
课程设计报告
课程名称《C语言程序设计》
课题名称电子英汉词典设计
院系计算机与通信工程
班级嵌入式10-01
学号
姓名
指导教师
2012年7月4日
轻工业学院
课程设计任务书
课程名称《C语言程序设计》
课题电子英汉词典设计
专业班级嵌入式10-01
学生
学号
指导老师
审批
一、设计容与设计要求
1.设计容:
英汉词典作为一个常用的学习工具,是我们经常要使用的。
该系统能完成一个简单的电子英汉词典的功能,如:
单词的查找、增词、删除、修改和维护等工作。
2.设计要求:
1)在计算机中建立有限规模的电子英汉词典(文件),本词典采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
英文单词、词性、拼读音标、中文(汉语拼音)。
2)对单词和释义字符串长度的限定分别为不少于20个词条。
3)本系统显示这样的菜单:
电子英汉词典
(1)输入新词汇
(2)删除词汇
(3)查找词汇
(4)修改词汇信息
(5)退出系统
4)采用菜单工作方式。
在一个操作执行之后,程序询问是否继续执行该操作。
如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。
仅当选择退出系统时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。
5)要求菜单美观大方简洁实用。
二、进度安排
12.29:
课题讲解,查阅资料
12.30:
总体设计,详细设计
12.31:
编程,上机调试、修改程序
1.3-1.4:
上机调试、完善程序
1.5:
答辩
1.6-1.7:
撰写课程设计报告
附:
课程设计报告书写规、书写格式及装订顺序
1、需求分析
(1)程序的功能。
(2)输入输出的要求。
2、总体设计
(1)程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能。
(2)课题涉及的数据;即要存储什么数据,这些数据是什么样的类型,它们之间有什么关系等。
3、详细设计
画出各模块的程序流程图。
4、调试分析以及设计体会
(1)测试数据:
准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。
(2)程序调试中遇到的问题以及解决问题的方法。
(3)课程设计过程经验教训、心得体会。
5、使用说明
用户使用手册:
说明如何使用你编写的程序,详细列出每一步的操作步骤。
6、参考书目(格式如下)
[1]明敏.图形图形图象文件格式解码使用程序.中国图象图形学报[J],1998,(5)
[2]谭浩强.C语言程序设计(第二版).清华大学[M],199912
(1):
298-327
…
7、附录
源程序清单
8、书写格式及装订顺序
(1)课程设计报告要求用A4纸打印成册:
(2)小标题为:
黑体小4号(加粗):
正文为:
宋体5号。
行间距为固定值22。
(3)封面按学校统一规定。
⑷装订顺序:
封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
实验:
电子英汉词典
一、需求分析
(1)程序的功能英汉词典作为一个常用的学习工具,是我们经常要使用的。
该系统能完成一个简单的电子英汉词典的功能,如:
单词的查找、增词、删除、修改和维护等工作。
在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。
词典的容为:
每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。
对单词和释义字符串长度的限定分别为不少于10个与15个字符,词条数限定为不多于1000条。
(2)输入输出的要求。
采用菜单工作方式。
在一个操作执行之后,程序询问是否继续执行该操作。
如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。
仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。
要求整个设计以人为本,用户界面友好。
二、总体设计
1、程序共有五个子函数和一个主函数。
1.search是查找函数,用户通过系统提示输入要查找的单词,只要单词库中含有此单词便能找到相应的中文解释。
这个查找函数使用的是从头到尾的线性查找发,虽然查找效率在数据很大上午时候无法容忍的。
但是因为这里涉及的数据量很小,使用线性查找对系统性能没有很大上午损害。
2.add是增加函数,用户可通过此函数来增加单词库单词的数量。
3.modify是修改函数,程序提示用户输入要修改的单词,还是用线性查找的方法查找相应的纪录,如果找到,则提示输入新单词及中文解释。
4.delete是删除函数,程序提示用户输入要删除的单词,使用线性查找的方法找到相应的纪录,如果找到,提示用户确认删除才做。
在得到确认后,删除这个单词的纪录。
5.主程序通过无限循环来接收输入的命令,并且根据命令调用相应的函数处理。
2、课题中涉及到的数字主要是英文单词,和数据1-4,它们都属于字符型数据,它们的结果还应该是字符型。
三:
详细设计
四、调试分析与设计体会:
1、输入1就是添加新的单词,输入2是删除已有的单词,输入3是查找要找的单词,它包括两种方法,1:
是输入英语找单词,2:
是输入汉语找单词,输入4是退出程序。
2、感老师让我有机会再次学习C语言.我们这次设计的课题是电子英汉词典的设计,我们分工为两个人负责一个模块.通过这次的程序设计,知道了自己以前在学习C语言方面的不足,光是书本上的知识是不够的,自己编写出程序也是学习过程中相当重要的一环,以前学习过程中出现的问题在这次课题设计中全都暴露出来.例如:
对知识的掌握不牢,程序的理解不透彻等等.所以,我不得不再翻开课本以巩固以前学过的知识,这让我有效的弥补了知识的漏洞.
一开始我就对C语言很感兴趣。
我觉得每每听完一堂课,我都有一种说不出的高兴,有时也会发愁,因为课程越往后越难学而且讲课进度再加快,但我没有退缩,每天坚持看C语言。
就这样一步步走到课程设计。
虽然在这个实习周里的语言设计遇到了很多困难,但我并没有退缩,找同学老师帮着改正错误,终于完成了,使自己尝到了成功的甜头。
希望学校继续给我们这样的学习机会。
五、参考文献:
《C语言程序设计》主编清明人民邮电2005年12月
《C语言程序设计实验指导与习题解答》主编清明人民邮电2005年2月
六、附录:
原程序设计清单:
#include
#include
main()
{staticintn=32;
charm;
struct
{
chareng[10];
charci[15];
charyin[10];
charchi[30];
}word[1000]={{"good","a","goud","hao"},
{"aide","n","eid","zhushou"},
{"bone","n","boun","gutou"},
{"ball","n","bo:
","qiu"},
{"cat","n","cat","mao"},
{"cattle","n","katl","niu"},
{"clean","adj+d+v","kli:
n","1.ganjin2.gongzheng"},
{"a","num","ei","yige"},
{"finally","ad","fai'nens","zuizhong"},
{"fine","adj+ad+v+n","fain","1.shushi2.hao"},
{"finish","v+n","finish","wancheng"},
{"girl","n","ge:
l","nvhai"},
{"five","v","giv","gei"},
{"go","n+v","gou","zou"},
{"help","int+n","help","bangzhu"},
{"he","pron","hi:
","ta"},
{"here","ad+ini","hie","zheli"},
{"high","aadj+ad+n","hai","gao"},
{"ice","n","ais","bing"},
{"idea","n","ai'die","zhuyi"},
{"imagine","v","i'madgin","xiangxiang"},
{"in","v","in:
","zailimian"},
{"kill","v","kil","shasi"},
{"king","n","king","guowang"},
{"kiss","v+n","kis","wen"},
{"knight","n+v","nait","qishi"},
{"late","adj+ad","leit","1.chide2.yihoude"},
{"left","adj+ad+n","left","zuobian"},
{"line","n+v","lain","xian"},
{"name","n+v","neim","mingzi"},
{"mission","v","mision","rengwu"}};
clrscr();
loop:
for(;;)
{clrscr();
printf("\n\t****Pleasemakeachoise****\n");
printf("\n\n\t1.Addthenewword\n");
printf("\t2.Delword\n");
printf("\t3.findword\n");
printf("\t4.Exittheprocess\n\n");
printf("Pleasechoose1~4toenter\n");
printf("Pleasepressthekey:
");
scanf("%c",&m);
switch(m)
{
case'1':
{
charj[10],k[15],l[10],p[30];
++n;
printf("\nAddnewword");
printf("\n\npleaseentertheDanci:
");
scanf("%s",j);
printf("\nEntertheCixing:
");
scanf("%s",k);
printf("\nEntertheYingbiao:
");
scanf("%s",l);
printf("\nEntertheChinese:
");
scanf("%s",p);
strcpy(word[n].eng,j);
strcpy(word[n].ci,k);
strcpy(word[n].yin,l);
strcpy(word[n].chi,p);
printf("\nPleasecheckit:
");
printf("\n\nEnglish.%s",word[n].eng);
printf("\n\nCixing:
%s",word[n].ci);
printf("\n\nYinbiao:
%s",word[n].yin);
printf("\n\nChinese:
%s\n\n",word[n].chi);
printf("\nPleasepressanykeywithEnterkeyback!
");
scanf("%s",m);
}gotoloop;
case'2':
{
charr[10];
ints,t,u,z=0,x=0;
printf("PleasepresstheEnglishyouwanttodel:
");
scanf("%s",r);
for(s=0;s<=n;s++)
{
if(s<=n-1)
{
if(strcmp(word[s].eng,r)==0)
{
x=1;
for(t=s;t { strcpy(word[t].eng,word[t+1].eng); strcpy(word[t].ci,word[t+1].ci); strcpy(word[t].yin,word[t+1].yin); strcpy(word[t].chi,word[t+1].chi); } } } else {if(strcmp(word[n].eng,r)==0) z=1; else z=0; } } if(z==1||x==1) { printf("\n\nDelsucessful! ! \n"); n--; printf("\nPleasepressanykeywithEnterkeyback! "); scanf("%s",m); } else { printf("\n\nDelfailed! ! "); printf("\nPleasepressanykeywithEnterkeyback! "); scanf("%s",m); } } break; case'3': { intl;clrscr(); printf("\n\nSearchtheword\n"); printf("1.SearchbyEnglish: \n"); printf("2.SearchbyChinese: \n"); printf("Otherkeyback\n"); printf("Pleasechooseone: "); scanf("%d",&l); switch(l) {case1: {charr[10],m[1];ints; printf("\nPleaseentertheEnglishword: "); scanf("%s",r); for(s=0;s<=n;s++) { if(s<=n-1) if(strcmp(word[s].eng,r)==0) break; else continue; else if(strcmp(word[n].eng,r)==0) break; else { charm[1]; printf("\nNothisword! ! \nPleasepressanykeywithEnterkeyback! "); scanf("%s",m); gotoloop; } } printf("\n\nEnglish.%s",word[s].eng); printf("\n\nCixing: %s",word[s].ci); printf("\n\nYinbiao: %s",word[s].yin); printf("\n\nChinese: %s",word[s].chi); printf("\n\n\nPleasepressanykeywithEnterkeyback! "); scanf("%s",m); }gotoloop; case2: {charr[10],m[1];ints; printf("\nPleaseentertheChinese: "); scanf("%s",r); for(s=0;s<=n;s++) {if(s<=n-1) if(strcmp(word[s].chi,r)==0) break; else continue; else if(strcmp(word[n].chi,r)==0) break; else { charm[1]; printf("\nNothisword! ! \nPleasepressanykeywithEnterkeyback! "); scanf("%s",m); gotoloop; } } printf("\nEnglish.%s",word[s].eng); printf("\n\nCixing: %s",word[s].ci); printf("\n\nYinbiao: %s",word[s].yin); printf("\n\nChinese: %s",word[s].chi); printf("\n\n\nPleasepressanykeywithEnterkeyback! "); scanf("%s",m); default: gotoloop;break;} } } case'4': exit(0); default: break; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 英汉词典 语言