1、综合性程序设计汇报设计题目: 背单词系统指导老师: XXX班 级: 学 号: 设 计 者: XXX成 绩: _设计时间: 年 月 日一、 题目描述使用C语言设计一个背单词系统,该系统是帮助学生背诵单词软件,要求用户能够选择背诵词库,并能够编辑自己词库。系统能够给出汉字,让学生输入其英文意思,也可输出英文让学生输入汉字意思。并判定词义是否正确。如不正确给出提醒并要求用户重新输入。如正确给以激励。还应有词语预览功效。基础功效: 词库维护(单词添加、修改、删除) 课程预览(单词展示) 显示汉字用户输入英文背诵方法 显示英文用户输入汉字背诵方法 背诵成绩统计(本程序设计运行一次程序所背诵全部单词,答对
2、一个得10分,打错一个扣5分)二、 功效模块分解及说明1、 树形结构模块图2、 模块功效概述程序概述:设计录入词库结构体,结构体中分别存放英文和汉字,整个程序基础上就是相关结构体操作,其中包含了次序结构、循环结构、选择结构。单词添加:用户自己输入单词和翻译,存入结构体中。单词修改:首先在词库中找到这个单词(假如没有则提醒用户没有该单词),然后用户输入修改后单词及翻译。单词删除:先在词库中找到单词,然后将这个单词以后全部单词顺次前移,实现删除功效。输出词库:输出结构体存放单词。单词测试:用户首先选择测试模式,然后词库中输出现有单词,用户期望结束时输出“jieshu”,而且在这两个函数中计分。显示
3、成绩:输出测试成绩。三、 设计测试说明一、 相关头文件、变量、结构体说明1、头文件#include#include#include2、宏定义#define N 100#define S 203、全局结构体struct words/定义一个words结构体char eS;/存放英语单词char cS;/对应汉语翻译strN;/定义结构体变量4、全局变量int fenshu=0; /全局变量,用于统计分数 int count1=0;/全局变量,用于统计测试单词个数int p=0;/全局变量,用于统计单词个数 二、程序源代码(函数部分和系统使用截图) 1、主函数 int main() int n;
4、char ch,chioch; printf(n); printf(t*n); printf(t* 欢迎使用背单词系统! *n); printf(t* 设计者:郭鑫钢 *n); printf(t* 班级:31342 学号:3134205 *n); printf(t*n); printf(t* 1、单词添加 2、单词删除 *n); printf(t* 3、单词修改 4、单词展示 *n); printf(t* 5、英译汉 6、汉译英 *n); printf(t* 7、成绩查询 8、退出系统 *n);printf(t*n); printf( 请选择您需要操作序号,按回车结束:); while(1)
5、scanf(%d,&n); switch(n) /实施对应函数,实现对应功效 case 1:tianjia();break; case 2:shanchu();break; case 5:fanyi1();break; case 3:xiugai();break; case 4:shuchu();break; case 6:fanyi2();break; case 7:chengji();break; case 8: printf(你确定要退出吗?y/n!n); scanf(%c%c,&ch,&chioch); if(ch=y|ch=Y) exit(0); /退出系统操作 default :p
6、rintf(你输入了错误操作,无法实施!); exit(0); return 0;2、往词库中添加词汇void tianjia() char ch;do printf(录入词库!n); printf(请输入英语单词:n); scanf(%s,strp.e); printf(n请输入对应汉字翻译:n); scanf(%s,strp.c); p+; printf(%s已保留,是否继续录入?y/n!n,strp.e); scanf(%s,&ch);while(ch=y); printf(您一共录入%d个单词n,p);3、删除词库中单词void shanchu() int i=0,j;char s20
7、;printf(输入您想删除单词:);scanf(%s,s);if(p=0) printf(没有任何单词,无法删除!n);return;else for(i=0;ip;i+)if(strcmp(s,stri.e)=0) printf(已经成功删除!n);for(j=i;jp;j+)strj=strj+1;p-;/循环实现单词覆盖else if(i=p)printf(没有找到您要删除单词!n);4、修改词库中单词void xiugai()int i=0;char sS,yS,zS;printf(输入您想修改单词:);scanf(%s,s);if(p=0) printf(没有任何单词,无法删除!n
8、);return;else for(i=0;ip;i+)if(strcmp(s,stri.e)=0)printf(请输入您修改后英文单词:);scanf(%s,y);strcpy(stri.e,y);printf(请输入您修改后汉字翻译:);scanf(%s,z);strcpy(stri.c,z); printf(已经成功修改!n);elseprintf(没有找到您要修改单词!n);5、输出词库中全部单词void shuchu() int i=0;printf(输出词库中全部单词!n);if(p=0) printf(没有任何单词,无法输出!n);return;else for(i=0;ip;i
9、+)printf(英文单词是: %s,stri.e);printf(n对应汉字意思是: %s n,stri.c);printf(词库全部单词输出完成!n);6、显示英文用户输入汉字背诵方法void fanyi1() int i=0;char fS;char overN=jieshu; printf(请输入下面英文单词翻译,期望结束输入时请输入 jieshu n); /次序输出单词,而且能够随时结束 while(ip&strcmp(f,over)!=0)/用户不输入jieshu而且词库中单词没有全部输出时实施循环 printf(%s ,stri.e); scanf(%s,&f); if(strc
10、mp(stri.c,f)=0) printf(正确!n);fenshu+=10; /用于计算分数 else printf(很遗憾,正确翻译为:); printf(%sn,stri.c); fenshu-=5;/用于计算分数 count1+; i+; 7、显示汉字用户输入英文背诵方法void fanyi2() int i=0;char fS;char overN=jieshu; printf(请输入下面英文单词翻译,期望结束输入时请输入 jieshu n); while(ip&strcmp(f,over)!=0) printf(%s,stri.c); scanf(%s,&f); if(strcm
11、p(stri.e,f)=0) printf(正确!n);fenshu+=10; else printf(很遗憾,正确翻译为:); printf(%sn,stri.e); fenshu-=5; count1+; i+; 8、显示测试结果和成绩void chengji()printf(此次测试成绩是:n);printf(总共:%d个n,count1);printf(正确:%d个n,fenshu);printf(最终得分为(答对一个得10分,答错一个扣5分):%d n,fenshu);四、 设计体会在看到我选题后,刚开始有点蒙。然后看到要求说必需用到文件,可是文件还没有学,所以我决定先看看文件那部分
12、内容。大约烦了一遍书以后,我去图书馆找了基础C语言项目实例书籍,里面好多实例全部给了我很大启发。以后我就开始着手写我程序。刚开始我仿照一本书里有相关商品信息管理程序来写。里面包含大量文件操作,使得我有时候看不懂甚至摸不着头脑。迫于时间上要求,我不得不放弃已经写了200多行程序,开始换个思绪来考虑程序。考虑到我自己对结构体还是比较熟悉,所以我想到不使用文件而是直接将单词存放进结构体中。然后整个程序就是对结构体一系列操作。在写删除单词这个函数中,我碰到了困难,刚开始没有想到数据覆盖这么一个措施,用了好多很笨方法不过还没有出效果。最终偶然间在网上看到了相关一片指针覆盖博客,然后我就想到了这种处理措施
13、,果然奏效了!经过这次C语言课程设计,我深深体会到了一门语言深奥,是值得我去好好学习和深入研究。就拿这个程序中多个小小细节,比如:while(ip&strcmp(f,over)!=0)。这个是我在写测试两个函数时候碰到一个小问题。我不知道应该怎么去写这个循环条件,最终我让一位同学看过我程序后,帮我处理了这个问题。即使只是多个简单语句结合,不过真是很巧妙。所以,经过这次课程设计让我发觉了很多不足,包含对循环、结构体应用和字符串处理函数等认识全部存在一定盲区。课程设计我算是基础完成,不过其中还是有问题,我发觉以下:1、 程序中缺乏部分警告语句,比如:“你确定要删除吗?(y/n)”;2、 很多输出方面问题,造成我程序在运行时候不是很好看,比如单词输出时格式不是很好;3、 没有使用清屏函数,使得运行时显得太拥挤;4、 功效还有很多值得提升地方:测试时候只能次序输出单词,没有设置对应随机数; 经过两周努力,我最终还是成功地完成了此次课程设计要求,即使有很多问题,不过我认为这两周我收获很大,学会了很多。这次课程设计帮我提升了很多。我将收益终生!