小学生心算CAI系统.doc_第1页
小学生心算CAI系统.doc_第2页
小学生心算CAI系统.doc_第3页
小学生心算CAI系统.doc_第4页
小学生心算CAI系统.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

前 言C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘收齐后交指导老师。一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、基本情况课程类别:必修课课程学分:1学分课程学时:1周课程对象:电气工程0781、0782、0783、0784、0785、0786三、时间安排时间任务2008-3-8 下午 3:40-5:40指导老师给学生布置课程设计的任务及要求2007-3-10 到 2007-3-15学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序的代码学生提交系统程序清单初稿上机调试程序修改并完善程序并上机调试程序2008-3-16接受指导老师的验收2008-3-16 到 2008-3-22书写课程设计报告提交课程设计报告四、设计和调试过程规范化要求1)需求分析分析系统功能需求以及拥护操作流程。2) 概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。 3) 详细设计定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。4) 代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。5) 程序调试程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能(如避免用户操作错误时程序出现死循环等);另外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。五、设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下五个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 概要设计:包括系统总计设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 主要源程序代码:包括存储结构设计说明,以及完整源程序清单;5) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、主错原因、解决方法及效果等);6) 总结:包括课程设计过程中的学习体会与收获、对C语言和本次课程设计的认识以及自己的建议等内容。7) 书写格式严格按所附要求书写。附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数在5000字以上(不含程序原代码)。六、考核方式指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体卡和标准包含以下几个部分:1) 平时出勤(占10%)2) 系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)3) 程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)4) 设计报告(占30%)5) 独立完成情况(占10%)课程设计报告目录前 言2课程设计报告目录5C程序课程设计任务书6课程设计正文7一、课程设计题目:7二、内容提要7三、关键字7四、总体设计方案7五、主控模块和各子模块的设计框图8六、程序调试11七、心得体会11八、附件13C程序课程设计任务书小学生心算CAI系统一、问题描述:本系统可以用来进行单独的加、减、乘、除心算练习,也可综合心算的速度与正确率进行测试。当用户在进行简单的四则运算时运算速度和正确率都较高时,可以进入四则混合运算,借此来进一步提高自己的心算能力。二、功能描述:1、 用户可以通过两种方法来选择功能,既可以按相应的数字键进入相应的心算练习,也可以按光标键来选择功能项。2、 计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出,只需按ESC键。3、 设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况。4、 用户输入的答案不对时,计算机会发出声音报警,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。5、 界面设计友好。三、算法提示:1、 用简单的程序设计方法2、 一定的窗口设计技巧3、 简单的数据类型四、测试数据:计算机随机产生五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。 课程设计正文一、课程设计题目: 小学生心算CAI系统二、内容提要本系统可以用来进行加、减、乘、除及四则混合运算心算练习,并统计出正确率和计算速度,当用户输入答案连续两次不对时,计算机给出正确答案,供用户参考,从而提高小学生的心算能力。三、关键字心算系统四、总体设计方案1、 用户可以通过按相应的数字键进入相应的心算练习。2、 计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出,只需按T键。3、 设计的系统完全适合用户,除法考虑到小学生的水平问题,只出现整除情况。4、 用户输入的答案不对时,计算机会发出声音,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。1)、程序模块组成:主函数 main()随机取整函数 randomize()声音函数 提醒答题正确 void T() 提醒答题错误 void F()菜单函数 加法运算函数 aid()减法运算函数 minus()乘法运算函数 multiply除法运算函数 divide()混合运算函数 mix() 退出函数 void out()输入年级函数 int grade()输入题量函数 int many()清屏函数 clrscr()答题正确率函数 void zql()2)、各个函数的功能:随机取整函数:给出比较简单的数字,供用户进行运算。提醒答题正确:若用户答题正确,发出声音。提醒答题错误:若用户答题错误,发出不同的声音以示警报。加法运算函数:单独进行加法运算。减法运算函数:单独进行减法运算。乘法运算函数:单独进行乘法运算。除法运算函数:单独进行除法运算。混合运算函数:以固定混合运算公式进行运算。 退出函数:退出菜单并显示图形及退出系统操作提示。输入年级函数:输入年级,决定出题的难度。输入题量函数:输入想做题目的数量,便于计算正确率和答题速度。清屏函数:清理屏幕。答题正确率函数:计算答题正确率,以便提示用户是否进入混合运算。五、主控模块和各子模块的设计框图1)、mian函数的下属子功能函数及其调用示意图add()randomise()minus()int grade()multiply()int many()main()主菜单void T()mix()void F()divide()zql()voidout()clrscr()开始2)、主模块和分子模块流程图主菜单选择项目 选择乘法运算除法运算减法运算加法运算混合运算退出系统结束界面输入年级输入题数清 屏进入运算输入答案计算正确率和速度判断结束六、程序调试程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确的运行,可考虑增加若干基本的容错功能;另外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。七、心得体会通过一周的C语言课程设计,我一点点的将课本的知识运用起来,制作了自己的小程序,感觉自己对C语言有了更深入的了解。在实践中,自己编程常会有很多地方不知道怎么做,于是经常用翻阅一些资料来巩固一些不太熟悉的东西。写出来的程序也会有很多错误,在寻找错误中总结出了一些克服缺点的方法。深刻体会到程序设计中最花时间的一部分不是编写源程序,而是调试过程。只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。在设计程序的同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题 、编程和动手能力,掌握了程序设计基本技能。但也遇到了不少的困难,有时遇到了一个错误怎么找也找不到原因所在,找了老半天结果却是一个字符出了问题,有时一个功能不知道怎么实现找这个、找那个。有时候所编程序到最后一运行却告诉我错误,那真的很烦人。以前上课都是学一些最基本的东西,觉得很枯燥不怎么想听,而现在要将以前学的东西灵活运用起来,这对自己来说真的非常有挑战性。有时候一编就是几个小时坐在电脑前面,有时候连吃饭都是在电脑面前。但看着自己写的程序,还是挺有成就感的。更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见识到了C语言的重要性。C语言是一项细致深入的工作,不仅要有严谨的思路,还要在实践中有耐心,要细心。我的程序是在自己知识范围内完成的,所以界面清晰简单,可能不是很好看,但绝对实用!看这自己的程序一个字符一个字母的被打出来,从开始的错误百出到一点点的能运行,当我自己编写的程序第一次完整的运行的时候我感到无比的兴奋。这次程序设计主要用了函数的调用,if、else选择语句,switch语句,时间函数,标准输入输出、随机取整函数等基本知识点,结合课本知识加上自己的应用最终取得圆满成功。C语言是一项细致深入的工作,不仅要有严谨的思路,还要在实践中有耐心,要细心。以下是课程设计中的错误总结和分析:1.输入输出类型要一致。2.“;”是C语言的语句结束语,不可省略。3.变量是程序中不可缺少的一部分,要谨记先定义后使用。4形式参数和实际参数必须个数相等,类型相同。5.调用函数必先声明。最后,谢谢老师在C语言学习及课程设计中对我的指导。八、附件1)源程序(含注释)#include /*颜色库函数*/#include /*时间函数*/#include /*字符屏幕控制库函数 */#include /*随机库函数,退出函数*/#include /*输入,输出库函数*/#include /*声音库函数*/#include #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(); clrscr(); printf(n); printf( |=| n); printf( | | n); printf( | 欢迎来到CAI小学数学学习乐园 |n); printf( | |n); printf( |=|n); printf( | |n); printf( | |n); printf( | |n); printf( | 1.【】加法运算 2.【】减法运算 |n); printf( | |n); printf( | |n); printf( | 3.【】乘法运算 4.【】除法运算 |n); printf( | |n); printf( | |n); printf( | 5.【】混合运算 6.【】退出系统 |n); printf( | |n); printf( |=|n); printf(n); printf( 书山有路 学海无涯 锲而不舍 敢为人先 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(*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(* 欢迎进入混合运算练习 *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=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 B1; else main(); else R=0;u=0; printf(想继续吗?n如果是请按1,否则请按任意数字键回主菜单:); scanf(%d,&e); if(e=1) goto B1; else main(); minus() /*减法练习*/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=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 B2; else main(); else R=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: n=many(); for(i=1;i=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如果是请按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=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 B4; else main(); elseR=0;u=0; printf(想继续吗?n如果是请按1,否则请按数字任意键回主菜单:); scanf(%d,&e); if(e=1) goto B4; else main(); mix() /*混合运算*/ int 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=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 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(请输入你的年级(16):); scanf(%d,&g); if(g6)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); return;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(); printf(n); printf( n); printf( n); printf( n); printf( n); printf( n); printf( n); printf( n);print

温馨提示

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

评论

0/150

提交评论