小学生心算CAI系统

小学生心算CAI系统

小学生心算CAI系统

一、问题描述:
本系统可以用来进行单独的的加、减、乘、除心算练习,也可综合心算的速度与正确率进行测试。当用户在进行简单的四则运算时运算速度和正确率都较高时,可以进入四则混合运算,借此来进一步提高自己的心算能力。
二、功能描述:
1.用户可以通过两种方法来选择功能,既可以按相应的数字键进入相应的心算练习,也可以按光标键来选择功能项。
2.计算机自动出题,用户进入每项练习时,屏幕上会显示用户所做的相应的题数,如果不想继续可以随时退出,只需按ESC键。
3.设计的系统完全适合用户,比如除法时考虑到小学生的水平问题,只允许出现整除情况。
4.用户输入的答案不对时,计算机会发出声音报警,用户输入的结果如果连续两次不对,计算机会自动给出正确答案,供用户参考。
5.界面设计友好。
三、算法提示:
1.用简单的程序设计方法
2.一定的窗口设计技巧
3.简单的数据类型
四、测试数据:
计算机随机产生
五、其它:
对该系统有兴趣的同学可在实现系统基本功能后完善系统其它功能。

如何插入一段漂亮的代码片

#include “stdio.h”
#include “math.h”
#include “stdlib.h”
#include “windows.h”
#include “conio.h”
void add();
void minus();
void multiply();
void divide();
void mix();
int amount();
void grow(int a,int b);
void warn();
int main(){
int choice=-1;
while(choice){
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. [X]乘法运算 4. [+]除法运算 **\n");
printf (" ** **\n");
printf (" ** **\n");
printf (" ** 5.[士]混合运算 6. [0]退出系统 **\n");
printf (" @@ @@\n");
printf ("*******************************************\n");
printf("\n");
printf("\n请选择菜单项目: “);
scanf(”%d",&choice);
switch(choice){
case 0:return 0;
case 1:add();break;
case 2:minus();break;
case 3:multiply();break;
case 4:divide();break;
case 5:mix();break;
default:printf(“input error,请重新输入选项!”);
}
}
}
int amount(){
int amount;
printf(“请输入您想要做的题目个数:”);
scanf("%d",&amount);
return amount;
}
void warn(){
Beep(523,500);
Beep(587,500);
Beep(659,500);
}

//加法
void add(){
printf (" *****************************************\n");
printf (" ****** <<欢迎来到加法运算训练>> *****\n");
printf (" *******************\n");
int a,b,c,d,sum=0,r=0,num=amount();
char x;
for(int i=0;i<num;i++){
a=rand()%100;
b=rand()%100;
c=a+b;
printf(“请输入计算结果(退出请输入任意数字后回车再按键ESC):%d+%d=”,a,b);
scanf("%d",&d);
x=getch();
if(x27) break;
if(c
d){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
printf(“您答错了!!!还有一次机会\n”);
printf(“请输入计算结果(退出请输入任意数字后回车按再键ESC):%d+%d=”,a,b);
scanf("%d",&d);
x=getch();
if(x27) break;
if(c
d){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
sum++;
printf("
| sorry,你已经答错了两次 |
\n");
printf(“正确答案:%d+%d=%d\n”,a,b,c);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}
}
}
grow(sum,r);
}
//减法
void minus(){
printf (" *****************************************\n");
printf (" ****** <<欢迎来到减法运算训练>> *****\n");
printf (" *******************\n");
int a,b,c,d,sum=0,r=0,num=amount();
char x;
for(int i=0;i<num;i++){
a=rand()%100;
b=rand()%100;
if(a<b){
int t;
t=b;b=a;a=t;
}
c=a-b;
printf(“请输入计算结果(退出请输入任意数字后回车再按键ESC):%d-%d=”,a,b);
scanf("%d",&d);
x=getch();
if(x27) break;
if(c
d){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
printf(“您答错了!!!还有一次机会\n”);
printf(“请输入计算结果(退出请输入任意数字后回车按再键ESC):%d-%d=”,a,b);
scanf("%d",&d);
x=getch();
if(x27) break;
if(c
d){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
sum++;
printf("
| sorry,你已经答错了两次 |
\n");
printf(“正确答案:%d-%d=%d\n”,a,b,c);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}
}
}
grow(sum,r);
}
//乘法
void multiply(){
printf (" *****************************************\n");
printf (" ****** <<欢迎来到乘法运算训练>> *****\n");
printf (" *****************\n");
int a,b,c,d,sum=0,r=0,num=amount();
char x;
for(int i=0;i<num;i++){
a=rand()%10;
b=rand()%10;
c=ab;
printf("请输入计算结果(退出请输入任意数字后回车再按键ESC):%d
%d=",a,b);
scanf("%d",&d);
x=getch();
if(x27) break;
if(c
d){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
printf(“您答错了!!!还有一次机会\n”);
printf("请输入计算结果(退出请输入任意数字后回车按再键ESC):%d
%d=",a,b);
scanf("%d",&d);
x=getch();
if(x27) break;
if(c
d){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
sum++;
printf("
| sorry,你已经答错了两次 |
\n");
printf("正确答案:%d
%d=%d\n",a,b,c);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}
}
}
grow(sum,r);
}
//除法
void divide(){
printf (" *****************************************\n");
printf (" ****** <<欢迎来到除法运算训练>> *****\n");
printf (" *******************\n");
int a,b,c,d,sum=0,r=0,num=amount();
char x;
for(int i=0;i<num;i++){
a=rand()%10;
b=rand()%10;
c=a*b;
printf(“请输入计算结果(退出请输入任意数字后回车再按键ESC):%d/%d=”,c,a);
scanf("%d",&d);
x=getch();
if(x27) break;
if(b
d){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
printf(“您打错了!!!还有一次机会\n”);
printf(“请输入计算结果(退出请输入任意数字后回车按再键ESC):%d/%d=”,c,a);
scanf("%d",&d);
x=getch();
if(x27) break;
if(b
d){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
sum++;
printf("
| sorry,你已经答错了两次 |
\n");
printf(“正确答案:%d/%d=%d\n”,c,a,b);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}
}
}
grow(sum,r);
}
//混合
void mix(){
printf (" *****************************************\n");
printf (" ****** <<欢迎来到四则混合运算训练>> *****\n");
printf (" ****************\n");
int a,b,c,d,e,f,answer=0,sum=0,r=0,num=amount();
char x;
for(int i=0;i<num;i++){
a=rand()%100;
b=rand()%100;
f=rand()%4;
e=rand()%4+1;
d=rand()%4;
c=fe;
if(a<b){
int t=b;b=a;a=t;
}
answer=c
d/e+a-b;
printf("请输入计算结果(退出请输入任意数字后回车再按键ESC):%d
%d/%d+%d-%d=",c,d,e,a,b);
scanf("%d",&f);
x=getch();
if(x27) break;
if(answer
f){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
printf(“您答错了!!!还有一次机会\n”);
printf("请输入计算结果(退出请输入任意数字后回车按再键ESC):%d
%d/%d+%d-%d=",c,d,e,a,b);
scanf("%d",&f);
x=getch();
if(x27) break;
if(answer
f){
sum++;
r++;
printf(“恭喜您答对了!!!继续加油\n”);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}else{
warn();
sum++;
printf("
| sorry,你已经答错了两次 |
\n");
printf("正确答案:%d
%d/%d+%d-%d=%d\n",c,d,e,a,b,answer);
printf("--------当前总共答数为:%d---------------答对题的个数为:%d--------------\n" ,sum,r);
}
}
}
grow(sum,r);
}
void grow(int a,int b){
float p;
p=(float)100*b/a;
if(p>75)
{ printf(“oh my God !您的正确率高达%.0f%%!!!\n”,p);
printf(“您是否想挑战四则混合运算???是请按0,任意键返回主菜单\n”);
char a=getch();
if(a==48) mix();
}else{
printf("-----本次答题已结束,您总共做题数:%d,正确答题数为:%d-----\n",a,b);
}
}

1.启动页面:

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610103312951.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYyMzc4MA==,size_16,color_FFFFFF,t_70)


2.选择某一项心算训练:
     ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610103348327.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYyMzc4MA==,size_16,color_FFFFFF,t_70)
图10  心算页面
3.正确率较高时,并按0选择去挑战四则混合运算:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610103356894.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYyMzc4MA==,size_16,color_FFFFFF,t_70)
图11  跳转页面

4.打错时发出警报声,打错两次给出正确答案:
   ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610103424997.png)
图11  答错页面

5.当正确率较低时:告知用户答题情况,并自动跳转回菜单函数:
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610103431178.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYyMzc4MA==,size_16,color_FFFFFF,t_70)
图11  正确率较低时返回菜单页面

6.答题过程中,按esc返回菜单。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610103436893.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYyMzc4MA==,size_16,color_FFFFFF,t_70)
图12  按esc返回菜单页面

7.按0退出心算训练系统:

 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610103444923.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYyMzc4MA==,size_16,color_FFFFFF,t_70)
图13  按0退出页面

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值