您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 小学生心算系统――c语言程序设计
课程设计报告课程名称C语言程序设计课题名称小学生心算CAI系统专业材料成型班级0803班学号姓名指导教师2009年12月25日1湖南工程学院课程设计任务书课程名称C程序设计课题小学生心算CAI系统专业班级材料成型0803班学生姓名学号指导老师审批任务书下达日期2009年12月25日任务完成日期2010年1月3日2一、设计内容与设计要求1、设计内容一、问题描述:本系统可以用来进行单独的的加、减、乘、除心算练习,也可综合心算的速度与正确率进行测试。当用户在进行简单的四则运算时运算速度和正确率都较高时,可以进入四则混合运算,借此来进一步提高自己的心算能力。二、功能描述:1、用户可以通过两种方法来选择功能,既可以按相应的数字键进入相应的心算练习,也可以按光标键来选择功能项。2、计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出。3、设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况。4、用户输入的答案不对时,提示错误,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。5、界面设计友好。三、算法提示:1、用简单的程序设计方法2、一定的窗口设计技巧3、简单的数据类型四、测试数据:计算机随机产生五、其它:3对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。六.分组及安排所选题目根据学生学号确定,学号模4加1,即(学号%4+1)。如你的学号为17,则所选题目号为:17%4+1==(题目2)。七.成绩评定程序设计方案是否合理;程序设计是否正确;调试结果;设计说明书的质量高低;答辩时回答问题情况;课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。2.设计要求:1).设计正确,方案合理。2).界面友好,使用方便。3).程序精炼,结构清晰。4).设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。5).上机演示。二、进度安排星期一下午机房上机,熟悉这次课程设计的目的和课程设计的要求,通过图书馆或因特网查找与小学生心算CAI系统课题相关的资料,明确了解一些要用到的文件和调用函数等,然后再把整个程序设计的总体框架、流程图等构思出来,并进行书面程序设计。星期三下午机房上机,在计算机上编辑源程序。调试程序,在改正错误的同时不断完善程序,使源代码满足课程设计的要求和实现课程设计的基本功能。不断改正错误后,要保证程序能成功编译成目标文件,链接成功成为可执行文件,这样才能算已经完成了本课题的基本功能。之后,开始撰写课程设计报告。星期四下午进一步完善程序并运行演示,完成课程设计答辩,完成并打印课程设计报告。4课程设计报告装订顺序:封面、任务书、目录、正文、评分(A4大小的图纸及程序清单)。正文的格式:一级标题用2号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的源代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序源代码)。5目录一、课题的目的和意义·······································(6)二、课程设计包含知识点·····································(6)三、课题的主要功能及设计思路·······························(6)1、功能介绍····················································(7)2、设计的思路(主要用到的函数)··································(7)3、总体设计(模块结构图)········································(8)4、功能的实现···················································(9)5、调试分析·····················································(8)四、用户使用说明书··········································(3)五、总结及心得体会··········································(3)六、参考文献················································(4)七、附录(源程序清单)·······································(5)6一、课题的目的和意义C语言程序设计是一门实践性很强的课程。C程序课程设计是学习C语言程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉、掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力,让学生加深理解书本上所学的知识,提高动手操作的能力以及分析问题和解决问题的能力。二、课程设计包含知识点:1、掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句。2、掌握数组的基本概念。熟练掌握一维数组和二维数组的使用,掌握字符数组与字符串的关系以及字符串的简单处理,会分析、编写利用数组进行数据存储和处理的简单程序。3、熟练掌握指针、地址、指针类型、void指针类型、空指针等概念,熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式,掌握指针与数组、函数、字符串、自由空间等的联系,了解引用变量、值传送、引用传送的概念,掌握引用参数的使用。4、掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解虽说捧着自己的成果很高兴,但成果背后总是付出很大的努力。一个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇枪舌剑的辩论;有过相互鼓励的安慰。一个多礼拜的时间我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我们函数的作用域。5、掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数的关系。三、课题的主要功能和设计的思路1、功能介绍:本系统可以用来进行单独的的加、减、乘、除心算练习,也可进行混合运算,当用户在进行简单的四则运算时正确率都较高时且做了五道题(80%),可以进入四则混合运算,借此来进一步提高自己的心算能力。7(1)用户可以通过两种方法来选择功能,既按光标键来选择功能项。(2)计算机自动出题,用户进入每项练可以按相应的数字键进入相应的心算练习,也可以习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出。(3)设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况。(4)用户输入的答案不对时,重新提示刚刚的题,重做一遍,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。(5)界面设计友好。2.设计的思路(主要用到的函数)1、main()主函数程序采用模块化设计,主函数是程序的入口,其他各模块据独立,均由主函数控制调用。该功能的实现是通过循环控制执行一个开关语句,通过该语句得到一个返回值,再判断该值,运行调用下一个函数,同时也设置一断点,为一定条件是执行exit()避免死循环。2、menu()和menu2()以及menu3()menu()是直接利用输出函数printf输出字符串,从而在屏幕上显示一菜单,并提示输入选项,再将值返回给主函数,主函数在调用相应的函数。menu2()显示一些窗口和计算最后得了多少分。menu3()则是为了使界面友好而添加的。3、chuTi()出单独的加、减、乘、除运算,利用选择结构控制开关,并且能返回值给主函数,是本程序的主要函数之一。4、chuTi2()出复杂的四则混合运算。并且要求达到一定要求事由主函数控制进入。返值给主函数,是本程序的主要函数之一。5、rand()随机选整数选取随机的整数,例如rand()%100就是随机出1到100之间的整数。使出来的题随机。6、Zhishu()判断是否为质数考虑到小学生水平有限,只能出现整除,当被除数是质数时,能整除的只有1和其本身,因此此时应重新选取一个整数数。于是由此实现,是质数返值1,不为质数时返值0.7、tiao()和kong()换行和空格为了设计方便,之后要换行或空格可直接由他们实现。88、srand()函数是随机数发生器的初始化函数,使产生的数更加随机,避免出现相同的题,因此再一次出题时,不会与上一道题相同。3.总体设计(模块结构图):注:当用户的正确率达到80%以上,并且做了五题以上后会自动调用混合运算。4.功能的实现通过主函数控制,进入窗口函数,输入key值,由此进入循环,循环中调用ChuTi()函数出简单独立的加、减、乘、除运算,在此函数中,各个运算单独完成,由rand()函数随机抽取数据出题,除法运算时,再条用zhishu()函数判断是否为质数,是则重新选取。不想做时到菜单输入零,便可结束。循环结束时达到了一定题数,返回值给主函数,正确率大于80%时,由主函数调用ChuTi2()函数,此时进行混合四则运算。此时再分16种情况,系统再次调用判断质数函数zhishu()和随机取数函数rand(),出题。结束后又返值给主函数,进入meun2()计算最后得分。菜单(选择)加法减法乘法除法混合退出9主函数N-S流程图:ChuTi()函数中加法的流程图定义i=1,静态变量p1=0,p2=0,作为正确题数记录For(i=1;i=5;i++)++)Meum()++)输入key值++)Key4“Error”i=i-1;重新输入调用函数ChuTi()答对p1++;P13Youneedtodoagain!Youhavepassedthisstage!For(i=1;i=5;i++)++)调用函数ChuTi2(),答对p2++;++)调用函数Meum2(),读取p1,p2计算所得分数++)调用函数Meum3(),显示结尾窗口++)YNYN10注:其余四种运算流程图与其类似开始调用,取key值存入op中。定义i=0,1、加法运算调用rand()函数随机取数,然后随机出题。i2YN输入值resres==answerNRight!p1++;返值给主函数Y错误,重做i++提示错误给出正确值0、退出2、减法运算4、除法运算3、乘法运算115.调试分析:(1)测试数据:a)进入菜单后,系统会提示选择1,2,3,4,0进行下一步操作,包括加法、减法、乘法、除法、退出操作。(只列出加法调试)主窗口图:当选择加法运算答对时,提示right,并自动跳到主界面:12两次答错时,系统给答案:答对五道题且正确在80%以上,跳入混合四则运算:13再答五道题时,显示结果给出分数,并且显示最后窗口:加法数据调试成功!(2)程序调试中出现的问题以及解决的方法:1、刚开始没有按照老师所教的按模块化设计,只用了一个主函数,导致程序结构紊乱,特别是在检查错误时发了大量的时间,这让我感受到设计程序不能想当然而是要按部就班的执行设计程序的具体步骤。2、刚开始时,在设计随机产生数字的函数时,不知道要怎么用random()函数,后来在网上查到,用rand()也可以,并且更实用。3、在自定义函数时,出现了两个函数同名导致程序调试是错误。4、在调试程序的过程中,输入没有按输出的格式,导致程序不能正常运行,对于这种老师经常强调的错误我们应该不能再犯,我们应该谨记老师在课堂上需要注意的事项并且在操作要落实。5、用户界面不够人性化,经过对菜单的修改及对操作执行后系统询问的完善使该系统更人性化。四、用户使用说明书14用户一
本文标题:小学生心算系统――c语言程序设计
链接地址:https://www.777doc.com/doc-3648483 .html