C语言课程设计--背单词系统的程序代码
综合性程序设计报告 设计题目:背单词系统 指导教师: 班 级: 学 号: 设 计 者: 成 绩: 设计时间: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 树形结构图 主菜单 单词预览 英汉互译 单词添加 单词删除 是否进行单次测试 英译汉 汉译英 N 返回主目录 Y 进行测试 退出系统 4 用户操作说明 运行程序后进行选择 选择1.单词预览 是否要运行测试功能?Y\N 输入Y:进行单词测试 输入N:返回主菜单 选择2.英汉互译 1. 英译汉 2. 汉译英 3. 返回上级菜单 选择3.单词添加 选择4.单词删除 选择5.退出系统 5 代码 程序如下: #include #include #include #include #include #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