小学生心算CAI系统设计.docx

上传人:b****5 文档编号:3536938 上传时间:2022-11-23 格式:DOCX 页数:27 大小:35.78KB
下载 相关 举报
小学生心算CAI系统设计.docx_第1页
第1页 / 共27页
小学生心算CAI系统设计.docx_第2页
第2页 / 共27页
小学生心算CAI系统设计.docx_第3页
第3页 / 共27页
小学生心算CAI系统设计.docx_第4页
第4页 / 共27页
小学生心算CAI系统设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

小学生心算CAI系统设计.docx

《小学生心算CAI系统设计.docx》由会员分享,可在线阅读,更多相关《小学生心算CAI系统设计.docx(27页珍藏版)》请在冰豆网上搜索。

小学生心算CAI系统设计.docx

小学生心算CAI系统设计

(此文档为word格式,下载后您可任意编辑修改!

应用技术学院

课程设计报告

课程名称《C语言程序设计》

课题名称小学生心算CAI系统设计

专业机械设计

班级0781

姓名郑志雄

指导教师王颖

2008年7月8日

湖南工程学院

课程设计任务书

课程名称《C语言程序设计》

课题小学生心算CAI系统设计

专业班级机设0781班

学生姓名郑志雄

指导老师王颖

审批

任务书下达日期2008年6月20日

任务完成日期2008年7月8日

C语言程序课程设计任务书

1、课程设计性质与目的:

C语言程序设计是一门实践性很强的课程。

C程序课程设计是学习C语言程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、分析程序及上机操作、调试程序的能力,让学生加深理解书上所学的知识,提高动手操作能力及分析问题和解决问题的能力。

2、课程设计包含的知识点:

1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语句。

2.掌握数组的基本概念。

掌握一维数组与二维数组的使用,掌握字符数组与字符串的关系。

3.熟练掌握指针、地址、指针类型的概念及其使用。

掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系

4掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。

5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。

结构体与指针、函数的关系。

3、课程设计的要求:

掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。

1.设计正确,方案合理。

2.界面友好,使用方便。

3.程序精炼,结构清晰。

4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

5.上机演示。

6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。

源程序及编译生成各文件均保存在软盘中;

7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。

并用A4的复印纸打印并装订;

8.在2008年7月8日之前,请各班学习委员收齐课程设计报告和源程序

4、课程设计考核办法:

根据学生所完成课程设计报告的完整性,正确性,和算法实现的质量,分为优,良,中,及格和不及格五个等级。

正文总字数要求在5000字以上(不含程序原代码)。

5、设计报告的完整格式应包含以下内容:

a)设计总体思路

b)主程序及各个模块说明

c)总体模块框图

d)各个程序模块说明

e)程序流程图

f)程序清单

g)总结与体会

6、课程设计指导老师:

王颖

设计课题8:

小学生心算CAI系统

一,问题描述:

本系统可以用来进行单独的加、减、乘、除心算练习,也可以综合心算的速度与正确率进行测试.当用户在进行简单的四侧运算时运算速度和正确率都比较高,也可以进入四侧混合运算,借此来进一步提高自己的心算能力.

二,功能描述:

1,用户可以通过两种方法来选择功能,既可以按响应的数字键进入响应的心算练习,也可以按光标键来选择功能项.

2,计算机自动出题,用户进入每项时,屏幕上会显示用户所做的响应的题数,如果不想继续可以随时退出,只需按ESC键.

3设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况.

4,用户输入的答案不对时,计算机会发出声音报警,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,共用户参考.

5,界面设计友好.

三,算法提示:

1,用简单的程序设计方法.

2,一定的窗口设计技巧.

3,简单的数据类型.

四,测试数据:

计算机随机产生

五,其他:

对系统有兴趣的同学可以在实现系统基本功能后,完善系统的其他功能.

课程设计报告规范

一、需求分析

1、程序的功能。

2、输入输出的要求。

二、概要设计

1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。

2、课题的总体数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。

三、详细设计

1、采用C语言定义相关的数据类型。

2、写出各模块的类C码算法。

3、画出函数的调用关系图。

四、调试分析以及设计体会

1、测试数据:

准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。

2、程序调试中遇到的问题以及解决问题的方法。

3、课程设计过程经验教训、心得体会。

五、使用说明

用户使用手册:

说明如何使用你编写的程序,详细列出每一步的操作步骤。

六、书写格式

1、设计报告要求用A4纸打印成册:

2、标题和正文要求见附

3、封面格式如下页。

七、附录

1、参考书目

2、源程序清单(带注释)

附1:

●课程设计报告装订顺序:

封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。

●正文的格式:

一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

●正文的内容:

一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。

●正文总字数要求在5000字以上(不含程序原代码)。

前言

《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。

是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。

通常,课程设计的课题比平时的习题复杂得多,也更接近实际。

课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。

为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。

学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。

学习委员将课程设计报告与磁盘收齐后交指导老师

目录

一、课题的目的和意义10

二、详细设计10

1.功能介绍:

10

2.总体设计(模块结构图):

11

3.详细设计(流程图):

11

三、程序分析:

12

四、函数模块12

1、程序模块组成:

12

2、函数的功能:

13

五、调试分析:

14

(1)测试数据:

14

(2)程序调试中出现的问题:

14

六、总体设计方案14

1程序说明及所达到的要求:

14

2运算模块之间的算法:

14

七、调试分析:

16

1概要:

16

2数据测试:

16

3程序调试中出现的问题:

16

4程序和排错。

17

八、用户使用说明书18

九、总结及心得体会19

十、附录20

1、参考文献20

2、源程序清单20

一、课题的目的和意义

本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《C语言程序设计》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:

1.巩固和加深学生对C语言课程的基本只是的理解和掌握;

2.掌握C语言编程和程序调试的基本技能;

3.利用C语言进行简单的软件设计的基本思路和方法;

4.提高运用C语言解决实际问题的能力。

二、详细设计

1.功能介绍:

本系统可以用来进行单独的的加、减、乘、除心算练习,也可综合心算的速度与正确率进行测试。

当用户在进行简单的四则运算时运算速度和正确率都较高时,可以进入四则混合运算,借此来进一步提高自己的心算能力。

(1)用户可以通过两种方法来选择功能,既可以按相应的数字键进入相应的心算练习,也可以按光标键来选择功能项。

(2)计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出。

(3)设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况。

(4)用户输入的答案不对时,提示错误,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。

(5)界面设计友好。

2.总体设计(模块结构图):

1

注:

当用户的正确率达到90%以上,并且做了五题以上后会自动调用混合运算。

3.详细设计(流程图):

2

三、程序分析:

1.总体上先分析这个系统的功能用途为测试小学生心算,以及适用的人群范围为小学生,进而将系统细分、划分为一些小的模块,从而将各个模块编写出相应的C语言程序代码构成一个完整的小学生心算CAI测试系统。

2.所编程序应具备很好的可行性操作,适合小学生的计算能力。

四、函数模块

1、程序模块组成:

主函数main()

随机取整函数randomize():

根据实参的赋值的函数可以产生出不同的整形值,进而的到不同的整形数相加。

声音函数:

1)提醒答题正确voidT():

根据用户答题是否真确若正确来提示,则给出更为生动有趣的声音提示。

2)提醒答题错误voidF():

根据用户答题是否真确来提示,若错误则给出更为生动有趣的警告提示。

菜单函数

1)加法运算函数aid():

函数从随机函数那获取二个数进行简单的加法运算,将所得的值赋值给一个整形变量。

2)减法运算函数minus():

函数从随机函数那获取二个数进行简单的减法运算,将所得的值赋值给一个整形变量。

乘法运算函数multiply:

函数从随机函数那获取二个数进行简单的加法运算,将所得的值赋值给一个整形变量。

除法运算函数divide():

函数从随机函数那获取二个数进行简单的除法运算,将所得的值赋值给一个整形变量。

混合运算函数mix():

函数从随机函数那获取二个数进行简单的四则混合运算,将所得的值赋值给一个整形变量。

退出函数voidout():

根据用户所选键来进入此函数。

输入年级函数intgrade():

根据用户的年级的大小来返还一个具体值,进而来决定运算的难易程度。

输入题量函数intmany():

根据用户所输入的题量大小来来得到一个具体的值,进而来决心算真确率。

清屏函数clrscr():

清除屏幕上所有的垃圾文件。

答题正确率函数voidzql():

根据用户所输入的题量、所有答对题目的数目、以及时间函数所返回的时间值,来计算用户的答题正确率。

2、函数的功能:

随机取整函数:

给出比较简单的数字,供用户进行运算。

提醒答题正确:

若用户答题正确,发出声音。

提醒答题错误:

若用户答题错误,发出不同的声音以示警报。

加法运算函数:

单独进行加法运算。

减法运算函数:

单独进行减法运算。

乘法运算函数:

单独进行乘法运算。

除法运算函数:

单独进行除法运算。

混合运算函数:

以固定混合运算公式进行运算。

退出函数:

退出菜单并显示图形及退出系统操作提示。

输入年级函数:

输入年级,决定出题的难度。

输入题量函数:

输入想做题目的数量,便于计算正确率和答题速度。

清屏函数:

清理屏幕。

答题正确率函数:

计算答题正确率,以便提示用户是否进入混合运算。

五、调试分析:

(1)测试数据:

a)进入菜单后,系统会提示选择1,2,3,4,0进行下一步操作,包括加法、减法、乘法、除法、退出操作。

b)系统会提示进行下一步操作。

c)选择想要进行的规定项目完成后,系统会告知成绩,按“0”退出。

(2)程序调试中出现的问题:

用户界面不够人性化,经过对菜单的修改及对操作执行后系统询问的完善使该系统更人性化。

六、总体设计方案

1程序说明及所达到的要求:

●用户可以通过按相应的数字键进入相应的心算练习。

●计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出,只需按T键。

●设计的系统完全适合用户,除法考虑到小学生的水平问题,只出现整除情况。

●用户输入的答案不对时,计算机会发出声音,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。

2运算模块之间的算法:

加法运算函数aid():

函数从随机函数那获取二个数a,b进行简单的加法运算,将所得的值赋值给一个整形变量c。

(b为年级)

如程序:

a=g*g*N+random(N);

b=g*N+random(N);

c=a+b;

减法运算函数minus():

函数从随机函数那获取二个数a,b进行简单的减法运算,将所得的值赋值给一个整形变量c。

(b为年级)

如程序:

a=g*g*N+random(N);

b=g*N+random(N);

if(a

{t=a;a=b;b=t;

}

c=a-b;

乘法运算函数multiply:

函数从随机函数那获取二个数a,b进行简单的加法运算,将所得的值赋值给一个整形变量c。

(b为年级)

如程序:

a=g*N+random(N);

b=N+random(N);

c=a*b;

除法运算函数divide():

函数从随机函数那获取二个数a,b进行简单的除法运算,将所得的值赋值给一个整形变量c。

(b为年级)

如程序:

a=N+random(N);

b=g*N+random(N);

c=a*b;d=c/a;

混合运算函数:

函数从随机函数那获取六个数a,b,c,d,g,j进行简单的加减乘除运算,将所得的值赋值给一个整形变量k进而k判断的值是否为零。

如程序:

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;

七、调试分析:

1概要:

程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。

如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。

如果程序能够基本正确的运行,可考虑增加若干基本的容错功能;另外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。

2数据测试:

首先准备输入某一运算级代码、如输入‘1‘则会在屏幕上显示出“欢迎进入加法运算”(若输入其他超出范围的数则系统又会回到主菜单从心开始输入。

)然后屏幕会提示你输入你的年级数。

进而系统会根据你的年级数用系统随机函数决定你的难易程度。

a)进入菜单后,系统会提示选择1,2,3,4,0进行下一步操作,包括加法、减法、乘法、除法、退出操作。

b)系统会提示进行下一步操作。

c)选择想要进行的规定项目完成后,系统会告知成绩,按“0”退出。

3程序调试中出现的问题:

用户界面不够人性化,经过对菜单的修改及对操作执行后系统询问的完善使该系统更人性化。

4程序和排错。

为了便于查错、阅读,在设计该程序的时候我采用了结构化程序方法编辑,添加了尽可能多的注释,这为我后来的调试过程带来了很多方便。

在上机调试之前我对所编的程序作了纸面上的检查,先消灭一些低级错误,所谓的低级错误是指由于人为的输入不仔细等造成的,如{}没有搭配完整,漏写;号,拼写错误等,这些都是我们通过认真的态度在运行之前可以解决、避免的。

而且还可以减少机器时间。

往往一连串的错误是由于漏写或写错一个字符引起的。

经过仔细检查之后进行上机调试。

进行编译,如果在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正,再进行编译……如此反复,直到顺利通过编译和连接为止。

在本次实习过程中碰到的编译、连接的错误主要有:

1、缺少变量定义,定义位置不正确;

由于该程序相对来讲稍有些长,前后有些变量不容易联系起来,但是在错误信息的提示下一般还是很容易找到。

不过需要注意的是在定义的时候有些函数使用同样的变量名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。

为减少这样的错误我后来还是用不同的变量名来表示,结果引起的那些错误解决了。

2、语法错误;

大多的语法错误在通过书本参考下能够修改。

主要是平时看书不仔细、不太注意而产生的。

如没有注意具体数据使用是有一定的范围限定;过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将文件先打开,对打开的方式与使用的情况不太注意而造成不匹配;还有漏掉形参的定义是值不能传递等等。

这些语法错误有信息框的提示一般是能够排除的。

3、在注释的时候不能同我们平常做笔记一样随心所欲地爱写哪就写哪,这造成我最后本来已经编译成功的程序一下子又多了很多错误。

注释的时候,注释文字应写在一起中间不能有中断包含了c语言的语句,不然又引起错误格式不正确或是多了字符等。

这又让我学到了一点知识。

编译、连接的成功并不意味着程序的最终成功。

逻辑上的错误机器不易检查出来,这时需要对数据结果进行分析。

这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。

这也是本次程序编辑过程中碰到的最大的难题。

往往运行之后得不到另人满意的结果,此时解决的方法一则用“分段检查”的方法,在程序的不同位置设几个printf函数语句,输出有关变量的值,逐段往下检查,或用debug进行调试,对检查出的错误进行修改,当调试完毕将设置的printf都删去。

若在程序中找不到问题,则再来考虑算法是否逻辑严谨,再进行修改。

如此循环往复,直到最后程序运行成功。

在本次程序编辑过程中,我就是常遇到编译能通过,能够运行程序,但是总在输入、删除等操作完之后再想去看数据文件中存在的数据记录的时候,却一条记录也显示不出来,我怀疑是哪个对方对n变量的定义或使用出错了,于是在每个主要函数的操作过程中添加了printf语句用来显示n的变化,例如在执行某个函数前添加插入语句显示n的起始值,在执行完该个函数后再添加插入语句显示此时n的结果值,观察n的变化是否正确,如果错误了,也就说明该函数编写过程有错。

诸如这样的调试方法,不断缩小检查范围,最后将错误找到,进行修改。

所以到最后我找到了错误,及时改正,终于把程序完成了,一切功能显示正常。

以上是调试的全过程。

八、用户使用说明书

用户一旦进入程序就会弹出菜单,菜单显示:

1、Ifyouwanttoaddoperation,pleasepress'1':

(加法)

2、Ifyouwanttosubtractoperation,pleasepress'2':

(减法)

3、Ifyouwanttomultiplyoperation,pleasepress'3':

(乘法)

4、Ifyouwanttodivideoperation,pleasepress'4':

(除法)

5、Ifyouwanttoexitthisprogram,pleasepress'0':

(退出)

6、pleaseinputyourchoice:

(选择)

此时用户输入一个选择,程序将自动将用户的选择与所对应的函数进行匹配。

如果用户选择的是“1”,则自动进入加法,如果不想做加法了,则按“0”,退出程序,按其他的数字则接着做。

若不退出系统,当做了五题且准确率达到90%,则自动进入混合运算,并会告诉你做对了多少题,得了多少分。

做完10道题将结束本系统,并告诉用户得分。

九、总结及心得体会

C语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。

使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。

经过一周的C语言课程设计,我不但实践了课本的知识,还制作了自己的小程序,感觉自己对C语言有了更深入的了解。

在实践中,自己编程常会犯错误,并总结一些克服缺点的方法。

深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。

只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。

在设计程序的同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题、编程和动手能力,掌握了程序设计基本技能。

回顾起此次课程设计,至今我仍感慨颇多。

如;有时遇到了一个错误怎么找也找不到原因所在,找了老半天结果却是一个函数放错了地方所致,有时一个功能不知道怎么实现找这个、找那个。

有所编到最后一运行却告诉我错误,那真的很烦人。

以前上课都是学一些最基本的东西,觉得很枯燥,而现在却可以将以前学的东西编出有实际价值的东西,这样自己非常的投入,有时候一编就是二三个小时坐在电脑前面,有时候连吃饭都忘了。

但现在回过头来看,还是挺有成就感的。

的确,面对一件新事物,从理论到实践,在整整一星期的日子里,可以说是苦多于甜,但是结果却是令我十分欣慰的。

因为我学到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且获得了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正掌握好所学知识,以便更好的为社会服务,从而提高自己的人生价值并实现自己的人生理想!

在设计的过程中遇到问题,可以说是数不胜数,这毕竟第一次做的,难免会遇到各种各样的问题。

此外,在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我一定把以前所学过的知识重新温习,古人说过:

温故而知新,不亦悦乎。

编程看起来似乎是一件很枯燥、乏味的事情,但是经历了这次程序的编辑之后,发现其实里面还是充满乐趣的,一旦真的钻研下去什么事情都可以放下,来认真研究。

通过实习我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对TurboC的使用技巧。

另外,实习中老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。

原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。

虽说捧着自己的成果很高兴,但成果背后总是付出很大的努力。

一个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇枪舌剑的辩论;有过相互鼓励的安慰。

一个多礼拜的时间我们经历了很多,也收获了很多。

与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。

十、附录

1、参考文献

[1]谭浩强。

C语言程序设计(第二版)。

清华大学出版社[M],199912

(1):

[2]《C语言程序设计教程》主编蒋清明黄晓宇湖南科学技术出版社

[3]《C语言程序设计上机指导与习题选解》主编蒋清明黄晓宇湖南科学技术出版社

4

2、源程序清单

#include"stdio.h"/*下定义*/

#include"conio.h"

展开阅读全文
相关资源
猜你喜欢
相关搜索

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1