简易英汉词典C语言.docx

上传人:b****7 文档编号:23334824 上传时间:2023-05-16 格式:DOCX 页数:14 大小:39.58KB
下载 相关 举报
简易英汉词典C语言.docx_第1页
第1页 / 共14页
简易英汉词典C语言.docx_第2页
第2页 / 共14页
简易英汉词典C语言.docx_第3页
第3页 / 共14页
简易英汉词典C语言.docx_第4页
第4页 / 共14页
简易英汉词典C语言.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

简易英汉词典C语言.docx

《简易英汉词典C语言.docx》由会员分享,可在线阅读,更多相关《简易英汉词典C语言.docx(14页珍藏版)》请在冰豆网上搜索。

简易英汉词典C语言.docx

简易英汉词典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;

}

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1