你是不是本科大一学C语言的,这是我期末课程设计的一个选题之一,也是十几个课题里最最简单的了,不用链表,指针,结构体,什么都不用,要求挺低只要耐心一点就能完成。
因为我最终没有抽到这个最简单的题,提前先完成了,也没有精细地去琢磨,但大体上是没有问题的。
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define N 100//练习题总数量,加减乘数随机分配,理论概率值为1/4.
void welecome();
void choose();
void teach();
void test();
void statistics();
float g[5];
int n1=0,n2=0,n3=0,n4=0;
int main()
{
welecome();
choose();
return 0;
}
void welecome()
{
printf("**********\n");
printf("欢迎来到“100以内加减乘除”学习软件!\n祝您的学习快乐而充实!\n制作人:蔡佳昊1651312\n");
printf("**********\n请选择你想要进入的模块(输入小写字母a、b、c,并以回车键完成选择):\n");
}
void choose()
{
char i;
printf("a 缤纷多彩的学习\nb 富有挑战的测试\nc 成绩统计与分析\n");
printf("**********\n");
scanf("%c",&i);
if (i=='a')
{
teach();
}
else if(i=='b')
{
test();
}
else if(i=='c')
{
statistics();
}
else
{
system("cls");
printf("非法输入!请重新输入正确数字以选择!\n");
choose();
}
}
void teach()
{
int I;
system("cls");
void plus();
void minus();
void time();
void devide();
plus();
minus();
time();
devide();
printf("\n输入1继续练习,输入其他字符回到上级菜单。\n");
scanf("%d",&I);
if (I==1)
test();
else
{
system("cls");
choose();
}
}
void plus()
{
printf("****加法****\n");
printf("
2
3\n");
printf("
+ 3
8\n");
printf("_____________\n");
printf("
6
1\n");
}
void minus()
{
printf("****减法****\n");
printf("
3
8\n");
printf("
- 1
9\n");
printf("_____________\n");
printf("
1
9\n");
printf("输入'回车'以继续!\n");
getchar();
}
void time()
{
printf("****乘法****\n");
printf("需要用到如下九九乘法表:\n");
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d ",i,j,i*j);
}
printf("\n");
}
printf("输入'回车'以继续!\n");
getchar();
printf("例如:\n");
printf("
2
3\n");
printf("
X
3\n");
printf("_____________\n");
printf("
6
9\n");
printf("输入'回车'以继续!\n");
getchar();
}
void devide()
{
printf("****除法****\n");
printf("
5\n");
printf("
_________\n");
printf(" 7|
3
5\n");
printf("
3
5\n");
printf("
_________\n");
printf("
0\n\n");
printf("输入'回车'以继续!\n");
getchar();
printf("
9.
8
5……\n");
printf("
_____________\n");
printf(" 7|
6
9.
0
0\n");
printf("
6
3\n");
printf("
______________\n");
printf("
6
0\n");
printf("
5
6\n");
printf("
______________\n");
printf("
4
0\n");
printf("
3
5\n");
printf("
:\n");
printf("
:\n");
printf("
:\n");
}
void test()
{
system("cls");
printf("\n*************\n");
printf("开始练习吧!");
srand(time(0));
int goal=0,goal1=0,goal2=0,goal3=0,goal4=0,x,y,z,w,c,i,j;
for(i=0;i<N;i++)
{
x=rand()%50+1;
y=rand()%50+1;
c=rand()%4+1;
if (c==1)
{
n1++;
z=x+y;
printf("%d+%d= \n",x,y);
scanf("%d",&w);
if (z==w)
{
printf("真棒,正确!\n");
goal1+=3;
}
else
printf("很遗憾,你错了!正确答案是%d\n",z);
goal=goal1+goal2+goal3+goal4;
printf("输入数字1继续练习,输入数字0返回上级菜单!\n");
scanf("%d",&j);
if(j==1)
continue;
else
{
break;
system("cls");
choose();
}
}
else if(c==2)
{
n2++;
z=x-y;
printf("%d-%d= \n",x,y);
scanf("%d",&w);
if (z==w)
{
printf("真棒,正确!\n");
goal2+=3;
}
else
printf("很遗憾,你错了!正确答案是%d\n",z);
goal=goal1+goal2+goal3+goal4;
printf("输入数字1继续练习,输入数字0返回上级菜单!\n");
scanf("%d",&j);
if(j==1)
continue;
else
{
break;
system("cls");
choose();
}
}
else if(c==3)
{
n3++;
z=x*y;
printf("%d*%d= \n",x,y);
scanf("%d",&w);
if (z==w)
{
printf("真棒,正确!\n");
goal3+=3;
}
else
printf("很遗憾,你错了!正确答案是%d\n",z);
goal=goal1+goal2+goal3+goal4;
printf("输入数字1继续练习,输入数字0返回上级菜单!\n");
scanf("%d",&j);
if(j==1)
continue;
else
{
break;
system("cls");
choose();
}
}
else if(c==4)
{
n4++;
z=x/y;
printf("%d/%d= \n",x,y);
scanf("%d",&w);
if (z==w)
{
printf("真棒,正确!\n");
goal4+=3;
}
else
printf("很遗憾,你错了!正确答案是%d\n",z);
goal=goal1+goal2+goal3+goal4;
printf("输入数字1继续练习,输入数字0返回上级菜单!\n");
scanf("%d",&j);
if(j==1)
continue;
else
{
break;
system("cls");
choose();
}
}
}
g[4]=goal;
g[0]=goal1;
g[1]=goal2;
g[2]=goal3;
g[3]=goal4;
printf("%d道练习完成,回车以继续查看成绩统计分析。\n**********\n",N);
getchar();
statistics();
}
void statistics()
{
if((n1==0)&&(n2==0)&&(n3==0)&&(n4==0))
{
printf("您还没有完成过练习,没有成绩。\n输入数字1直接进入练习模块,输入数字2进入上级菜单\n");
int i;
scanf("%d",&i);
if (i==1)
{
system("cls");
test();
}
else if(i==2)
{
system("cls");
choose();
}
}
else
printf("\n****成绩统计分析****\n");
printf("您%d道计算题的总分为(每题三分):%f\n",N,g[4]);
printf("您在加法运算中的平均得分为:%f(共%d题)\n",g[0]/n1,n1);
printf("您在减法运算中的平均得分为:%f(共%d题)\n",g[1]/n2,n2);
printf("您在乘法运算中的平均得分为:%f(共%d题)\n",g[2]/n3,n3);
printf("您在除法运算中的平均得分为:%f(共%d题)\n",g[3]/n4,n4);
printf("输入数字1返回上级菜单,输入其他字符结束本次学习!\n");
int i;
scanf("%d",&i);
if(i==1)
{
system("cls");
choose();
}
}