电子英汉词典课程设计.docx
- 文档编号:4019291
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:19
- 大小:290.31KB
电子英汉词典课程设计.docx
《电子英汉词典课程设计.docx》由会员分享,可在线阅读,更多相关《电子英汉词典课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
电子英汉词典课程设计
课程设计报告
课程名称C语言课程设计
课落款称电子英汉词典
专业机械设计制造及其自动化
班级机设0902
学号************
姓名某某
指导教师田媛黄哲郭芳
2010年07月06日
湖南工程学院
课程设计任务书
课程名称C语言课程设计
课题电子英汉词典
专业班级机设0902
学生姓名某某
学号************
指导教师田媛黄哲郭芳
审批
任务书下达日期2020年06月26日
任务完成日期2020年07月06日
设计内容与设计要求
1.设计内容:
课题三:
电子英汉词典。
具体内容见附件。
2.设计要求:
1)设计正确,方案合理。
2)界面友好,利用方便。
3)程序精炼,结构清楚。
4)上机演示。
3.设计报告要求:
课程设计报告格式如下:
1)正文的格式:
一级题目用3号黑体,二级题目用四号宋体加粗,正文用小四号宋体,行距为22。
2)正文的内容:
课题的要紧功能、课题的功能模块的划分、要紧功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释),课程设计报告需5000字左右(不含附件)。
3)课程设计报告装订顺序:
封面、任务书、目录、正文、评分、程序清单附件。
二、进度安排
星期一
星期二
星期三
星期四
星期五
12:
30-15:
30
15:
30-18:
30
12:
30-15:
30
15:
30-18:
30
交报告
上课时刻另外安排。
附录:
设计课题三:
电子英汉词典
一、问题描述:
该设计实现简单电子英汉词典的功能,具体治理操作包括单词的添加、显示、查找、删除、修改和保留等。
二、功能描述:
一、本设计采纳结构体数组,每一个数据的结构应当包括:
单词的英文拼写,单词的中文释义。
二、系统功能:
a.词条录入:
即添加单词记录。
b.信息显示:
将所有的单词按字母顺序显示。
c.词条修改:
对已经输入的单词信息进行修改。
d.词条删除:
删除某个单词记录。
e.单词查询:
输入单词英文拼写,输出该单词的中文释义。
f.信息保留:
将单词信息保留到文件。
g.退出系统
3、系统利用说明:
执行一个具体的功能以后,程序将从头显示功能菜单。
系统的功能并非限于上述,能够对其进行扩充完善,如在对信息进行修改和删除时,能够考虑系统的平安性,在执行前假设输入正确密码,才可进行操作。
三、测试数据:
要求被选用的词条有30个左右,简单单词为主。
1.封面---------------------------------------------1
2.任务书-------------------------------------------2
2.1设计内容与设计要求---------------------------------3
附录-------------------------------------------------------4
3.目录--------------------------------------------------------------5
4.课题的要紧功能
4.1各函数的要紧功能----------------------------------6
4.2课题功能模块的划分--------------------------------7
4.3要紧功能的实现------------------------------------7
各被挪用功能函数实现-------------------------8
5.程序调试------------------------------------------9
6.总结与体会---------------------------------------10
7.附件(源代码及程序运行截图)----------------------11
8.评分表-------------------------------------------20
(一)、课题的要紧功能
电子英汉词典设计系统能完成一个简单的电子英汉词典的功能,那个系统有七个功能,如:
查找、增加、删除、修改、阅读、保护、终止。
把这七功能编该成七个子函数。
在主函数当中对这七个子数挪用,来实现对整个系统的操作。
本词典采纳一个包括50个数据结构数,每一个数据的结构当包括,英文单词、中文意思。
<一>、各函数的要紧功能
1)程序的模块组成:
主函数:
main()
初始化函数:
init()
输入函数:
scanf()
输出函数:
printf()
删除函数:
memset()
查找函数find()
增加函数add()
删除函数del()
修改函数modify()
阅读函数view()
保护函数store()
终止函数return()
2)各个函数的要紧功能:
输入函数:
随时输入数据。
菜单函数:
显示系统主菜单。
查找函数:
能够随时查找某个单词
增加函数:
能够随时增加想要增加的单词
删除函数:
能够删除某单词信息
修改函数:
能随时修改单词信息
阅读函数:
能够阅读所有单词
(二)、课题功能的模块的划分
(三)、要紧功能的实现
整个系统除主函数外,另外还有12个函数,实现七个功能:
查找功能、增加功能、删除功能、修改功能、阅读功能、保护功能、终止功能。
各个函数的详细设计说明如下:
一、主函数main()
通过getch函数显示菜单,利用switch语句实现各函数的挪用,依照系统提示输入的数字选项来挪用相应的函数。
二、查找函数()
第一利用清屏函数对屏幕清屏,利用输入函数输入要查找的单词,若是找到那么显示出所找的单词,再利用getch()函数显示,按任意键返回主菜单,若是没有找到那么显示出notfound,按任意键返回。
3、增加函数add()
第一清除屏幕,找到一个空位利用输入函数输入要增加的单词,再判定该单词是不是存在,若是存在,那么显示“thewordisalreadystore”,不存在那么输入该单词的意思进行存储,按任意键返回主菜单。
4、删除函数del()
第一输入要删除的单词,若是找到那么利用memset函数对它进行‘\0’覆盖,按任意键返回主菜单,若是没有找到,那么显示notfound。
五、修改函数modify()
第一清屏,输入要修改的单词,若是找到单词,那么显示found,并输入单词新的意思,存储以后再返回主菜单,若是没有找到那么显示notfound,按任意键返回。
六、保留函数store()
利用fscanf函数将结构体数组中的数据保留到指定文件中。
7、阅读函数view()
第一清屏,分页显示,每页显示20个,读出结构体数组中的数据直至终止。
四、调试程序
老实说本程序的代码我是借鉴他人的,尽管我过了二级C,但我没把握自己完全原创,即便借鉴但用的时候不免显现如此那样的错误。
如开始设计出来的菜单不是预想的那样,而是总显现混乱,解决的那个问题的方法是调试。
最后仍是教师帮我找到了问题的所在,在这次的课程设计中,咱们碰到了如下问题:
有的不能加分号的加了分号,该加的又没有加,在TC下的程序有些函数不能在VC下运行,这些问题通过同窗们的分析讨论都一一解决了,而碰到的最大的问题是:
运行结果不正确,后来通过教师的指点,后来自己调试终于运行出结果,通过美化界面修改整理代码终于完工!
如:
clrscr()函数(清屏函数)只能在TC下运行,而源代码中有大量clrscr()函数,在VC下的的清屏函数是system(“cls”)这时就能够够用宏概念来解决:
defineclrscr()system(“cls”)
一个系统的菜单和提示信息超级重要。
若是没有这些用户全然不明白怎么用你设计的那个系统。
在设计的调试进程中也无法顺利的完成调试工作。
有了一个清楚简单的菜单和一些提示信息这后,调试进程完成的超级顺利。
五、总结
技术进展的日新月异,现今运算机应用在生活中能够说是无处不在。
因此,作为二十一世纪的大学生来讲把握运算机开发技术是十分重要的。
回忆起这次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,通过一周的课程设计,尽管甚是辛苦,但我却学到了许多东西,不仅巩固了以前所学过的知识,而且学到了很多在书上所没有学到过的知识,使我自己对C语言又有了从头的熟悉,感觉它十分的重要,但把握它又不是一件容易的事。
只有通过自己不断的试探,不断的上机实践。
才能够比较熟练的把握好,在其中咱们碰到了比较多的困难,因为其中有些知识咱们并无学到过,要自己去查找资料来完成。
在设计进程中碰到问题,能够说是困难重重,因为毕竟是第一次做的,不免会碰到各类各样的问题,同时在设计进程中发觉了自己的不足的地方,对以前的所学过的知识明白得的不够深刻,把握的不够牢固。
通过这次课程设计以后,感觉以前学过的知识要从头温习才能够达到查漏补缺的成效。
刚开始听说咱们要设计英汉电子词典时内心真的是没有一点底,毫无思绪,无从下手,毕竟C语言才刚学一年就要编写如此复杂的应用程序。
但参考了一些资料和与几个有体会的学长们讨论后,编写思路才漫漫清楚,开始了解它的大体方式和操作方式。
在不太熟悉的部份,咱们能够充分利用自己的自学能力,发挥它,和在设计进程中的团队作用,提高自己解决问题的能力。
在设计程序是也增加了自己的实践能力,通过翻阅有关文献取得了些自己原先不了解的知识。
从接触C语言到了解C语言是一个进程,是自身学习的进程更是一段由量变到质变的进程。
俗语说师傅领进门,修行靠个人。
在编写进程中碰到的不解和麻烦都大体上是通过自身的反复琢磨和学长的帮忙而解决的。
通过这段时刻的课程设计,我熟悉到C语言是一门比较难的课程。
需要多花时刻上机练习,这次的程序训练培育了我的实际分析问题的能力,实际编程能力。
随着程序的慢慢完善,自己也在慢慢进步,达到了预期目的。
这次课程设计终于完成了,在设计中碰到了许多的问题,但在教师的指导下,终于迎刃而解,同时,对给过我帮忙的所有同窗和列位指导教师再次感激。
六、程序代码
#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"stdlib.h"
#defineclrscr()system("cls")/*将TC下的清屏函数替换为VC下的清屏函数*/
typedefstruct
{
chara[20];
charb[40];
}XYZ;
XYZxyz[50];
voidinit()/*初始化函数*/
{
inti;
FILE*fp;
for(i=0;i<50;i++)
{
memset(xyz[i].a,'\0',20);/*清空磁道,*/
memset(xyz[i].b,'\0',40);
}
fp=fopen("c:
\\my.txt","w");/*在C盘新建一个TXT文件*/
fp=fopen("c:
\\my.txt","r");/*将新建的TXT文件打开*/
i=0;
while(fscanf(fp,"%s%s\n",xyz[i].a,xyz[i].b)!
=EOF)/*由文件向结构体数组中写数锯*/
i++;
fclose(fp);
}
voidfind()/*单词查询函数*/
{
inti;
chartemp[20];
clrscr();
printf("pleaseinputaword:
");
scanf("%s",temp);
for(i=0;i<50;i++)
if(strcmp(temp,xyz[i].a)==0)/*通过比较字符查询*/
{
printf("\n\n%s:
%s",xyz[i].a,xyz[i].b);
printf("\n\npressanykeytoreturn");
getch();
return;
}
printf("\n\nnotfound");
getch();
return;
}
voidadd()/*词条录入函数*/
{
inti,j;
chartemp[20];
chartemp1[40];
clrscr();
for(i=0;i<50;i++)
{
if(!
(*xyz[i].a))/*找到空位*/
{
printf("\n\npleaseinputtheword:
");
scanf("%s",temp);
for(j=0;j<50;j++)
if(strcmp(temp,xyz[j].a)==0)/*找到相同字符*/
{
printf("\n\nthewordisalreadystore\n\n");
printf("pleaseanykeytoreturn");
getch();
return;
}
printf("\n\npleaseinputthemean:
");
scanf("%s",temp1);
strcpy(xyz[i].a,temp);/*复制*/
strcpy(xyz[i].b,temp1);
return;
}
}
printf("\n\nsorry,thedataisfull");
}
voiddel()/*词条删除函数*/
{
inti;
chartemp[20];
clrscr();
printf("\n\npleaseinputtheword:
");
scanf("%s",temp);
for(i=0;i<50;i++)
if(strcmp(temp,xyz[i].a)==0)/*比较*/
{
memset(xyz[i].a,'\0',20);/*清空该结构体*/
memset(xyz[i].b,'\0',40);
printf("\n\nsuccess,pressanykeytoreturn");
getch();
return;
}
printf("\n\nnotfound");
getch();
return;
}
voidmodify()/*词条修改函数*/
{
inti;
chartemp[20];
chartemp1[40];
clrscr();
printf("\n\npleaseinputtheword:
");
scanf("%s",temp);
for(i=0;i<50;i++)
if(strcmp(temp,xyz[i].a)==0)
{
printf("\n\nfound\n\n");
printf("%s:
%s\n\n",xyz[i].a,xyz[i].b);/*显示原有单词和意思*/
printf("\n\npleaseinputthenewmean:
");
scanf("%s",temp1);
strcpy(xyz[i].b,temp1);/*从temp1复制结构体中*/
printf("\n\nsuccess,pleaseanykeytoreturn");
getch();
return;
}
printf("\n\nnotfound");
getch();
return;
}
voidview()/*信息显示函数*/
{
inti,j;
clrscr();
for(i=0,j=0;i<50;i++)
{
if(*xyz[i].a!
='\0')/*若是不是空位*/
{
j++;
printf("%s:
%s\n",xyz[i].a,xyz[i].b);
if(j==20)/*分页显示,一次显示20页*/
{
j=0;
printf("\npreaseanykeytopagedown");
getch();
clrscr();
}
}
}
printf("\n\nthat'sall");
getch();
}
voidstore()/*信息保留函数*/
{
inti;
FILE*fp;
fp=fopen("c:
\\my.txt","w");/*以读的方式再新建my.txt文档*/
if(fp==NULL)/*没建成显示wrong!
*/
printf("wrong!
");
getchar();
for(i=0;i<50;i++)
fprintf(fp,"%s%s\n",xyz[i].a,xyz[i].b);/*将结构体中的数剧保留到my.txt文档*/
fclose(fp);
printf("\n\nstoresuccess\n\n");
getch();
return;
}
intmain(void)/*主函数*/
{
charkey;
init();
while
(1)
{
clrscr();
printf("\n\n\n电子英汉词典设计----设计者<肖纳>\n\n");
printf("************************************************************************");
printf("*一、单词查询*\n");
printf("*二、词条录入*\n");
printf("*3、词条删除*\n");
printf("*4、词条修改*\n");
printf("*五、信息显示*\n");
printf("*六、信息保留*\n");
printf("*7、退出系统*\n");
printf("************************************************************************");
printf("\n\n\n非本人授权严禁分享!
");
key=getch();
switch(key)
{
case'1':
find();break;
case'2':
add();break;
case'3':
del();break;
case'4':
modify();break;
case'5':
view();break;
case'6':
store();break;
case'7':
return0;
}
}
return0;
}
功能显示:
主菜单
主菜单
单词查询
词条录入
词条录入
词条删除
成功
失败
词条修改
信息显示
信息保留
机械工程学院课程设计评分表
课程名称:
C语言程序设计
项目
评价
设计方案的合理性与创造性
设计与调试结果
设计说明书的质量
答辩陈述与回答问题情况
课程设计周表现情况
综合成绩
教师签名:
日期:
2020.7.10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 英汉词典 课程设计