C语言课程设计(小学生心算CAI系统)_第1页
C语言课程设计(小学生心算CAI系统)_第2页
C语言课程设计(小学生心算CAI系统)_第3页
C语言课程设计(小学生心算CAI系统)_第4页
C语言课程设计(小学生心算CAI系统)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、 课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 小学生心算CAI系统 专 业 机械设计制造及其自动化 班 级 1086 学 号 201013090631 姓 名 欧阳帆 指导教师 王 颖 2011年9月15日课程设计任务书课程名称 语言程序设计 课题名称 小学生心算CAI 专业班级 机设1086 学生姓名 欧阳帆 学 号 201013090631 指导老师 王颖 审 批 C语言课程设计任务书一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算

2、法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、基本情况课程类别:必修课课程学分:1学分课程学时:1周三、规范化要求1)需要分析分析系统功能需求以及用户操作流程。2)概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。3)详细设计定义数据储存结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。4)代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主

3、程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量。重点功能部分均要求给出清晰的程序注释。5)程序调试程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常进行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能;另外尽量对现有的算法给出改进方案,并比较不同算法之间的优缺点。四、设计

4、报告及书写课题要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下五个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 概要设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 主要源程序代码:包括存储结构设计说明,以及完整源程序清单;5) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);6) 总结:包括课程设计过程中的学

5、习体会和收获、对c语言和本次课程设计的认识以及自己的建议等内容。7) 书写格式严格按所附要求书写。附1:l 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 l 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。l 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。小学生心算CAI系统一、问题描述:本系统可以用来进

6、行单独的的加、减、乘、除心算练习,也可综合心算的速度与正确率进行测试。当用户在进行简单的四则运算时运算速度和正确率都较高时,可以进入四则混合运算,借此来进一步提高自己的心算能力。二、功能描述:1、 用户可以通过两种方法来选择功能,既可以按相应的数字键进入相应的心算练习,也可以按光标键来选择功能项。2、 计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出,只需按ESC键。3、 设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况。4、 用户输入的答案不对时,计算机会发出声音报警,用户输入的结果如果连续两次不对,计算机会自动给出正

7、确答案,供用户参考。5、 界面设计友好。三、算法提示:1、 用简单的程序设计方法2、 一定的窗口设计技巧3、 简单的数据类型四、测试数据:计算机随机产生五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。 课程设计主文档一、课程设计题目: 小学生心算CAI系统二、内容提要:本系统可以用来进行加、减、乘、除及四则混合运算心算练习,并统计出正确率和计算速度,当用户输入答案连续两次不对时,计算机给出正确答案,供用户参考,从而提高小学生的心算能力。三、关键字:心算系统四、总体设计方案:1、 用户可以通过按相应的数字键进入相应的心算练习。2、 计算机自动出题,用户进入每项练习时,

8、屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出,只需按T键。3、 设计的系统完全适合用户,除法考虑到小学生的水平问题,只出现整除情况。4、 用户输入的答案不对时,计算机会发出声音,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。模块组成及各个函数的功能:1)、程序模块组成:主函数 main()随机取整函数 randomize()声音函数 提醒答题正确 void T() 提醒答题错误 void F()菜单函数 加法运算函数 aid()减法运算函数 minus()乘法运算函数 multiply除法运算函数 divide()混合运算函数 mix() 退出函数 voi

9、d out()输入年级函数 int grade()输入题量函数 int many()清屏函数 clrscr()答题正确率函数 void zql()2)、各个函数的功能:随机取整函数:给出比较简单的数字,供用户进行运算。提醒答题正确:若用户答题正确,发出声音。提醒答题错误:若用户答题错误,发出不同的声音以示警报。加法运算函数:单独进行加法运算。减法运算函数:单独进行减法运算。乘法运算函数:单独进行乘法运算。除法运算函数:单独进行除法运算。混合运算函数:以固定混合运算公式进行运算。 退出函数:退出菜单并显示图形及退出系统操作提示。输入年级函数:输入年级,决定出题的难度。输入题量函数:输入想做题目的

10、数量,便于计算正确率和答题速度。清屏函数:清理屏幕。答题正确率函数:计算答题正确率,以便提示用户是否进入混 五、主控模块和各子模块的设计框图1)、main函数的下属子功能函数及其调用示意图randomise()int grade()main()int many()void T()void F()zql()主菜单clrscr()voidout()mix()divide()multiply()minus()add()2)、主控模块和部分子模块流程图开始主菜单选择项目 选择乘法运算除法运算减法运算加法运算混合运算退出系统结束界面输入年级输入题数清 屏进入运算输入答案计算正确率和速度判断结束目 录 一

11、、课程设计任务书二、课程设计主文档1、 课程设计题目2、 内容提要3、 关键字4、 总体设计方案1)、程序模块组成2)、各个函数的功能5、 主控模块和各子模块的设计框图1)、main函数的下属子功能函数及其调用示意图2)、主控模块和部分子模块流程图三、附录:1、源程序清单2、心得体会3、参考资料 4、课程设计过程部分图片附录:一、源程序清单#include <graphics.h> /*颜色库函数*/#include <time.h> /*时间函数*/#include <conio.h> /*字符屏幕控制库函数 */#include <stdlib.h

12、> /*随机库函数,退出函数*/#include <stdio.h> /*输入,输出库函数*/#include <dos.h> /*声音库函数*/#include <math.h>#define N 5 Y(); add(); /*声明函数*/ minus(); multiply(); divide(); mix(); void zql(int rightnum,int all); void out(); int grade(); int many(); /*次数函数*/ void T(); void F(); main()char i; Y(); c

13、lrscr(); printf("n"); printf(" n"); printf(" n"); printf(" 欢迎来到CAI小学数学学习乐园 知识成就未来,n"); printf(" n"); printf(" 开启智慧百宝箱!n"); printf(" n"); printf(" n"); printf(" n"); printf(" 1.【】加法运算 2.【】减法运算 n"); pri

14、ntf(" n"); printf(" n"); printf(" 3.【×】乘法运算 4.【÷】除法运算 n"); printf(" n"); printf(" n"); printf(" 5.【±】混合运算 6.【】退出系统 n"); printf(" n"); printf(" n"); printf("n"); printf(" 书山有路 学海无涯 锲而不舍 敢为人先

15、n"); printf("n"); printf("n请选择菜单项目:"); scanf("%c",&i); clrscr();switch(i)case 49: printf("*n"); printf("* 欢迎进入加法运算练习 *n"); printf("*n"); add();break; case 50: printf("*n"); printf("* 欢迎进入减法运算练习 *n"); printf(&quo

16、t;*n"); minus();break; case 51: printf("*n"); printf("* 欢迎进入乘法运算练习 *n"); printf("*n"); multiply();break; case 52: printf("*n"); printf("* 欢迎进入除法运算练习 *n"); printf("*n"); divide();break; case 53: printf("*n"); printf("* 欢迎

17、进入混合运算练习 *n"); printf("*n"); mix();break; case 54: out();break; default: main();add() /*加法练习*/ int a,b,c,d,e,f,g,i,n,R=0; double o; float p,u=0; char x; g=grade();B1: n=many(); for(i=1;i<=n;i+)randomize(); /*调用随机取整函数*/ a=g*g*N+random(N); b=g*N+random(N); c=a+b; printf("n请输入计算结

18、果(退出请按t键):%d+%d=",a,b); o=clock()/CLK_TCK; scanf("%d",&d); scanf("%c",&x); if(x=116) main(); if(c=d)T(); printf("你答对了,继续加油啊!n"); R+; elseprintf("你答错了,别灰心,再来一次.n"); F(); printf("请输入计算结果(退出请按t键):%d+%d=",a,b); scanf("%d",&d);

19、scanf("%c",&x); if(x=116) main(); if(c=d)printf("这次对了,真棒,再努力啊!n"); T(); R+; elseF(); printf("你又错了,答案是:%d.n",c); o=clock()/CLK_TCK-o;u=u+o; printf("n一共%d道题,你做对了%d道题.n",n,R); zql(R,n); printf("答题速度:%4.2f秒每题.n",u/R); p=100*R/n; if(p>=60&&

20、u<=R*10)R=0;u=0; printf("是否进入混合运算,进入请输入1,继续请输入2,按其它数字键回主菜单:n"); scanf("%d",&f); if(f=1) return mix(); else if(f=2) goto B1; else main(); elseR=0;u=0; printf("想继续吗?n如果是请按'1',否则请按数字任意键回主菜单:"); scanf("%d",&e); if(e=1) goto B1; else main();minus

21、() /*减法练习*/int a,b,c,d,e,f,g,h,i,n,t,R=0; float p,u=0; double o; char x; g=grade();B2: n=many(); for(i=1;i<=n;i+)randomize(); a=g*g*N+random(N); b=g*N+random(N); if(a<b)t=a;a=b;b=t; c=a-b; printf("n请输入计算结果(退出请按t键):%d-%d= ",a,b); o=clock()/CLK_TCK; scanf("%d",&d); scanf(

22、"%c",&x); if(x=116) main(); if(c=d)T(); printf("你答对了,继续加油啊!n"); R+; elseprintf("你答错了,别灰心,再来一次.n"); F(); printf("请输入计算结果(退出请按t键):%d-%d= ",a,b); scanf("%d",&d); scanf("%c",&x); if(x=116) main(); if(c=d)printf("这次对了,真棒,再努力啊!n&

23、quot;); T(); R+; elseF(); printf("你又错了,答案是:%dn",c); o=clock()/CLK_TCK-o;u=u+o; printf("n一共%d道题,你做对了%d道题.n",n,R); zql(R,n); printf("答题速度:%4.2f秒每题.n",u/R); p=100*R/n; if(p>=60&&u<=R*10)R=0;u=0; printf("是否进入混合运算,进入请输入1,继续请输入2,按其它数字键回主菜单:n"); scanf(&

24、quot;%d",&f); if(f=1) return mix(); else if(f=2) goto B2; else main(); elseR=0;u=0; printf("想继续吗?n如果是请按'1',否则请按数字任意键回主菜单:"); scanf("%d",&e); if(e=1) goto B2; else main();multiply() /*乘法练习*/int a,b,c,d,e,f,g,i,n,R=0; float p,u=0; char x; double o; g=grade();B3

25、: n=many(); for(i=1;i<=n;i+)randomize(); a=g*N+random(N); b=N+random(N); c=a*b; printf("n请输入计算结果(退出请按t键):%d*%d= ",a,b); o=clock()/CLK_TCK; scanf("%d",&d); scanf("%c",&x); if(x=116) main(); if(c=d)T(); printf("你答对了,继续加油!n"); R+; elseprintf("你答错了

26、,别灰心,再来一次.n"); F(); printf("请输入计算结果(退出请按t键):%d*%d= ",a,b); scanf("%d",&d); scanf("%c",&x); if(x=116) main(); if(c=d)printf("这次对了,真棒,再努力啊!n"); T(); R+; elseF(); printf("你又错了,答案是:%dn",c); o=clock()/CLK_TCK-o;u=u+o; printf("n一共%d道题,你做对

27、了%d道题.n",n,R); zql(R,n); printf("答题速度:%4.2f秒每题.n",u/R); p=100*R/n; if(p>=60&&u<=R*10)R=0;u=0; printf("是否进入混合运算,进入请输入1,继续请输入2,按其它数字键回主菜单:n"); scanf("%d",&f); if(f=1) return mix(); else if(f=2) goto B3; else main(); elseR=0;u=0; printf("想继续吗?n如

28、果是请按'1',否则请按数字任意键回主菜单:"); scanf("%d",&e); if(e=1) goto B3; else main();divide() /*除法练习*/int a,b,c,d,e,f,g,i,n,R=0; float p,u=0; char x; double o; g=grade();B4: n=many(); for(i=1;i<=n;i+)randomize(); a=N+random(N); b=g*N+random(N); c=a*b;d=c/a; printf("n请输入计算结果(退出请按

29、t键):%d/%d=",c,a); o=clock()/CLK_TCK; scanf("%d",&d); scanf("%c",&x); if(x=116) main(); if(d=b)T(); printf("你答对了,继续加油啊!n"); R+;elseprintf("你答错了,别灰心,再来一次.n"); F();printf("请输入计算结果(退出请按t键):%d/%d= ",c,a);scanf("%d",&d);scanf(&qu

30、ot;%c",&x); if(x=116) main(); if(d=b)printf("这次对了!n"); T(); R+; elseF(); printf("你又错了,这个题的商:%d n",b); o=clock()/CLK_TCK-o;u=u+o; printf("n一共%d道题,你做对了%d道题.n",n,R); zql(R,n); printf("答题速度:%4.2f秒每题.n",u/R); p=100*R/n; if(p>=60&&u<=R*10)R=0;

31、u=0; printf("是否进入混合运算,进入请输入1,继续请输入2,按其它数字键回主菜单:n"); scanf("%d",&f); if(f=1) return mix(); else if(f=2) goto B4; else main(); elseR=0;u=0; printf("想继续吗?n如果是请按'1',否则请按数字任意键回主菜单:"); scanf("%d",&e); if(e=1) goto B4; else main(); mix() /*混合运算*/ int

32、a,b,c,d,e,f,g,h,i,j,k,l,n,R=0; float p,u=0; double o; char x; g=grade();B5: n=many(); for(i=1;i<=n;i+)randomize(); a=N+random(N); b=g*N+random(N); c=g*N+random(N); d=N+random(N); g=g*g*n+random(N); j=c*d; k=a*b+j/d-g; printf("n请输入计算结果(退出请按t键):%d*%d+%d/%d-%d=",a,b,j,d,g); o=clock()/CLK_T

33、CK; scanf("%d",&l); scanf("%c",&x); if(x=116) main(); if(k=l) T(); printf("恭喜哦,答对了!n");R+; elseprintf("OH,打错了,别灰心,再来一次.n"); F(); printf("请输入计算结果(退出请按t键) :%d*%d+%d/%d-%d=",a,b,j,d,g); scanf("%d",&l); scanf("%c",&x);

34、 if(x=116)main(); if(k=l)printf("这次对了,真棒,再接再厉啊!n"); T(); R+; elseF(); printf("呵呵,还是错了,答案是:%dn",k); o=clock()/CLK_TCK-o;u=u+o; printf("n一共%d道题,你做对了%d道题.n",n,R); zql(R,n); printf("答题速度:%4.2f秒每题.n",u/R); p=100*R/n; if(p>=60&&u<=R*10)R=0;u=0; printf(

35、"是否再进入混合运算,进入请输入1,继续请输入2,按其它数字键回主菜单:n"); scanf("%d",&f); if(f=1) return mix(); else if(f=2) goto B5; else main(); elseR=0;u=0; printf("想继续吗?n如果是请按'1',否则请按数字任意键回主菜单:"); scanf("%d",&e); if(e=1) goto B5; else main();int grade()int g;K: printf(&quo

36、t;请输入你的年级(16):"); scanf("%d",&g); if(g<1|g>6)printf("输入错误,请重新输入:"); goto K; return(g);int many()int m; printf("n请输入你想要做的题目个数: "); scanf("%d",&m); return(m); void zql(int rightnum,int all) printf("正确率为:%d%.n",rightnum*100/all); retu

37、rn;void color()textbackground(2); textcolor(1);void T()sound(8000);delay(10000); sound(0);delay(5000); sound(800);delay(10000); sound(0);delay(5000); sound(800);delay(10000); sound(0);delay(5000); sound(8000);delay(10000); nosound();void F()sound(1800);delay(5000); nosound();void out() clrscr(); pri

38、ntf("n"); printf(" n"); printf(" n"); printf(" n"); printf(" 知识就是财富! n"); printf(" n"); printf(" n"); printf(" n");printf(" n"); printf(" n"); printf(" n"); printf(" n"); printf(&q

39、uot; n"); printf(" n"); printf(" n"); printf(" n"); printf(" 谢谢您的使用, n"); printf(" n"); printf(" 谢谢您的支持, n"); printf(" n"); printf(" 欢迎提出宝贵意见! n"); printf(" n"); printf(" 欧阳帆 n"); printf(" n

40、"); printf(" "); printf("按任意键退出"); exit(0); Y()char A; clrscr(); /*清屏函数*/ printf("n"); printf("n"); printf(" 欢迎使用CAI小学数学学习软件 n"); printf(" 希望本软件对你的学习有所帮助,欢迎提出宝贵意见 。 n"); printf("n"); printf(" 主 编:欧阳帆 n"); printf(" 指导老师:王 颖 n"); printf(" 发行单位:湖南工程学院应用技术学院 n"); printf(" 地 址:湖南省湘潭市书院17号湖南工程学院南院 欧阳帆n"); printf(" 联系电话n"); printf(" 邮 编:411101 n"); printf("n"); printf("n"); pr

温馨提示

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

评论

0/150

提交评论