大一C語言第一次實驗:小學生教學系統


高級語言程序設計報告

 

打印版報告截止上交日期:201411 15

電子版報告發至2629610662@qq.com, 郵件標題寫明報告次數序號姓名

序號

34

姓名

許愷

照片

 

成績

 

E-MAIL及電話

18810556775

實習題目

第一次作業: 函數

  1. 七章實驗題之素數探求2-6
  2. 七章實驗題之小學生計算機輔助教學系統(用模塊化程序設計方法完成六章之任務6即可)
  3. 此2題單獨編程,即不在ACM系統中完成。
  4. 要求綜合運用本章所學內容(注釋、起名規則、縮進等)。

 

 

  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的一些語句和技巧不太了解,需要更加努力,總的來說還行,已達到內心的標准。加油!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM