C语言课程设计--背单词系统的程序代码(7页).doc
-C语言课程设计-背单词系统的程序代码-第 7 页综合性程序设计报告设计题目:背单词系统指导教师:班 级:学 号:设 计 者:成 绩:设计时间:2010年5月27日目录1 题目描述32 变量、函数和结构体说明43 树形结构图54 用户操作说明65 代码86设计体会121 题目描述该系统是帮助学生背诵单词的软件,有词语预览功能;用户可以编辑自己的词库,即可增加或删除单词;系统可以进行测试,即给出中文,让学生输入其英文,每十个单词一组,测试结束能够显示成绩,即单词的正确个数;能够输入中文或英文进行单词的查询。基本功能:词库的增加或删除; 单词预览; 显示中文用户输入英文进行测试;用户输入中文或英文进行单词的查询。2变量、函数和结构体说明(1)关键变量说明 int x 结构体数组中元素的数目 int n 测试时单词的正确个数 int a 进行菜单选择 int m 进行菜单选择(2)函数定义说明void foresee(); 单词预览及进行测试int intest(); 产生随机单词以进行测试void test2(int n); 测试单词的成绩void testchinese(); 测试单词void translation(); 单词查询void EtoC(); 输入单词,查询意思void CtoE(); 输入中文,查询单词void word_add(); 单词添加void word_delete(); 单词删除(3)结构体说明 struct words 单词结构体定义 char eword20; 单词 char cixing10; 词性char chinese50; 意思struct words bankSIZE 定义数组结构体,存储单词3 树形结构图主菜单单词预览英汉互译单词添加单词删除是否进行单次测试英译汉汉译英N 返回主目录Y 进行测试退出系统4 用户操作说明运行程序后进行选择选择1单词预览 是否要运行测试功能?YN 输入Y:进行单词测试 输入N:返回主菜单选择2英汉互译1 英译汉2 汉译英3 返回上级菜单选择3单词添加选择4单词删除选择5退出系统5 代码程序如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<time.h>#define SIZE 50 /定义词库单词数量void foresee(); /单词预览及进行测试int intest(); /产生随机单词以进行测试void test2(int n); /测试单词的成绩void testchinese(); /测试单词void translation(); /单词查询void EtoC(); /输入单词,查询意思void CtoE(); /输入中文,查询单词void word_add(); /单词添加void word_delete(); /单词删除struct words char eword20; char cixing10;char chinese50; /单词结构体定义int x;struct words bankSIZE="aspect","n.","方面,朝向,样子","according","ad.","依照","accustomde","a.","惯常的,习惯的","basis","n.","基础,根据,原则","confidence","n.","信心,信任","dismiss","vt.","不再考虑,解散","economy","n.","经济,节约,节省","fatal","a.","致命的,命运的","global","a.","全球的,总的","helpful","a.","给予帮助的,有用的","impose","vt.","把加强,征","largely","ad.","大部分,大量的","mystery","n.","神秘,神秘的人或事","nuclear","a.","核子的,核能的","obtain","v.","获得,通用","occasion","n.","场合,时刻","particularly","ad.","尤其,特别","patient","a.","忍耐的,有耐心的","railway","n.","铁路","reaction","n.","反应,反作用","remote","a.","遥远的,偏僻的","selection","n.","选择,挑选","setting","n.","环境,背景","shrink","v.","起皱,收缩","translation","n.","翻译,译文","troublesome","a.","令人烦恼的,麻烦的","undergo","vt.","经历,经受","unlike","prep.","不像","volunteer","n.","志愿者","virtue","n.","善,美德","wideapread","a.","分布广泛的,普通的","withdraw","v.","收回,撤回","absence","n.","缺席,不在","abstract","a.","抽象的,抽象派的","bacteria","n.","细菌","biology","n.","生物学,生态学","characterize","vt.","成为的特征","debate","n.,vi.","争论,辩论","display","vt.","陈列,展览" /词库void test2(int n) /测试单词的成绩switch(n)case 0:case 1:case 2:case 3:printf("正确个数:%d n还需努力!",n);getch();break;case 4:case 5:case 6:printf("正确个数:%d n还不错哈!",n);getch();break;case 7:case 8:case 9:case 10:printf("正确个数:%d nGreat!好样的!",n);getch();break;default:printf("系统故障!");getch();int intest() /产生随机单词以进行测试 srand( (unsigned)time( NULL ) ); return (rand() %39+1);void testchinese() /测试单词int i,j=0,a;char word30;for(i=0;i<10;i+) a=intest();printf("%sn请输入对应的单词:",banka.chinese);scanf("%s",word);if(strcmp(banka.eword,word)=0)j+;test2(j);void foresee() /单词预览及进行测试int a;char ch;puts("单词 词性 意思");for(a=0;a<SIZE;a+)printf("%-16s %-8s %-20sn",banka.eword,banka.cixing,banka.chinese);printf("是否要运行测试功能?N/Yn");fflush(stdin);ch=getchar();if(ch='y'|ch='Y')system("cls");testchinese();void EtoC() /输入单词,查询意思char word20;int i=0;puts("请输入您要查询的单词:");scanf("%s",word);while(strcmp(banki.eword,word)!=0&&i<SIZE)i+;if(i<SIZE)printf("n该单词的中文意思为:%s",banki.chinese);else puts("抱歉,没有查到您要找的单词。");void CtoE() /输入中文,查询单词char chinese20;int i=0;puts("请输入您要查询的中文:");scanf("%s",chinese);while(strcmp(banki.chinese,chinese)!=0&&i<SIZE)i+;if(i<SIZE)printf("n该单词的英文为:%s",banki.eword);else puts("抱歉,没有查到您要找的单词。");void translation() /进行单词查询int a;while(a!=3)puts("请选择:");puts("1.英译汉");puts("2.汉译英");puts("3.返回上级菜单");scanf("%d",&a);switch(a)case 1:EtoC();break;case 2:CtoE();break;case 3:break;void word_add() /单词添加char ch;doputs("请输入您要添加的单词:");scanf("%s",bankx.eword);puts("请输入该词的词性:");scanf("%s",bankx.cixing);puts("请输入该词的中文意思:");scanf("%s",bankx.chinese);puts("您是否还要继续?Y/N");fflush(stdin);ch=getchar();x+;while(ch='Y'|ch='y');getch();void word_delete() /单词删除char word20;int i=0;printf("请输入您要删除的单词:");scanf("%s",word);while(strcmp(banki.eword,word)!=0&&i<SIZE)i+;if(i<SIZE)for(;i<SIZE;i+)banki=banki+1;puts("删除成功!");else puts("没有找到对应的单词!");int main() /主函数int m;puts("欢迎使用背单词系统");while(m!=5)puts("请选择您需要的服务:");puts("1.单词预览");puts("2.英汉互译");puts("3.单词添加");puts("4.单词删除");puts("5.退出系统");scanf("%d",&m);switch(m)case 1:foresee();break;case 2:translation();break;case 3:word_add();break;case 4:word_delete();break;case 5:return 0;default:puts("您的输入有误!");6 设计体会经过两周的课程设计,我学到了很多东西,巩固和加深了对变量、函数以及数据结构等内容的理解,让我对c语言有了更深的认识;提高综合运用本课程所学知识的能力增;增强了我独立思考、深入研究、分析问题、解决问题的能力;同时通过课程设计,也增强了我严肃认真的学习态度。由于学习c语言的时间相对来说短了一些,并且课程结束的比较仓促,所以,在课程设计的过程中,一开始感觉一头雾水,遇到了很多问题,许多课本的知识不能够灵活的掌握,所以进行了反复的实验,把自己所遇到的问题和疑惑向同学请教,或者上网查询资料,才将程序一点一点的补充完整。通过此次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它,不仅要有扎实的理论基础,还要进行大量的实验,要通过不断的上机操作才能更好地学习它,更让我发现自己的好多不足之处,对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解。通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。虽然此次课程设计提高了我的编程的能力,但是还是有不足之处,请老师指正。