小学生数学测试软件C语言课程设计.docx
《小学生数学测试软件C语言课程设计.docx》由会员分享,可在线阅读,更多相关《小学生数学测试软件C语言课程设计.docx(30页珍藏版)》请在冰豆网上搜索。
小学生数学测试软件C语言课程设计
C语言课程设计
设计期限2013年6月17开始
至2013年6月20结束
系别信息管理与信息系统
专业班级
学生姓名学号
指导教师
主要内容有:
[问题描述]
,
小学生数学测试软件的编写
[基本设计要求],
1)可选择题型(+,-,*,/);
2)可选择每次答题的个数;
3)随机生成两个数进行运算;
4)每次在输入答案后应判断对错,若答案错误,应给出正确答案;
5)给出统计结果。
注:
根据课程设计的基本要求,针对几点进行了改进,大体改进如下,具体改进详见程序。
1)可选择类型有加、减、乘、混合运算;
2)可选择每次答题的个数;
3)随机生成两个或三个数进行运算;
4)每次在输入答案后应判断对错,若答案错误,应给出正确答案;
5)给出统计结果,包括正确的个数和分数;
6)根据分数的情况给出不同的建议
[系统分析],
程序中包括头文件#include、#include、#include、#include包函的函数。
定义子函数intstyle()来选择测试类型,定义子函数voidjia(),voidjian(),voidcheng(),voidhun()分别进行加、减、乘、混合运算。
定义子函数voidxiao()用于成绩在80-100之间时生成两个笑脸,子函数voidwu()用于成绩在60-80之间时生成两个表情,子函数voidku()用于成绩少于60时生成两个哭脸。
上述三个子函数的使用目的在于使软件在使用时增加使用者的兴趣。
[流程图],
开始
菜单选择输出,输入num
Switch语句选择操作
进入加法运算
进入减法运算
进入乘法运算
num=1
num=2
num=3
进入混合运算
结束程序
num=4
num=5
选择难度
输入题目量
K1,k2,k3,k4
输出题目
输入答案
判断答案
正确
正确个数++
错误
程序结束
输出正确题数和分数
判断是否结束程序
是
否
循环题数次
[程序代码],
#include
#include
#include
#include
intstyle();
voidxiao();
voidwu();
voidku();
voidjia();
voidjian();
voidcheng();
voidhun();
voidmain()
{
for(;;)
{
switch(style())
{
case1:
jia();
break;
case2:
jian();
break;
case3:
cheng();
break;
case4:
hun();
break;
case5:
printf("欢迎再次使用,再见\n");
exit(0);
}
}
}
voidxiao()
{
intx1,x2;
chardiamond1[][30]={{'','','*','','','','','','','','*','','','','','','','','','*','','','','','','','','*','',''},
{'*','','','','*','','','','*','','','','*','','','','','*','','','','*','','','','*','','','','*'},
{'','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''},
{'','','','','*','','','','*','','','','','','','','','','','','','*','','','','*','','','',''},
{'','','','','','','*','','','','','','','','','','','','','','','','','*','','','','','',''}};
for(x1=0;x1<5;x1++)
{
for(x2=0;x2<30;x2++)
printf("%c",diamond1[x1][x2]);
printf("\n");
}
}
voidwu()
{
intg1,g2;
chardiamond2[][30]={{'','','*','','','','','','','','*','','','','','','','','','*','','','','','','','','*','',''},
{'*','','','','*','','','','*','','','','*','','','','','*','','','','*','','','','*','','','','*'},
{'','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''},
{'','*','','*','','','','','','*','','*','','','','','','','*','','*','','','','','','*','','*',''}};
for(g1=0;g1<4;g1++)
printf("%c",diamond2[g1][g2]);
printf("\n");
}
voidku()
{
intr1,r2;
chardiamond3[][18]={{'*','*','','','','*','*','','','','','*','*','','','','*','*'},
{'','','','','','','','','','','','','','','','','',''},{'','','','*','','','','','','','','','','','*','','',''},
{'','*','','','','*','','','','','','','*','','','','*',''}};
for(r1=0;r1<4;r1++)
{
for(r2=0;r2<18;r2++)
printf("%c",diamond3[r1][r2]);
printf("\n");
}
}
intstyle()
{
intnum;
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");
}
voidjia()
{
inta1,b1,ans1,zhen1,i1,k1,m1,n1,he;
intq1;
printf("\n");
printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");
printf("\n");
printf("1.简单2.适中3.复杂请选择题目的难易程度:
");
scanf("%d",&n1);
for(;;)
{
intright1=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;
}
}
}
}
voidjian()
{
inta2,b2,ans2,zhen2,i2,k2,m2,n2,cha;
intq2;
printf("\n");
printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");
printf("\n");
printf("1.简单2.适中3.复杂请选择题目的难易程度:
");
scanf("%d",&n2);
for(;;)
{
intright2=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;
}
}
}
}
voidcheng()
{
inta3,b3,ans3,zhen3,i3,k3,m3,n3,ji;
intq3;
printf("\n");
printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");
printf("\n");
printf("1.简单2.适中3.复杂请选择题目的难易程度:
");
scanf("%d",&n3);
for(;;)
{
intright3=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;
}
}
}
}
voidhun()
{
inta4,b4,c4,ans4,zhen4,i4,k4,m4,n4,guo;
intq4;
printf("\n");
printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");
printf("\n");
printf("1.简单2.适中3.复杂请选择题目的难易程度:
");
scanf("%d",&n4);
for(;;)
{
intright4=0,score4=0;
m4=(int)(pow(10,n4));
printf("请输入你想做的题目数量:
");
scanf("%d",&k4);
printf("\n");
printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-