小学生数学学习系统设计报告

上传人:j****9 文档编号:45477287 上传时间:2018-06-16 格式:DOC 页数:31 大小:638.50KB
返回 下载 相关 举报
小学生数学学习系统设计报告_第1页
第1页 / 共31页
小学生数学学习系统设计报告_第2页
第2页 / 共31页
小学生数学学习系统设计报告_第3页
第3页 / 共31页
小学生数学学习系统设计报告_第4页
第4页 / 共31页
小学生数学学习系统设计报告_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《小学生数学学习系统设计报告》由会员分享,可在线阅读,更多相关《小学生数学学习系统设计报告(31页珍藏版)》请在金锄头文库上搜索。

1、目 录一、设计要求 .1二、设计目的 .2三、设计的具体实现 .31系统概述 .32总体设计 .33详细设计 .44程序实现 .8四、结论与展望 .14五、心得体会及建议 .15六、附录 .16七、参考文献 .33小学生数学学习系统设计报告一、设计要求系统为具有随机出题、自动评分、查看正确答案、错题重做等功能的测试。其具体要求为:1、可选择:加、减、乘、除四种测试,2、可设置测试题数,10,20,50,100;3、可设置随机出题难度:即数据大小范围,比如:1 位,2 位,3 位4、可以记录测试者的姓名,难度及测试类型,成绩,题数当用菜单选择时:1、开始测试:-选测试类型-选题数-选难度-开始测

2、试2、查看排名3、查看错题4、退出二、设计目的1.熟练掌握全局变量的定义及引用方法;熟练掌握 C 语言、结构体数组的操作及输入、输出;熟练掌握函数定义、函数调用、函数声明的方法。2.熟练掌握指针变量的定义和引用方法及文件操作函数的使用;熟练掌握常用排序方法冒泡排序的思想及算法实现。3.初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。4.通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯,能正确使用语言编写程序,进一步理解和运用结构化程设计的思想和方法,学会利用

3、流程图来表示算法。5.通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力,通过各组同学合作完成编程题,逐渐培养学生的编程能力,用计算机解决实际问题的能力,团队合作精神。三、设计的具体实现1系统概述随着社会的发展,知识在现代社会中发挥的作用越来越重要,家长对孩子的教育也越来越重视。我运用 C 语言编写的小学数学测试系统,旨在帮助小学生更好地掌握数学知识,让小学生轻松快乐的学习数学。此系统可通过随机出题来实现加、减、乘、除四种运算,并且参加测试的学生可根据自己的实际情况及知识水平选择测试的难度(难度分为简单,一般和复杂三个选项) 。学生在做完测试后还可以查看测试结果,系统会自动判断正误并

4、给出雪上的成绩。做完测试后学生可通过菜单选项查看错题及错题重做。若学生想查看自己的平均成绩,也可通过主菜单选项选择。该系统还可以把正在进行测试的学生和之前运用本系统进行测试的学生根据平均成绩进行排序,学生可查看自己的排名。比以往人工排名大大节省了时间。学生在测试完后可通过菜单选项退出系统。2总体设计1)main()函数该系统从 main()函数开始运行,先打开三个文本文件(TestResult.txt,fauseResult.txt,rightResult.txt)并清空文件,若这三个文件不存在则新建三个空文本文件。接着调用 regester()函数,此函数可提示测试的学生输入自己的姓名,学号

5、来实现登录功能,此时系统会把学生所输入的信息保存到结构体数组及文件 TestResult.txt 中,然后调用 ChooseFunc()函数,此时界面上会显示菜单选项,学生可根据自己实际情况选择菜单,开始进入测试系统。2)主流程图开始退出系统打开文件 TestResult.txt fauseResult.txt rightResult.txt并清空登录主菜单1、开始测试2、查看结果3、平均成绩4、查看排名5、错题重做6、结束测试5、返回菜单4、 除 法 测 试3、 乘 法 测 试2、 减 法 测 试1、 加 法 测 试选择题数选择难度测试3详细设计1)登录界面该系统通过定义函数 regeste

6、r()来实现登录功能,学生进入测试系统后,需输入自己的姓名,学号,系统会把学生输入的信息保存至结构体数组Stu50中,并同时写入文本文件 TestResult.txt 中。此部分的流程图为:开始登录打开文件 TestResult.txt ?输入姓名输入学号结束YN2)开始测试功能该系统首先定义了五个函数 differ(),Addition(int number),Subtracter(int number), Multiplication(int number), Division(int number) 即难度选择函数,加法运算函数,减法运算函数,乘法运算函数和除法运算函数,来实现四则运算功

7、能,其中 number 为题目数形参变量,系统通过定义函数 begain()来调用以上五个函数来实现此模块。此系统应用的是随机函数来实现出题供能。学生做完每种测试系统都会把测试结果及成绩记录在文本文件 TestResult.txt 中,便于学生查看。另外本系统通过定义全局变量 M(学生进行测试的总成绩),N(学生测试的次数),并通过 ave=M/N 来计算学生的平均成绩,为后续的查看平均成绩及成绩排序模块准备条件。学生测试时还可以选择测试的难度,根据自己掌握知识的实际情况来选择。本程序学生测试的题目数是系统规定好的,即 5,10,20,50,100,若超出系统规定的范围,系统会提示学生重新选择

8、。学生可通过本系统进行一次或多次测试,该部分的流程图为:5、返回菜单4、 除 法 测 试3、 乘 法 测 试2、 减 法 测 试1、 加 法 测 试选择题数测试主菜单选择测试类型开始选择难度超出功能范围?NY3)主菜单系统首先定义了函数 begain(),rework(),sort(), ShowResult(),TestOver(),即开始测试函数,错题重做函数,排序函数,显示测试结果函数,程序完毕函数,并通过自定义函数 ChooseFunc()调用以上五个函数来实现。开始测试函数,查看结果及查看平均成绩前面已经介绍,这里不再赘述。错题重做函数通过把学生测试过程中做错的题目写入文件 faus

9、eResult.txt,把正确的结果写入文件 rightResult.txt,并在自定义函数 sort()中调用这两个函数来实现,学生把做错的题重新做一遍后,系统会自动给出正确答案便于学生核对正确答案。成绩排序功能的实现是通过文件与结构体数组的相互读写来实现的。本系统运用的是结构体数组的冒泡排序法由高到低的列出学生的排名,学生可通过自己的姓名,学号来找到自己的位置。TestOver()函数可实现退出系统功能。该部分的流程图为:1、 开 始 测 试开始退出系统2、 查 看 结 果3、 平 均 成 绩4、 查 看 排 名5、 错 题 重 做6、 结 束 测 试N主菜单选择功能超出功能范围?Y4程序

10、实现1)登录界面在 main()函数中调用 regester()函数进入登录界面,学生可输入自己的姓名,学号进入,系统会保存学生的信息到结构体数组并保存至文本文件TestResult.txt 中。2)开始测试学生登录完成后,就可通过进入主菜单开始测试了。3)选择测试类型学生选择开始测试后可任意选择加、减、乘、除四种测试中的一种或多种。每种测试都可选择要测试的题数和难度,系统随机出题对学生进行测试。若选择难度为简单,系统会随机出十以内的运算,若选择的难度为一般,系统会出一百以内的运算,若选择的难度为复杂,系统会随机出一千以内的运算。若学生选择的测试类型为除法测试,则结果保留一位小数。这里我们以加

11、法和减法为例进行程序调试。选择测试类型选择测试的题目数选择难度系统随机出题减法测试(运行时同加法测试)4)查看结果学生测试完成后可通过主菜单查看测试结果,系统会自动判断正误,并统计学生做过的每种测试类型的正确题数,错误题数和成绩。5)查看平均成绩学生可通过主菜单查看自己的平均成绩。平均成绩的计算方法为学生进行每种测试类型的分数之和除以测试的次数。6)查看排名学生可通过主菜单查看自己的排名。排名是根据所有进行过测试的学生的平均成绩通过冒泡排序法实现的。排序结果会按照平均成绩从高到底的顺序一一列出,学生可在列表中找到自己的排名,其中平均成绩保留一位小数。7)错题重做学生可通过主菜单选择错题重做功能

12、。系统会把本次测试出现的错题一一列出,学生可重做一遍,做完后系统会把正确答案给出,便于核对答案。8)退出系统学生测试完成后可通过主菜单退出系统。四、结论与展望1、结论结构体数组应用起来更加方便,文件可永久保存,全局变量可作用于整个程序,通过用 C 语言编程可以实现小学生数学测试系统,经调试可运行。2、展望运用 C 语言编程来制作一个小型测试系统,应用起来比以往人工出题,判断正误,查看平均成绩,排序更加方便,而且一个程序就相当于一个软件,可以重复使用。使学生学习的更加轻松,知识掌握起来也更加容易。所以在将来做较大型的测试系统均可采用编程的方式实现。C 语言不仅可以完成此测试系统的编程 还可以用其

13、制作成许多大型的系统,如学生管理系统,图书馆管理系统,车票管理系统等,前景很广阔。五、心得体会及建议1、心得体会当得知我们的课程设计是用 C 语言编一个小学数学测试系统时,我就有点紧张了,去图书馆查阅了好多书,也没有类似的题目,都是学生成绩管理系统,当时就有点傻了,自己的 C 语言学的不是很好,要用我学过的那点 C 语言知识来编这样一个大的系统,简直是一种挑战,我不知道自己是否能完成,对自己也没有什么信心,我开始看书,查资料,在查找资料的过程中,学到很多自己曾经模糊或者说不曾见过的知识,对 C 语言有了更加清晰的认识。终于在我小组成员的共同努力下,一个完整的系统出现在我们眼前了,经多次修改调试

14、最终成功,看着自己用努力和汗水所换来的结果,心中别提有多开心了。通过此次的课程设计,我掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,对课本上的知识也有了更深的理解,我发现书本上原来我认为很深奥的知识变的更为简单。该课程设计中程序比较复杂,经修改调试多次才得以实现,这磨练了我的意志和耐心,这次课程设计为我今后完成各种复杂的计算排序等提供了一种思路,那就是多用 C 语言,方便快捷,准确。最重要的是这次的课程设计使我们组的成员共同完成的,增强了我们的团队合作意识。在今后的学习生活中,这将会是我宝贵的人生经验,并且此次我加深了对C 语言的了解,这也会有助于我后续专业课的学习。2、建议选择一种更高级的语言可能会更加方便 ,省时。如 C+ 语言,或汇编语言。六、附录(源程序代码)/*小学数学测试系统*/ #include /C 语言标准输入输出头文件 #include /字符串操作需要用到的头文件 #include /文件操作需要用到的头文件 #include /产生随机数需要用到的头文件 static float M=0; static int N=0; struct Stu char name50; /姓名char num50; /学号float ave; stu50; /定义一个结构体数组,用来存储学生的信息void regester() /注册函数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号