高级语言程序设计报告
任务六
一、 代码及注释
//编辑人:许恺
//编辑题目:小学生教学系统
//时间: 12月2日
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int Add(int a);
int jianfa(int a);
int chengfa(int a);
int chufa(int a);
double pingjia(int d);
double pingjia1(int d);
int main()
{
int e,a,b,c,d,f,g=0;
do
{
for(e=1;e<=10;e++) //出十道题
{
srand(time(NULL));
b=rand()%4+1; //随机加减乘除
switch(b)
{
case 1:f=Add(a);
break;
case 2:f=jianfa(a);
break;
case 3:f=chengfa(a);
break;
case 4:f=chufa(a);
break;
}
if(f==1) g=g+10; //算总分和正确率
}
printf("%d %d%%\n",g,g);
}while(g<=75);
return 0;
}
int Add(int a) //加法运算块
{
int b,c,d;
srand(time(NULL));
b=rand()%10+1;
c=rand()%10+1;
d=b+c;
printf("%d+%d=?\n",b,c);
scanf("%d",&a);
if(a==d) //判断正误并返回数值
{
pingjia(d);
return 1;
}
else
{
pingjia1(d);
return 0;}
}
int jianfa(int a) //减法运算块
{
int b,c,d;
do //防负数抽取
{
srand(time(NULL));
b=rand()%10+1;
c=rand()%10+1;
}while(b<c);
d=b-c;
printf("%d-%d=?\n",b,c);
scanf("%d",&a);
if(a==d) //判断正误并返回数值
{pingjia(d);
return(1);}
else
{
pingjia1(d);
return 0;}
}
int chengfa(int a)
{
int b,c,d,e;
srand(time(NULL));
b=rand()%10+1;
c=rand()%10+1;
d=b*c;
printf("%d*%d=?\n",b,c);
scanf("%d",&a);
if(a==d) //判断正误并返回数值
{pingjia(d);
return 1;
}
else
{
pingjia1(d);
return 0;}
}
int chufa(int a)
{
int b,c,d,e;
do //防除不尽抽取
{
srand(time(NULL));
b=rand()%10+1;
c=rand()%10+1;
}while(b<c||b%c!=0);
d=b/c;
printf("%d/%d=?\n",b,c);
scanf("%d",&a);
if(a==d) //判断正误并返回数值
{pingjia(d);
return 1;
}
else
{
pingjia1(d);
return 0;}
}
double pingjia(int d) //赞扬的评价系统
{
srand(time(NULL));
d=rand()%4+1;
switch(d)
{
case 1:printf("Very good!\n");
break;
case 2:printf("Excellent!\n");
break;
case 3:printf("Nice work!\n");
break;
case 4:printf("Keep up the good work!\n");
break;
}
}
double pingjia1(int d) //做错了的评价系统
{
srand(time(NULL));
d=rand()%4+1;
switch(d)
{
case 1:printf("No.Please try again.\n");
break;
case 2:printf("Wrong.Try once more.\n");
break;
case 3:printf("Don't give up!\n");
break;
case 4:printf("Not correct.Keep trying.\n");
break;
}
}
二、 运行结果贴图
三、 设计及调试过程中遇到的问题及解决方案
遇到了有关switch语句和随机数不会使用的情况,主要是书看的少,经过看书之后已解决。另外,还犯了for语句没有赋初值的错误,被波波老师纠正,也已改正。一开始在主函数中连续使用if使程序不美观,看书后改用switch.还有函数命名方面实在恶心,由于本人英语水平有限,目前还未解决。
四、 心得体会和自我对程序的评价
做事不要拖延,看起来很难,当走出第一步,就可以用复制粘贴去跑了,程序基本完整美观最大缺憾就是交的时间太晚,其实说的是系统,也就那么回事,以后几百行的程序也不在话下,用心去编,都没问题。但是对c的一些语句和技巧不太了解,需要更加努力,总的来说还行,已达到内心的标准。加油!!