小学生数学测试软件-C语言课程设计
C语言课程设计
设计期限2013 年 6 月17 开始|
至2013 年 6 月20 结束
系别信息管理与信息系统
专业班级
学生姓名学号
指导教师
]
主要内容有:
[问题描述]
,
小学生数学测试软件的编写
[基本设计要求],
~
1) 可选择题型(+,-,*,/);
2) 可选择每次答题的个数;
3) 随机生成两个数进行运算;
4) 每次在输入答案后应判断对错,若答案错误,应给出正确答案;
5) 给出统计结果。
注:根据课程设计的基本要求,针对几点进行了改进,大体改进如下,具体改进详见程序。
1)可选择类型有加、减、乘、混合运算;
2)可选择每次答题的个数;
3)》
4)随机生成两个或三个数进行运算;
5)每次在输入答案后应判断对错,若答案错误,应给出正确答案;
6)给出统计结果,包括正确的个数和分数;
7)根据分数的情况给出不同的建议
[系统分析],
程序中包括头文件#include<>、#include<>、#include<>、#include<>包函的函数。定义子函数int style()来选择测试类型,定义子函数void jia(),void jian(),void cheng(),void hun()分别进行加、减、乘、混合运算。定义子函数void xiao()用于成绩在80-100之间时生成两个笑脸,子函数void wu()用于成绩在60-80之间时生成两个表情,子函数void ku()用于成绩少于60时生成两个哭脸。上述三个子函数的使用目的在于使软件在使用时增加使用者的兴趣。
《
·
[流程图] ,
#include<>
int style();
void xiao();
void wu();
void ku();
void jia();
void jian();
、
void cheng();
void hun();
void main()
{
for( ; ; )
{
switch(style())
{
)
case 1:
jia();
break;
case 2:
jian();
break;
case 3:
cheng();
;
break;
case 4:
hun();
break;
case 5:
printf("欢迎再次使用,再见\n");
exit(0);
}
$
}
}
void xiao()
{
int x1,x2;
char diamond1[][30]={{' ',' ','*',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ','*',' ',' '},
{'*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*'},
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
(
{' ',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' '}};
for(x1=0;x1<5;x1++)
{
for(x2=0;x2<30;x2++)
printf("%c",diamond1[x1][x2]);
printf("\n");
}
¥
}
void wu()
{
int g1,g2;
char diamond2[][30]={{' ',' ','*',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ','*',' ',' '},
{'*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*',' ',' ',' ','*'},
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ','*',' ','*',' ',' ',' ',' ',' ','*',' ','*',' ',' ',' ',' ',' ',' ','*',' ','*',' ',' ',' ',' ',' ','*',' ','*',' '}};
—
for(g1=0;g1<4;g1++)
printf("%c",diamond2[g1][g2]);
printf("\n");
}
void ku()
{
int r1,r2;
char diamond3[][18]={{'*','*',' ',' ',' ','*','*',' ',' ',' ',' ','*','*',' ',' ',' ','*','*'},
、
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},{' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' '},
{' ','*',' ',' ',' ','*',' ',' ',' ',' ',' ',' ','*',' ',' ',' ','*',' '}};
for(r1=0;r1<4;r1++)
{
for(r2=0;r2<18;r2++)
printf("%c",diamond3[r1][r2]);
printf("\n");
}
—
}
int style()
{
int num;
printf("\n");
printf(" -*-*-*-*-*目录-*-*-*-*-*-\n");
printf(" 选择加法题请按1\n");
printf(" 选择减法题请按2\n");
^
printf(" 选择乘法题请按3\n");
printf(" 选择混合题请按4\n");
printf(" 选择退出请按5\n");
printf(" -*-*-*-*-*-*-*-*-*-*-*-*-\n");
printf(" -*-*-请选择测试题类型,输入数字:");
scanf("%d",&num);
if(num>0&&num<6)
return(num);
[
else
printf(" -*-*-输入错误,请重新输入!\n");
}
void jia()
{
int a1,b1,ans1,zhen1,i1,k1,m1,n1,he;
int q1;
printf("\n");
¥
printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");
printf("\n");
printf("1.简单2.适中3.复杂请选择题目的难易程度:");
scanf("%d",&n1);
for( ; ; )
{
int right1=0,score1=0;
m1=(int)(pow(10,n1));
¥
printf("请输入你想做的题目数量:");
scanf("%d",&k1);
printf("\n");
printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");
printf("\n");
for(i1=0;i1 { srand(time(0)); : a1=rand()%m1; b1=rand()%m1; if(a1%3==0) { zhen1=a1+b1; printf(" %d. %d+%d=() 你的答案是:",i1+1,a1,b1); } if(a1%3==1) ) { he=a1+b1; zhen1=a1; printf(" %d. ()+%d=%d 你的答案是:",i1+1,b1,he); } if(a1%3==2) { he=a1+b1; ~ zhen1=b1; printf(" %d. %d+()=%d 你的答案是:",i1+1,a1,he); } scanf("%d",&ans1); if(ans1==zhen1) { printf("恭喜你,回答正确!\n"); right1++; … } else printf("很遗憾,回答错误!正确答案是%d,别灰心,继续努力!\n",zhen1); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); printf("\n"); } score1=(100*right1)/k1; printf("你答对了%d道题!\n",right1); . if (score1>=80&&score1<=100) { printf("你考了%d分,很不错,再接再厉哟!\n",score1); xiao(); n1++; if(n1==4) break; else ¥ { printf("你想挑战更高难度的题目吗是请按1,不是请按2:"); scanf("%d",&q1); if(q1==2) break; } } if(score1>=60&&score1<80) | { printf("你考了%d分,还不错,但不是特别理想,继续努力!\n",score1); wu(); if(n1=3) { printf("你想再来几题吗是请按1,不是请按2:"); scanf("%d",&q1); if(q1==2) - break; } else { printf("你想挑战更高难度吗是请按1,不是请按2:"); scanf("%d",&q1); if(q1==1) n1++; — else break; } } if(score1<60) { printf("你只考了%d分,成绩不理想,别灰心,继续努力! \n",score1); ku(); … if(n1!=3) { printf("你想再来几题吗是请按1,不是请按2:"); scanf("%d",&q1); if(q1==2) break; } } $ } } void jian() { int a2,b2,ans2,zhen2,i2,k2,m2,n2,cha; int q2; printf("\n"); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); — printf("\n"); printf("1.简单2.适中3.复杂请选择题目的难易程度:"); scanf("%d",&n2); for( ; ; ) { int right2=0,score2=0; m2=(int)(pow(10,n2)); printf("请输入你想做的题目数量:"); · scanf("%d",&k2); printf("\n"); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); printf("\n"); for(i2=0;i2 { srand(time(0)); a2=rand()%m2; — b2=rand()%m2; if(a2%3==0) { zhen2=a2-b2; printf(" %d. %d-%d=() 你的答案是:",i2+1,a2,b2); } if(a2%3==1) { | cha=a2-b2; zhen2=a2; printf(" %d. ()-%d=%d 你的答案是:",i2+1,b2,cha); } if(a2%3==2) { cha=a2-b2; zhen2=b2; ? printf(" %d. %d-()=%d 你的答案是:",i2+1,a2,cha); } scanf("%d",&ans2); if(ans2==zhen2) { printf("恭喜你,回答正确!\n"); right2++; } … else printf("很遗憾,回答错误!正确答案是%d,别灰心,继续努力!\n",zhen2); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); printf("\n"); } score2=(100*right2)/k2; printf("你答对了%d道题!\n",right2); if (score2>=80&&score2<=100) ) { printf("你考了%d分,很不错,再接再厉哟!\n",score2); xiao(); n2++; if(n2==4) break; else { 。 printf("你想挑战更高难度的题目吗是请按1,不是请按2:"); scanf("%d",&q2); if(q2==2) break; } } if(score2>=60&&score2<80) { 、 printf("你考了%d分,还不错,但不是特别理想,继续努力!\n",score2); wu(); if(n2=3) { printf("你想再来几题吗是请按1,不是请按2:"); scanf("%d",&q2); if(q2==2) break; ! } else { printf("你想挑战更高难度吗是请按1,不是请按2:"); scanf("%d",&q2); if(q2==1) n2++; else ( break; } } if(score2<60) { printf("你只考了%d分,成绩不理想,别灰心,继续努力!\n",score2); ku(); if(n2!=3) 【 { printf("你想再来几题吗是请按1,不是请按2:"); scanf("%d",&q2); if(q2==2) break; } } } " } void cheng() { int a3,b3,ans3,zhen3,i3,k3,m3,n3,ji; int q3; printf("\n"); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); printf("\n"); & printf("1.简单2.适中3.复杂请选择题目的难易程度:"); scanf("%d",&n3); for( ; ; ) { int right3=0,score3=0; m3=(int)(pow(10,n3)); printf("请输入你想做的题目数量:"); scanf("%d",&k3); — printf("\n"); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); printf("\n"); for(i3=0;i3 { srand(time(0)); a3=rand()%m3; b3=rand()%m3; … if(a3%3==0) { zhen3=a3*b3; printf(" %d. %d*%d=() 你的答案是:",i3+1,a3,b3); } if(a3%3==1) { ji=a3*b3; . zhen3=a3; printf(" %d. ()*%d=%d 你的答案是:",i3+1,b3,ji); } if(a3%3==2) { ji=a3*b3; zhen3=b3; printf(" %d. %d*()=%d 你的答案是:",i3+1,a3,ji); ~ } scanf("%d",&ans3); if(ans3==zhen3) { printf("恭喜你,回答正确!\n"); right3++; } else } printf("很遗憾,回答错误!正确答案是%d,别灰心,继续努力!\n",zhen3); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); printf("\n"); } score3=(100*right3)/k3; printf("你答对了%d道题!\n",right3); if (score3>=80&&score3<=100) { < printf("你考了%d分,很不错,再接再厉哟!\n",score3); xiao(); n3++; if(n3==4) break; else { printf("你想挑战更高难度的题目吗是请按1,不是请按2:"); < scanf("%d",&q3); if(q3==2) break; } } if(score3>=60&&score3<80) { printf("你考了%d分,还不错,但不是特别理想,继续努力!\n",score3); . wu(); if(n3=3) { printf("你想再来几题吗是请按1,不是请按2:"); scanf("%d",&q3); if(q3==2) break; } # else { printf("你想挑战更高难度吗是请按1,不是请按2:"); scanf("%d",&q3); if(q3==1) n3++; else break; $ } } if(score3<60) { printf("你只考了%d分,成绩不理想,别灰心,继续努力!\n",score3); ku(); if(n3!=3) { & printf("你想再来几题吗是请按1,不是请按2:"); scanf("%d",&q3); if(q3==2) break; } } } } ; void hun() { int a4,b4,c4,ans4,zhen4,i4,k4,m4,n4,guo; int q4; printf("\n"); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); printf("\n"); printf("1.简单2.适中3.复杂请选择题目的难易程度:"); . scanf("%d",&n4); for( ; ; ) { int right4=0,score4=0; m4=(int)(pow(10,n4)); printf("请输入你想做的题目数量:"); scanf("%d",&k4); printf("\n"); ~ printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); printf("\n"); for(i4=0;i4 { srand(time(0)); a4=rand()%m4; b4=rand()%m4; c4=rand()%m4; " if(a4%16==0) { zhen4=a4+b4+c4; printf(" %d. %d+%d+%d=() 你的答案是:",i4+1,a4,b4,c4); } if(a4%16==1) { guo=a4+b4+c4; ~ zhen4=a4; printf(" %d. ()+%d+%d=%d 你的答案是:",i4+1,b4,c4,guo); } if(a4%16==2) { guo=a4+b4+c4; zhen4=b4; printf(" %d. %d+()+%d=%d 你的答案是:",i4+1,a4,c4,guo);) } if(a4%16==3) { guo=a4+b4+c4; zhen4=c4; printf(" %d. %d+%d+()=%d 你的答案是:",i4+1,a4,b4,guo); } if(a4%16==4) > { zhen4=a4+b4-c4; printf(" %d. %d+%d-%d=() 你的答案是:",i4+1,a4,b4,c4); } if(a4%16==5) { guo=a4+b4-c4; zhen4=a4; ~ printf(" %d. ()+%d-%d=%d 你的答案是:",i4+1,b4,c4,guo); } if(a4%16==6) { guo=a4+b4+c4; zhen4=b4; printf(" %d. %d-()+%d=%d 你的答案是:",i4+1,a4,c4,guo); } · if(a4%16==7) { guo=a4+b4+c4; zhen4=c4; printf(" %d. %d+%d-()=%d 你的答案是:",i4+1,a4,b4,guo); } if(a4%16==8) { [ zhen4=a4*b4+c4; printf(" %d. %d*%d+%d=() 你的答案是:",i4+1,a4,b4,c4); } if(a4%16==9) { guo=a4*b4+c4; zhen4=a4; printf(" %d. ()*%d+%d=%d 你的答案是:",i4+1,b4,c4,guo);( } if(a4%16==10) { guo=a4*b4+c4; zhen4=b4; printf(" %d. %d*()+%d=%d 你的答案是:",i4+1,a4,c4,guo); } if(a4%16==11) ) { guo=a4*b4+c4; zhen4=c4; printf(" %d. %d*%d+()=%d 你的答案是:",i4+1,a4,b4,guo); } if(a4%16==12) { zhen4=a4*b4-c4; … printf(" %d. %d*%d-%d=() 你的答案是:",i4+1,a4,b4,c4); } if(a4%16==13) { guo=a4*b4-c4; zhen4=a4; printf(" %d. ()*%d-%d=%d 你的答案是:",i4+1,b4,c4,guo); } $ if(a4%16==14) { guo=a4*b4-c4; zhen4=b4; printf(" %d. %d*()-%d=%d 你的答案是:",i4+1,a4,c4,guo); } if(a4%16==15) { … guo=a4*b4+c4; zhen4=c4; printf(" %d. %d*%d-()=%d 你的答案是:",i4+1,a4,b4,guo); } scanf("%d",&ans4); if(ans4==zhen4) { printf("恭喜你,回答正确!\n"); — right4++; } else printf("很遗憾,回答错误!正确答案是%d,别灰心,继续努力!\n",zhen4); printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"); printf("\n"); } score4=(100*right4)/k4; 、 printf("你答对了%d道题!\n",right4); if (score4>=80&&score4<=100) { printf("你考了%d分,很不错,再接再厉哟!\n",score4); xiao(); n4++; if(n4==4) break; ~ else { printf("你想挑战更高难度的题目吗是请按1,不是请按2:"); scanf("%d",&q4); if(q4==2) break; } } ) if(score4>=60&&score4<80) { printf("你考了%d分,还不错,但不是特别理想,继续努力!\n",score4); wu(); if(n4=3) { printf("你想再来几题吗是请按1,不是请按2:"); scanf("%d",&q4); ¥ if(q4==2) break; } else { printf("你想挑战更高难度吗是请按1,不是请按2:"); scanf("%d",&q4); if(q4==1) n4++; else break; } } if(score4<60) { printf("你只考了%d分,成绩不理想,别灰心,继续努力! \n",score4); ku(); if(n4!=3) { printf("你想再来几题吗是请按1,不是请按2:"); scanf("%d",&q4); if(q4==2) break; } } } } [测试数据], 一、软件界面 图一:选择测试类型 图二:选择难易程度 图三:选择题目数量 二、答题界面 图一:给出题目,写出答案,选择加法