您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 200704021117设计一个小学生实用的CAI教学软件
沈阳航空工业学院课程设计学号200704021117班级7402104姓名刘庆东指导教师尹航2008年9月12日沈阳航空工业学院课程设计任务书电子工程学院电子信息工程专业7402104班学号200704021117一、课程设计题目:设计一个小学生实用的CAI教学软件二、课程设计工作自2008年9月8日起至2008年9月12日止三、课程设计内容:运用所学的C语言知识,编制和调试程序,具有如下功能:(1)具有试题库,可以实现随机抽题(2)题库中具有加、减、乘、除四种运算(3)具有自学和测试功能(4)自己再加一项功能四、课程设计要求:程序质量:贯彻结构化程序设计思想。用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。用户界面中的菜单至少应包括“自学”、“测试”、“退出”3项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:封面课程设计任务书目录需求分析(分析题目的要求)程序流程图(总体流程图和主要功能模块流程图)核心技术的实现说明及相应程序段个人总结参考资料源程序及适当的注释指导教师:学生签名:五、成绩:六、教师评语:沈阳航院设计用纸I目录一、需求分析............................................................1二、程序流程图........................................................2三、核心技术的实现说明及相应程序段...............6四、个人总结...........................................................10五、参考文献...........................................................11六、源程序...............................................................11沈阳航院设计用纸1一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为3个模块,其中每一个模块对应一个函数,他们的功能分别是:。在这些函数当中,第一个函数属于附加功能,而后面的两个函数的实现严格按照题目的要求。1、猜数字游戏guess()通过系统提示猜0-99范围内的一个随机数;2、考试函数kaoshi()按照题目的具体要求实现的是连续做10题并给出得分;3、练习函数lianxi()按要求实现做一题并给出答案的目的;除上面介绍的功能之外,主函数中除了必要的目录一栏外还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每道计算题无论是数字还是符号都是随机的,这样做题比较合理。沈阳航院设计用纸2二、程序流程图1、程序总体结构图While(1)输入值n=1?真假输入值n=2?真假输入值n=3?真假N=0?真假退出退出练习lianxi()考试kaoshi()猜数字游戏guess()图1程序总体结构图沈阳航院设计用纸32、具体功能框图(1)猜数字游戏guess()根据系统时间生产随即数X输出“let’shavearest!\n\nyouhaveenoughtimetoguessthenumber(0-99)判断n的值当n!≠x时当n!=x时Youareright判断是否nx?真假输出“therightnumberisbiggerthanyour’s输出“therightnumberissmallerthanyour’sPleaseinputagain图2猜数字游戏函数沈阳航院设计用纸4(2)考试函数kaoshi()For(no=1:no=MAXNO:no++)根据系统随即产生随机数x,y,sSwitch(s)s=0?真假输出”%d+%d=?Youransweris:“s=1?真假输出”%d+%d=?Youransweris:“S=2?真假输出”%d+%d=?Youransweris:“S=3?真假输出%/d%输出%/d%读取guess并输入youransweris:%d\nthenightGuess==answer?真假Rightwrong输出“\Rightanswer=%d,wronganswer=%d”输出”yourscore=%d图3考试函数沈阳航院设计用纸5(3)练习函数lianxi()For(no=1:no=MAXNO:no++)Switch(s)s=0?真假输出”%d+%d=?Youransweris:“s=1?真假输出”%d+%d=?Youransweris:“S=2?真假输出”%d+%d=?Youransweris:“S=3?真假输出%/d%输出%/d%读取guess并输入youransweris:%d\nthenightGuess==answer?真假rightwrong图4练习函数沈阳航院设计用纸6三、核心技术的实现说明及相应程序段本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,考试函数、练习函数是程序中较为核心的部分,下面分别进行说明。1、猜数字游戏首先通过系统时间产生一个随机数,并经过if语句的处理提示操作者比较的结果,直到输入正确时,此函数才运行结束。具体的程序段如下:voidguess(){intn,x;/*n为用户输入值,x为随机变量*/srand((unsigned)time(NULL));x=rand()%100;/*赋给x随机值*/printf(“Let’shavearest!\n\nyouhaveenoughtimetoguessthenumber(0-99)\n”);scanf(“%d”,&n);do/*对n,x进行比较*/{if(nx)printf(“therightnumberisbiggerthanyour’s!\n”);沈阳航院设计用纸7if(nx)printf(“therightnumberissmallerthanyour’s!\n”);printf(“pleaseinputagain:”);scanf(“%d”,&n);}while(n!=x);printf(“youareright!!\n”);}2、考试函数该函数首先产生随机数,并由随机数得到指定的四则运算题目,通过和键盘输入的数字进行比较后输出正确结果,每做对一道自动统计题数并得出得分,总共循环10次函数运行结束。具体的程序段如下:voidkaoshi(){intno,x,y,s,answer,guess,count=0;/*no为考试做题数,answer为正确答案,guess为认为的答案*/srand((unsigned)time(NULL));for(no=1;no=MAXNO;no++){printf(\nQuestionNo%d.:,no);x=rand()%100;y=rand()%100;s=rand()%4;/*s为所用算法*/switch(s)/*匹配相应算法*/{case0:printf(%d+%d=?Youransweris:,x,y);answer=x+y;沈阳航院设计用纸8break;case1:printf(%d-%d=?Youransweris:,x,y);answer=x-y;break;case2:printf(%d*%d=?Youransweris:,x,y);answer=x*y;break;case3:while(y==0||x%y!=0){x=rand()%100;y=rand()%100;}printf(%d/%d=?Youransweris:,x,y);answer=x/y;break;};scanf(%d,&guess);printf(Youransweris:%d\nTherightansweris:%d\n,guess,answer);if(guess==answer){count++;/*计算回答正确的次数*/printf(Right);}else{printf(Wrong);}}printf(\nRightAnswer=%d,WrongAnswer=%d\n,count,MAXNO-count);printf(Yourscore=%d\n\n\n,100*count/MAXNO);沈阳航院设计用纸9}3、练习函数此函数同上先产生随机数,并由随机数得到指定的四则运算题目,通过和键盘输入的数字进行比较后输出正确结果后返回主函数。具体的程序段如下:voidlianxi(){intx,y,s,answer,guess;srand((unsigned)time(NULL));x=rand()%100;y=rand()%100;s=rand()%4;switch(s){case0:printf(%d+%d=?Youransweris:,x,y);answer=x+y;break;case1:printf(%d-%d=?Youransweris:,x,y);answer=x-y;break;case2:printf(%d*%d=?Youransweris:,x,y);answer=x*y;break;case3:while(y==0||x%y!=0){x=rand()%100;沈阳航院设计用纸10y=rand()%100;}printf(%d/%d=?Youransweris:,x,y);answer=x/y;break;}scanf(%d,&guess);printf(“Youransweris:%d\nTherightansweris:%d\n,guess,answer);if(guess==answer){printf(Right\n\n);}else{printf(Wrong\n\n);};}四、个人总结一周的课程设计就这样的结束了,回想起来,其中有过做不出题的苦恼,也有调试程序成功后的喜悦。一开始刚接触题目时,脑子一片空白,后来经过对题目的分析,思路也逐渐清晰起来。继而本次设计中我独立完成了任务,在上机过程中,遇到了很多意想不到的难题,同时也取得了一定的成就感,更多地了解了程序编辑方面的知识,特别是switch函数,for语句,以及模块式设计思想是我沈阳航院设计用纸11这次收益最大的地方,switch可用为制作目录,是对模块化的基础,而且首次画流程图,基本掌握了流程图的画法。这次C语言课程设计虽然结束了,但通过这次学习活动我学习到了很多课本学习不到的东西,在程序设计过程中体验到那严谨,认真与一丝不苟。我相信我以后会更好的将课本上的知识运用到实践中,只有这样才叫真正学会了C语言。五、参考文献1谭浩强.C程序设计.北京:清华大学出版社,20052刘成等.C语言程序设计实验指导与习题集.北京:中国铁道出版社,2006六、源程序#includestdio.h#includestdlib.h#includetime.h/*调用库函数*/#defineMAXNO10/*宏定义*/voidguess(){沈阳航院设计用纸12intn,x;/*n为用户输入值,x为随机变量*/srand((unsigned)time(NULL));x=rand()%100;/*赋给x随机值*/printf(Let'shavearest!\n\nyouhaveenoughtimetoguessthenumber(0-99)\n);scanf(%d,&n);do/*对n,x进行比较*/{if(nx)printf(therightnumberisbiggerthanyour's!\n);if(nx)printf(therightnumberissmallerthanyour's!\n);printf(pleaseinputagain:);scanf(%d,&n);}while(n!=x);p
本文标题:200704021117设计一个小学生实用的CAI教学软件
链接地址:https://www.777doc.com/doc-3078196 .html