小学CAI教学辅助系统_第1页
小学CAI教学辅助系统_第2页
小学CAI教学辅助系统_第3页
小学CAI教学辅助系统_第4页
小学CAI教学辅助系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈阳航空工业学院课程设计学号200604021170班级6402105姓名杨云龙指导教师 李飞2007年09月 15日沈阳航空工业学院课程设计任务书电子工程 系 电子信息工程 专业6402105班 学号200604021170一、课程设计题目:小学c a i教学辅助系统二、课程设计工作自2007年09月11日起至2007年09月16日止三、课程设计内容:用c语言编写软件完成以下任务:(1) 具有试题库,可以实现随机抽题(2) 题库中具有加、减、乘、除四种运算(3) 具有自学和测试功能(4) 自己再加一项功能四、课程设计要求:程序质量: 贯彻结构化程序设计思想。 用户界面友好,功能明确,操作方便

2、;可以加以其它功能或修饰。 用户界面中的菜单至少应包括“运算选项”、“退出” 2项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计结束后上交课程设计说明书,课程设计说明书的内容及格式参见所给的模 板。指导教师: 学生签名:五、说明书成绩六、教师评语目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段4四、个人总结9五、参考文献10六、源程序10一、需求分析经过对程序设计题冃的分析可知,整个程序的设计 实现大致分为3个模块,其中每一个模块对应一个函数, 他们的功能分别是:。在这些函数当中,第一个函数属于 附加功能,而后面的两个函数的实现严格按照题目的要 求。1、

3、 猜数字游戏guess ()通过系统提示猜0-99范 围内的一个随机数;2、考试函数kaoshi ()按照题目的具体要求实现的是连续做10题并给出得分;3、练习函数lianxi ()按要求实现做一题并给出答案的目的;除上面介绍的功能之外,主函数中除了必要的目录 一栏外还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每道计算题无论是数字还是符号都是随机的,这样做题比较合理。二、程序流程图1、程序总体结构图图1程序总体结构图2、具体功能框图 (1)猜数字游戏guess ()根据系统时间产生bt机数瓦tb *let * s have a rest ! nnyou

4、 have enough t i>e to guess the nu>ber(0-99)w输出 44 the right number is bigger than your1 s !"输出 44the right number is smaller than your* s !"出 please input again :w 并再次读取n当n!二x时输出 44you are right !图2猜数字游戏函数(2)考试函数kaoshi ()图3考试函数(3)练习函数lianxio三、核心技术的实现说明及相应程序段本程序主要由三个自定义函数和一个主函数组成,其中主

5、函数以菜单的形式调用其他函数来实现要求的所 有功能。在这些函数当中,考试函数、练习函数是程序中较为核心的部分,下面分别进行说明。1、猜数字游戏 首先通过系统时间产生一个随机数,并经过if语句的处 理提示操作者比较的结果,直到输入正确时,此函数才运 行结束。具体的程序段如下:void guess()/*n为用户/*赋给x随int n,x;输入值,x为随机变量*/srand( (unsigned)time(null); x=rand()%100;机值*/printf(ulefs have a rest !nnyou have enough time to guess the nuinber(099

6、)n”);scanf(“ d”,&n);do/*对 n, x 进行比较*/if(n<x)printf(uthe right number is bigger than yours !n”); if(n>x)printf(uthe right number is smaller than your,s !n”);printf(uplease input again :”); scanf(“ d”,&n);while(n!=x);沈阳航院设计用纸printf(uyou are right !n”);2、考试函数该函数首先产生随机数,并由随机数得到指定的四则运算题目,通过

7、和键盘输入的数字进行比较后输出正确结果,每做对一道自动统计题数并得岀得分,总共循环10 次函数运行结束。具体的程序段如下:void kaoshi()intno,x,y,s,answer,guess,count=0;ano为考试做题数,answer为正确答案,guess为认为的答案*/srand( (unsigned)time(null); for(no=l;no<=maxno;no+) printf( * question no %d. :*no);x= rand()%100;y= rand()%100;s= rand()%4;/*s 为所用算法*/switch(s)/* 匹配相应算法*

8、/case 0:printf(h%d+%d=? your answer is :h,x,y); answer=x+y;break;case 1:printf(tf%d-%d=? your answer is :fx,y);answer =x-y; break;case 2:printf(n%d*%d=? your answer is :n,x,y);answer=x*y;break;case 3:while(y=0|x%y!=0)x= rand()%100;y= rand()%100;printf(n%d/%d=? your answer is :",x,y);answer=x/y;

9、break;;scanf(n %dn,&guess);printf(nyour answer is :%d nthe right answer is :%dnu,guess,answer);if(guess=answer)count+;/*计算回答正确的次数*/printf(u right0);elseprintf(n wrong1*);printf(nnright answer =%d, wrong answer=%dnn,count, maxno-count);printf(nyour score = %dnnnm, loocount/maxno);3、练习函数此函数同上先产生随机

10、数,并由随机数得到指定的四则运算题冃,通过和键盘输入的数字进行比较后输岀正确结果后返回主函数。具体的程序段如下:void lianxi()int x,y,sanswer,guess;srand( (unsigned)time(null);x=rand()%100; y= rand()%100;s= rand()%4;svvitch(s)case 0:printf(n%d+%d=? answer=x+y;break;case 1: printf(u%d-%d=? answer=x y;break;case 2:printf(h%d*%d=? answer=x*y;break;case 3:whi

11、le(y=0|x%y!=0) x= rand()%100;y= rand()%100; printf(n%d/%d=? answer=x/y;break;your answer is :h,x,y);your answer is :n,x,y);your answer is :n,x,y);your answer is :h,x,y);scanf(m %dn,&guess);printfcyour answer is :%d nthe right answer is :%d n h,guess,answer);if(guess=ansvver)printf(n rightnnu);el

12、seprintf(n wrongnnu);;!1!个人总结在刚开始时,刚接到这道题,大脑一片空白,不知 如何下手。后来经过对题目的分析,思路也逐渐清晰起 来。继而本次设计中我独立完成了任务,在上机过程中, 遇到了很多意想不到的难题,同时也取得了一定的成就 感,更多地了解了程序编辑方面的知识,特别是switch 函数,for语句,以及模块式设计思想是我这次收益最 大的地方,switch可用为制作目录,是对模块化的基础, 而且首次画流程图,基本掌握了流程图的画法这次c语言课程设计虽然结束了,但通过这次学习 活动我学习到了很多东西,在程序设计过程中体验到那严谨,认真与一丝不苟。我相信在这次课程设计中

13、我所 学到的东西会为我在以后学习计算机的道路中打下坚实 的基础。五、参考文献1谭浩强.c程序设计.北京:清华大学出版社,20052刘成等.c语言程序设计实验指导与习题集.北京: 中国铁道出版社,2006六、源程序#include<stdioeh>/*调/*宏/*n为用户/*赋给x随#include<stdlib.h>#include<time.h>用库函数*/#define maxno 10定义*/void guess()int n,x;输入值,x为随机变量*/srand( (unsigned)time(null); x=rand()%100;机值*/pri

14、ntf(ulefs have a rest !nnyou have enough time to guess the number(0-99)n);scanf(“d”,&n);do/*对 n, x 进行比较*/if(n<x)printf(uthe right number is bigger than yourjs !n”); if(n>x)printf(uthe right number is smaller than your,s !n”);printf(uplease input again :”);scanf(“ d',&n);while(n!=x)

15、;printf(uyou are right !n”);/*no 为void kaoshi()int no,x,y,s,answer,guess,count=0;考试做题数,answer为正确答案,guess为认为的答案*/srand( (unsigned)time(null); for(no=l;no<=maxno;no+)printf(unquestion no %d. :*no);x= rand()%100;y= rand()%100;s= rand()%4;/*s 为所用算法*/svvitch(s)/* 匹配相应算法*/case 0:printf(n%d+%d=? your an

16、swer is :",x,y); answer=x+y;break;case 1: printf(n%d-%d=? your answer is :n,x,y);answer =x-y; break;case 2:printf(n%d*%d=? your answer is :n,x,y);answer=x*y;break;case 3:while(y=0|x%y!=0)x= rand()%100;y= rand()%100;printf(n%d/%d=? your answer is :n,x,y);answer=x/y;break;;scanf(h % d * & gue

17、ss);printf(nyour answer is :%d nthe right answer is :%d n n,guess,answer);if(guess=answer)count+;/*计算回答正确的次数*/printf(u right*);elseprintf(n wrong0);printf(tfnright answer =%d, wrong answer=%dn,count,maxno-count);printf(nyour score = %dnnnn, 100*count/maxno);void lianxif)int x,y,s,answer,guess;srand(

18、 (unsigned)time(null);xhrand()100; yh rand()100;sh rand()4j swifch(s)(case 0:p2.hh(二 d+%duy answer=x+y; break;case 1:printf(二 dd"2 answerhx.y; break;case 2: primfr%d*%dhy answerux 讲 y; break;case 3: wh=e(yhh0=x%yll0) (xu randowlo® yh rand()100;your answer is>);your answer is :>9y);your answer is :>9y);printf=%d、du2 your answer is :9x9y); answerux/y;break;一scanf(二 cr-4glless); primf(,your answer is :%d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论