小学生数学系统解读.docx

上传人:b****5 文档编号:8355318 上传时间:2023-01-30 格式:DOCX 页数:22 大小:132.45KB
下载 相关 举报
小学生数学系统解读.docx_第1页
第1页 / 共22页
小学生数学系统解读.docx_第2页
第2页 / 共22页
小学生数学系统解读.docx_第3页
第3页 / 共22页
小学生数学系统解读.docx_第4页
第4页 / 共22页
小学生数学系统解读.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

小学生数学系统解读.docx

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

小学生数学系统解读.docx

小学生数学系统解读

目录

一、系统开发的背景3

二、系统分析与设计4

(一)系统功能要求4

(二)系统模块结构设计4

三、系统的设计与实现6

(一)四则运算界面浏览:

printf()函数。

6

(二)运算符和数值:

sj()函数。

7

(三)随机函数srand((unsigned)time(NULL))9

(四)小学生成绩和等级。

10

四、系统测试12

(一)测试四则运算界面。

12

(二)运算符和数值测试。

13

(三)测试随机出10道题13

(四)测试小学生回答和分数13

(五)测试小学生回答的等级14

五、总结14

六、附件(代码、部分图表)14

 

小学生数学CAI系统

一、系统开发的背景

为了提高小学生的数学运算,让他们在数学学习过程中能够更好的学习四则运算,不光要学习一位数加减乘除一位数,还要学习二位数甚至三位数的练习,通过计算机来随机抽题,有一位数与一位数的四则运算,还有多位数与多位数的运算,以及多位数与一位数的运算,最后通过计算机输出成绩,再根据成绩输出小学生的等级,通过成绩可以了解小学生四则运算的水平.因此,我编写了小学生数学CAI系统.

在远古时代,我们的祖先已经可以利用一些其他的辅助东来进行计数了,他们可以用树枝和木棍来进行计数,再往以后,祖先发明了算筹,算盘来进行计数.但这个方法显得有些笨重.后来又发明了计算器,计算器可以计算以前没有计算的算式,也为人类提供了很好的帮助,但是这种计算的方法显得有的局限,一些比较大的数据没法计算,最后,人们又发明了电脑,电脑的发明又使人类的计数水平提高了一个档次,电脑的出现让我们不再在纸上面计算了,一些大型的数据处理交给计算机来处理,就连日常生活中的处理数据也要用到电脑或计算器,电脑或计算器以经离不开我们的生活,就连买个菜也要用到计算器来计算卖菜的钱,大量的依赖电脑或计算器已经让我们记不起用笔来计算.所以,我编写的小学生四则运算系统还是有很大的作用,它可以帮助小学生来提高数学成绩,该系统就像闯关的游戏一样,当小学生每回答对一题,系统便会给出相应的表扬语句,这可以激发小学生的兴趣,可以让小学生容易接受它,而不是有抵触心理,该题目给小学生三次机会,当小学生回答错误,给出鼓励语句,让小学生重新答,当三次全部没答对,系统会给出正确答案供小学生参考,最后给出成绩.

二、系统分析与设计

(一)系统功能要求

该系统为小学数学辅助教学系统,利用该系统可以锻炼小学生的数学运算能力。

它包括+、-、×、÷四则运算。

1.系统设置可以选择包含的运算符(+、-、×、÷)、数值的位数(1位,2位、3位)和运算符的个数。

2.系统自动随机地出10道题。

3.每出一题,小学生输入答案后,第一次答对,系统给出信息“完全正确,你非常聪明!

加10分”,总分+10分,显示下一题;若答错了,系统给出信息“你答错了,继续努力!

”,继续显示该题目,若第2次答对了,系统给出信息“答对了,你很棒!

加8分”,总分+8分,显示下一题;若答错了,系统给出信息“你答错了,继续努力!

”,继续显示该题目,若第3次答对了,系统给出信息“答对了,祝贺你!

加6分”,总分+6分,显示下一题;若答错了,系统给出信息“非常遗憾你又答错了,请继续做下一题。

本题的正确答案为……”,,继续显示下一题;

4.当答完所有的题给出总分。

(二)系统模块结构设计

通过对系统功能的分析,小学生数学CAI系统系统功能如图1所示。

图一小学生CPI数学系统功能图

通过上图的功能分析,把整个系统划分为7个模块:

1.四则运算界面浏览,该模块主要实现:

小学生CPI数学系统运行时有一个很有好的界面,通过输入*等符号以及欢迎使用小学生四则运算系统等实现页面,在运行的时候输出该界面,助助函数prinf()来实现;

2.运算符和数值模块,该模块主要实现:

小学生CPI数学统运算符和数值,小学生的运算符应该有四种,有加,减,乘,除四种运算符。

数值有一位数,两位数和三位数,借助函数sj()来实现;

3.随机出10道题模块,该模块主要实现:

让电脑可以随机的出10道加减乘除四则运算题,而不是用户自己输入,借助函数srand((unsigned)time(NULL));/*c语言随机数函数种子,用来实现随机产生10道随机数四则运算,允许随机给出的数在999以内.*/来实现。

4.小学生回答模块,该模块主要实现:

电脑随机出10道题,小学生可以回答问题。

借助if语句来实现;

5.小学生成绩模块,该模块主要实现:

小学生回答完,电脑可以给出分数,借助指针来实现。

6.小学生等级模块,该模块主要实现:

小学生回答完,电脑能给出等级,90分以上为“优秀”,75分以上为“良好”,60分以上为“合格”,60分以下为“不合格”.借助函数printf()实现。

三、系统的设计与实现

(一)四则运算界面浏览:

printf()函数。

首先输入printf函数,然后再输入欢迎进入小学生四则运算和目的功能的界面,流程图如图2所示。

开始

图二:

printf()流程图

该模块的具体代码如下所示。

printf("********************************************************************************\n");

printf("*******************************欢迎进入小学生算术四则运算测试程序***********************\n");

printf("***本程序是面向小学1~2年级学生,随机选择两个整数和加减乘除法形成算式要求学生解答******\n");

printf("***********************本程序目的是加强小学生的数学能力********************************\n");

printf("*****************************************************************************************\n");

(二)运算符和数值:

sj()函数。

通过sj()函数实现随机实现出10道四则运算,和随机产生数值。

流程图如图3所示。

开始

三:

sj函数流程图。

该模块的具体代码如下所示。

if(t->c==1)

{

t->b=sj(1000-(t->a));

t->add=(t->a)+(t->b);

}

if(t->c==2)

{

t->b=sj((t->a)+1);

t->add=(t->a)-(t->b);

}

if(t->c==3)

{

t->b=sj((t->a)+1);

t->add=(t->a)*(t->b);

}

if(t->c==4)

{

t->b=sj(t->a)%(t->b);

t->add=(t->a)/(t->b);

}

(三)随机函数srand((unsigned)time(NULL))

通过C语言的随机函数,让计算机随机的出10道题,让小学生回答。

流程图如图4所示。

图4:

随机函数srand((unsigned)time(NULL))流程图

(四)小学生成绩和等级。

小学生回答完以后,电脑给出成绩和等级。

流程图如图5所示。

 

图5:

小学生成绩和等级流程图

该模块的具体代码如下所示。

if(ad==t->add)

{

t->grade=10;

printf("完全正确,你非常聪明!

加10分\n");

}

else

{

printf("你答错了,继续努力!

\n");

if(t->c==1)printf("%d+%d=",t->a,t->b);

if(t->c==2)printf("%d-%d=",t->a,t->b);

if(t->c==3)printf("%d*%d=",t->a,t->b);

if(t->c==4)printf("%d/%d=",t->a,t->b);

scanf("%d",&ad);

if(ad==t->add)

{

t->grade=8;

printf("答对了,你很棒!

加8分\n");

}

else

{

printf("你答错了,继续努力!

\n");

if(t->c==1)printf("%d+%d=",t->a,t->b);

if(t->c==2)printf("%d-%d=",t->a,t->b);

if(t->c==3)printf("%d*%d=",t->a,t->b);

if(t->c==4)printf("%d/%d=",t->a,t->b);

scanf("%d",&ad);

if(ad==t->add)

{

t->grade=6;

printf("答对了,祝贺你!

加6分\n");

}

else

{

t->grade=0;

printf("非常遗憾你又答错了,请继续做下一题.\n");

printf("正确答案为%d\n",t->add);

}

}

}

}

}

voidmain()

{

inti,j,score=0;

charch;

structstructest[10];

srand((unsigned)time(NULL));

/*c语言随机数函数种子,用来实现随机产生10道随机数四则运算*/

printf("********************************************************************************\n");

printf("*******************************欢迎进入小学生算术四则运算测试程序***********************\n");

printf("***本程序是面向小学1~2年级学生,随机选择两个整数和加减乘除法形成算式要求学生解答******\n");

printf("***********************本程序目的是加强小学生的数学能力********************************\n");

printf("*****************************************************************************************\n");

for(i=0;i<10;i++)

{

ctm_i(&test[i]);

for(j=0;j

if(test[i].a==test[j].a&&test[i].b==test[j].b&&test[i].c==test[j].c)

ctm_i(&test[i]);

}

printf("准备好了吗?

按任意键进入");

scanf("%c",&ch);

for(i=0;i<10;i++)

tcm_i(&test[i],i);

printf("测试结束");

for(i=0;i<10;i++)

score=score+test[i].grade;

if(score>90)

printf("优秀\n!

");

elseif(score>75)

printf("良好\n!

");

elseif(score>60)

printf("合格!

\n");

else

printf("不合格!

\n");

printf("score=%d\n",score);

四、系统测试

(一)测试四则运算界面。

该四则运算界面是用printf()函数来输入,来输出四则运

算的界面和该四则运算的功能。

 

图6:

四则运算界面

(二)运算符和数值测试。

该运算符是实现四则运算(加,减,乘,除)和数值,随机选择四则运算和数值来进行运算。

图7:

运算符和数值测试

(三)测试随机出10道题

用c语言的随机函数让电脑随机出题,小学生回答C语言随机函数式是:

srand((unsigned)time(NULL))。

图8:

测试随机出10道题

(四)测试小学生回答和分数

电脑随机出题,小学生回答,回答完了以后电脑给出分数。

图9:

测试小学生回答和分数

(五)测试小学生回答的等级

小学生回答完以后,电脑根据小学生的分数给出小学生的等级。

图10:

测试小学生回答的等级

五、总结

系统完成了小学生四则运算计算的功能。

该功能可以提高小学生的数学成绩。

系统有不完善的地方,加法减法和乘法都能行,但是除法的算式不出来,随便写了三个数字后,系统出来的答案是随机数。

我的收获是如何使用c语言的随机函数,即输入该随机函数srand((unsigned)time(NULL)),电脑随机的出10道四则运算题,还学会了指针和结构体的用法,在以后的学习数据结构等专业课上,要学好结构体和指针。

六、附件(代码、部分图表)

程序代码如下:

#include

#include

#include

/*课题说明:

随机选择两个整数进行加减乘除运算,给出算式要求学生作答。

基本要求:

1)功能齐全:

界面操作灵活方便,至少实现以下基本功能:

1电脑随机出10道题,每题10分,程序结束时显示学生得分;允许随机给出的数在999以内.

2每道题学生有三次机会,当学生输入错误答案,提醒学生重新输入,如果三次都答错,则给出正确答案。

学生第一次答对,得10分,第二次答对,得8分,第三次答对,得6分。

3.90分以上为"优秀",75分以上为"良好",60分以上为"合格",60分以下为"不合格".

4.界面友好,有人性化.

5.有必要的注释*/

structstruc

{

inta;

intb;

intc;

intadd;

intgrade;

};

intsj(intn)

{

intt;

t=rand()%n;

returnt;

}

voidctm_i(structstruc*t)

/*定义指向结构体类型变量的指针变量*/

{

t->a=sj(1000);

t->c=sj(4);

if(t->c==1)

{

t->b=sj(1000-(t->a));

t->add=(t->a)+(t->b);

}

if(t->c==2)

{

t->b=sj((t->a)+1);

t->add=(t->a)-(t->b);

}

if(t->c==3)

{

t->b=sj((t->a)+1);

t->add=(t->a)*(t->b);

}

if(t->c==4)

{

t->b=sj(1000-(t->a));

t->add=(t->a)/(t->b);

}

t->grade=10;

}

voidtcm_i(structstruc*t,intn)

{

intad;

{

printf("===================================\n");

printf("现在进行第%d题\n",n+1);

printf("本题你总共有三次机会\n");

if(t->c==1)printf("%d+%d=",t->a,t->b);

if(t->c==2)printf("%d-%d=",t->a,t->b);

if(t->c==3)printf("%d*%d=",t->a,t->b);

if(t->c==4)printf("%d/%d=",t->a,t->b);

/*用来进行加减乘除运算*/

scanf("%d",&ad);

if(ad==t->add)

{

t->grade=10;

printf("完全正确,你非常聪明!

加10分\n");

}

else

{

printf("你答错了,继续努力!

\n");

if(t->c==1)printf("%d+%d=",t->a,t->b);

if(t->c==2)printf("%d-%d=",t->a,t->b);

if(t->c==3)printf("%d*%d=",t->a,t->b);

if(t->c==4)printf("%d/%d=",t->a,t->b);

scanf("%d",&ad);

if(ad==t->add)

{

t->grade=8;

printf("答对了,你很棒!

加8分\n");

}

else

{

printf("你答错了,继续努力!

\n");

if(t->c==1)printf("%d+%d=",t->a,t->b);

if(t->c==2)printf("%d-%d=",t->a,t->b);

if(t->c==3)printf("%d*%d=",t->a,t->b);

if(t->c==4)printf("%d/%d=",t->a,t->b);

scanf("%d",&ad);

if(ad==t->add)

{

t->grade=6;

printf("答对了,祝贺你!

加6分\n");

}

else

{

t->grade=0;

printf("非常遗憾你又答错了,请继续做下一题.\n");

printf("正确答案为%d\n",t->add);

}

}

}

}

}

voidmain()

{

inti,j,score=0;

intTime,end,start;

start=clock();

printf("%d",start);

structstructest[10];

srand((unsigned)time(NULL));

/*C语言随机函数,产生题目*/

printf("*******************************************************************************\n");

printf("*******************************欢迎进入小学生算术四则运算测试程序**************\n");

printf("***本程序是面向小学学生,随机选择两个整数和加减乘除法形成算式要求学生解答******\n");

printf("***********************本程序目的是加强小学生的数学能力************************\n");

printf("*******************************************************************************\n");

for(i=0;i<10;i++)

{

ctm_i(&test[i]);

for(j=0;j

if(test[i].a==test[j].a&&test[i].b==test[j].b&&test[i].c==test[j].c)

ctm_i(&test[i]);

}

for(i=0;i<10;i++)

tcm_i(&test[i],i);

printf("小学生四则运算测试结束!

\n");

for(i=0;i<10;i++)

score=score+test[i].grade;

if(score>=90)

{

printf("优秀!

\n");

}

elseif(score>=75)

{

printf("良好!

\n");

}

elseif(score>=60)

{

printf("合格!

\n");

}

else

{

printf("不合格!

\n");

}

printf("score=%d\n",score);

/*小学生回答问题的分数和等级*/

if(score>=60)

{

printf("祝贺你!

\n");

}

else

{

printf("继续努力,请重做!

\n");

for(i=0;i<10;i++)

{

ctm_i(&test[i]);

for(j=0;j

if(test[i].a==test[j].a&&test[i].b==test[j].b&&test[i].c==test[j].c)

ctm_i(&test[i]);

}

for(i=0;i<10;i++)

tcm_i(&test[i],i);

}

end=clock();

printf("%d\n",end);

Time=(end-start)/CLK_TCK;

printf("%d=(%d-%d)/%d\n",Time,end,start,CLK_TCK);

printf("%d\n",end-start);

printf("用时:

%d秒\n",Time);

/*小学生回答问题的时间*/

}

 

 

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

当前位置:首页 > 解决方案 > 工作计划

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

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