大一C语言第一次实验:小学生教学系统

高级语言程序设计报告

  1. 你的代码、注释及运行结果贴图。
  2. 设计及调试过程遇到的问题及解决方案。
  3. 心得体会和自我对程序的评价。

任务六

一、 代码及注释

//编辑人:许恺

//编辑题目:小学生教学系统

//时间: 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的一些语句和技巧不太了解,需要更加努力,总的来说还行,已达到内心的标准。加油!!

永不止步步 发表于02-03 10:13 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号