【項目3-小學生數學考試系統】
1.做一個小學生考試系統,功能包括:
(1)利用隨機數出10道加法題;
(2)小學生用戶答題給出每道題的答案;
(3)對小學生的答題進行評判;
(4)計算出小學生答題正確率。
2. 進一步改進,提高題目質量。
要求(1)百以內算術:運算數、結果都在100以內!
(2)先隨機產生運算符后,針對各個運算產生運算數保證下列要求:對加法,兩數之和保證不大于100;對減法,被減數大于減數,且被減數不大于100;對乘法:兩數之積不超過100;對除法:被除數大于除數,且被除數不大于100,除數不許為0。
3. 建立一個文件,里面包含人工出好的題目。程序從文件中讀取題目。
參考解答:
1.做一個小學生考試系統,功能包括:
(1)利用隨機數出10道加法題;
(2)小學生用戶答題給出每道題的答案;
(3)對小學生的答題進行評判;
(4)計算出小學生答題正確率。
#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){  int sum=0;/*學生答對題目*/  int a,b,d,t; /*分別表示兩個運算數,正確答案及學生輸入的答案*/  int i;  srand(time(0)); /*初始化隨機種子*/  for(i=0; i<10; i++)  {    printf("第 %d 題: ", i+1);    a=rand()%10+1;    b=rand()%10+1;    d=a+b; /*得到正確答案*/    printf("%d+%d=", a, b);    scanf("%d", &t);    if(t==d) /*用戶輸入的答案與正確答案對比*/    {      printf("  right! /n");      sum++;    }    else      printf("  wrong! /n");  }  printf("共答對了%d道題,得分率%.2f/n", sum, 1.0*sum/10*100);  return 0;}進一步改進,提高題目質量。
要求(1)百以內算術:運算數、結果都在100以內!
(2)先隨機產生運算符后,針對各個運算產生運算數保證下列要求:對加法,兩數之和保證不大于100;對減法,被減數大于減數,且被減數不大于100;對乘法:兩數之積不超過100;對除法:被除數大于除數,且被除數不大于100,除數不許為0。
#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){  int sum=0;//學生得分  int a,b,d,t; //分別表示兩個運算數,正確答案及學生輸入的答案  int c; //運算:0-加 1-減 2-乘 3-除  int i;  srand(time(0)); //初始化隨機種子  for(i=0; i<10; i++)  {    printf("第 %d 題: ", i+1);    c=rand()%4;    do    {      a=rand()%100+1;      b=rand()%100+1;      if(a<b&&(c==1||c==3)) //給小學生的題,減和除運算保證大減小和大除以小      {        d=a;        a=b;        b=d;      }      if(c==3)//對于除法,調整被除數,以保證能整除        a=(a/b)*b;    }while((a+b)>=100||a*b>=100);    //以上滿足了題意的要求,但可以看到出題質量還可以優化    switch(c)    {    case 0://加法      d=a+b;      printf("%d+%d=", a, b);      break;    case 1: //減法      d=a-b;      printf("%d―%d=", a, b);      break;    case 2: //乘法      d=a*b;      printf("%d×%d=", a, b);      break;    case 3: //除法      d=a/b;      printf("%d÷%d=", a, b);      break;    }    scanf("%d", &t);    if(t==d)    {      printf("  right! /n");      sum++;    }    else      printf("  wrong! /n");  }  printf("共答對了%d道題,得分率%.2f/n", sum, 1.0*sum/10*100);  return 0;}3.建立一個文件,里面包含人工出好的題目。程序從文件中讀取題目。
#include <stdio.h>#include <stdlib.h>int main(){  int sum=0;//學生得分  int a,b,d,t; //分別表示兩個運算數,正確答案及學生輸入的答案  char c; //運算:0-加 1-減 2-乘 3-除  int i;  FILE *fp;  fp=fopen("excise.txt","r");  if(fp==NULL)  {    printf("cannot open file!/n");    exit(1);  }  for(i=0; i<10; i++)  {    fscanf(fp, "%d%c%d", &a, &c, &b);    printf("第 %d 題: ", i+1);    switch(c)    {    case '+'://加法      d=a+b;      printf("%d+%d=", a, b);      break;    case '-': //減法      d=a-b;      printf("%d―%d=", a, b);      break;    case '*': //乘法      d=a*b;      printf("%d×%d=", a, b);      break;    case '/': //除法      d=a/b;      printf("%d÷%d=", a, b);      break;    }    scanf("%d", &t);    if(t==d)    {      printf("  right! /n");      sum++;    }    else      printf("  wrong! /n");  }  printf("共答對了%d道題,得分率%.2f/n", sum, 1.0*sum/10*100);  fclose(fp);  return 0;}總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接
新聞熱點
疑難解答
圖片精選