综合性程序设计报告设计题目:背单词系统指导教师:班级:学号:设计者:成绩:设计时间:2010年5月27日目录1 题目描述 (3)2 变量、函数和结构体说明 (4)3 树形结构图 (5)4 用户操作说明 (6)5 代码 (8)6设计体会 (12)1 题目描述该系统是帮助学生背诵单词的软件,有词语预览功能;用户可以编辑自己的词库,即可增加或删除单词;系统可以进行测试,即给出中文,让学生输入其英文,每十个单词一组,测试结束能够显示成绩,即单词的正确个数;能够输入中文或英文进行单词的查询。
基本功能:词库的增加或删除;单词预览;显示中文用户输入英文进行测试;用户输入中文或英文进行单词的查询。
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 eword[20]; 单词char cixing[10]; 词性char chinese[50]; 意思}struct words bank[SIZE] 定义数组结构体,存储单词3 树形结构图4 用户操作说明运行程序后进行选择选择1.单词预览是否要运行测试功能?Y\N输入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 eword[20];char cixing[10];char chinese[50];}; //单词结构体定义int x;struct words bank[SIZE]={{"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 word[30];for(i=0;i<10;i++){ a=intest();printf("%s\n请输入对应的单词:",bank[a].chinese);scanf("%s",word);if(strcmp(bank[a].eword,word)==0)j++;}test2(j);}void foresee() //单词预览及进行测试{int a;char ch;puts("单词词性意思");for(a=0;a<SIZE;a++)printf("%-16s %-8s %-20s\n",bank[a].eword,bank[a].cixing,bank[a].chinese);printf("是否要运行测试功能?N/Y\n");fflush(stdin);ch=getchar();if(ch=='y'||ch=='Y'){system("cls");testchinese();}}void EtoC() //输入单词,查询意思{char word[20];int i=0;puts("请输入您要查询的单词:");scanf("%s",word);while(strcmp(bank[i].eword,word)!=0&&i<SIZE)i++;if(i<SIZE)printf("\n该单词的中文意思为:%s",bank[i].chinese);else puts("抱歉,没有查到您要找的单词。