C语言课程设计(小学生心算CAI系统).doc

上传人:wux****ua 文档编号:8031172 上传时间:2020-03-26 格式:DOC 页数:27 大小:671KB
返回 下载 相关 举报
C语言课程设计(小学生心算CAI系统).doc_第1页
第1页 / 共27页
C语言课程设计(小学生心算CAI系统).doc_第2页
第2页 / 共27页
C语言课程设计(小学生心算CAI系统).doc_第3页
第3页 / 共27页
点击查看更多>>
资源描述
课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 小学生心算CAI系统 专 业 电气工程及其自动化 班 级 0783 学 号 200713010323 姓 名 闫文 指导教师 王 颖 2008年3月18日课程设计任务书课程名称 语言程序设计 课题名称 小学生心算CAI 专业班级 电气0783班 学生姓名 闫文 学 号 200713010320 指导老师 王颖 审 批 任务书下达日期:2008 年3月15日任务完成日期:2008年3月22日C语言课程设计任务书前 言C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘(缺一不可)收齐后交指导老师。一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、基本情况课程类别:必修课课程学分:1学分课程学时:1周课程对象:电气工程0781、0782、0783、0784、0785、0786三、时间安排时间 任务2008-3-8下午3:40-5:40指导老师给学生布置课程设计的任务及要求2008-3-10到2008-3-15学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序代码 学生提交系统程序清单初稿上机调试程序修改并完善程序并上机调试程序 2008-3-16接受指导老师的验收2008-3-16到2008-3-22书写程序设计报告提交课程设计报告四、调试过程规范化要求1)需要分析分析系统功能需求以及用户操作流程。2)概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。3)详细设计定义数据储存结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。4)代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量。重点功能部分均要求给出清晰的程序注释。5)程序调试程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常进行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能;另外尽量对现有的算法给出改进方案,并比较不同算法之间的优缺点。五、设计报告及书写课题要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下五个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 概要设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 主要源程序代码:包括存储结构设计说明,以及完整源程序清单;5) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);6) 总结:包括课程设计过程中的学习体会和收获、对c语言和本次课程设计的认识以及自己的建议等内容。7) 书写格式严格按所附要求书写。附1:l 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 l 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。l 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。小学生心算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)、main函数的下属子功能函数及其调用示意图randomise()int grade()main()int many()void T()void F()zql()主菜单clrscr()voidout()mix()divide()multiply()minus()add()2)、主控模块和部分子模块流程图开始主菜单选择项目 选择乘法运算除法运算减法运算加法运算混合运算退出系统结束界面输入年级输入题数清 屏进入运算输入答案计算正确率和速度判断结束目 录 一、课程设计任务书二、课程设计主文档1、 课程设计题目2、 内容提要3、 关键字4、 总体设计方案1)、程序模块组成2)、各个函数的功能5、 主控模块和各子模块的设计框图1)、main函数的下属子功能函数及其调用示意图2)、主控模块和部分子模块流程图三、附录:1、源程序清单2、心得体会3、参考资料 4、课程设计过程部分图片附录:一、源程序清单#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(); elseR=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(); 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: 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);printf( n); printf( n); printf( n); printf( n); printf( n); printf( n); printf( n); printf( n); printf( 谢谢您的使用, n); printf( n); printf( 不足之处,敬请原谅, n); printf( n); printf( 欢迎提出宝贵意见! n); printf( n); printf( 闫文 n); printf( n); 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( 联系电话:15898507360 n); printf( 邮 编:411101 n); printf(n); printf(n); printf( 版权所有 翻版必究 n); printf(n); printf( 2008.03.18 n); printf(n); printf(n); printf(n); printf(n); printf(n); printf( 请按Enter键开始,按Alt+Enter退出!n); scanf(%c,&A); clrscr();二、心得体会经过一周的C语言课程设计,我不但实践了课本的知识,还制作了自己的小程序,感觉自己对C语言有了更深入的了解。在实践中,自己编程常会犯错误,并总结一些克服缺点的方法。深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。在设计程序的同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题 、编程和动手能力,掌握了程序设计基本技能。但也遇到了不少的挫折,有时遇到了一个错误怎么找也找不到原因所在,找了老半天结果却是一个函数放错了地方所致,有时一个功能不知道怎么实现找这个、找那个。有所编到最后一运行却告诉我错误,那真的很烦人。以前上课都是学一些最基本的东西,觉得很枯燥,而现在却可以将以前学的东西编出有实际价值的东西,这样自己非常的投入,有时候一编就是二三个小时坐在电脑前面,有时候连吃饭都忘了。但现在回过头来看,还是挺有成就感的。此次程序设计主要用了函数的调用,if、else选择语句,switch语句,时间函数,标准输入输出、随机取整函数等基本知识点,结合课本知识加上自己的应用最终取得圆满成功。C语言是一项细致深入的工作,不仅要有严谨的思路,还要在实践中有耐心,要细心。以下是课程设计中的错误总结和分析:1.变量是程序中不可缺少的一部分,要谨记先定义后使用。2.输入输出类型要一致。3.“,”是C语言的语句结束语,不可省略。4.的互相匹配。5.调用函数必先声明。6.形式参数和实际参数必须个数相等,类型相同。7 .容易输入一些错误字符。最后,谢谢老师在C语言学习及课程设计中对我的关心和指导。 四、参考资料C程序设计(第三版) 清华大学出版社C语言程序设计案例分析 人民邮电出版社C语言程序设计 北京邮电大学出版社C语言实例解析精粹 人民邮电出版社五、程序设计过程部分图片一、主菜单界面二WIN-TC源代码界面(一三、WIN-TC源代码界面(二)应用技术学院课程设计评分表课程名称: 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!