1. 程式人生 > >四則運算自動生成

四則運算自動生成

一次 std max img 獲得 int flush amp 修復

一、題目要求

1、能夠自動生成四則運算練習題
2、可以定制題目數量
3、用戶可以選擇運算符
4、用戶設置最大數(如十以內、百以內等)
5、用戶選擇是否有括號、是否有小數
6、用戶選擇輸出方式

二、編譯工具

CodeBlocks

三、結對夥伴

姓名 班級 代碼地址
牛斌帥 1605班 https://git.dev.tencent.com/INBSI/sizeyunsuanti.git
房旭 1604班 https://git.dev.tencent.com/dtid_85494e5bcaedfaa6/jieduibianchengsizeyunsuan.git

四、編程過程

在編程過程中我們也遇到了種種問題並進行解決

1、將括號判斷語句的位置進行了移動,解決了混合運算需要每次進行判斷括號的bug;

解決前:

技術分享圖片

解決後:

技術分享圖片

2,解決隨機數小數只是0.xx而無法生成x.xx的形式問題。

解決前:

技術分享圖片

解決後:

技術分享圖片

3、解決最大值只能為10/100的不夠靈活問題。

解決前:

   printf("設置最大數(若為0,最大數為10,若不是,最大數為100):");
   scanf("%d",&max);
   printf("是否含有小數(0不是,其他數是):");
   scanf("%d",&cent);
   printf("選擇練習運算的運算符(1為加,2為減,3為乘,4為除,5為混合運算(含括號或不含括號)):");
   scanf("%d",&symbol);
   printf("是否輸出到文件中:(0為不輸出到文件中,否則為輸出到文件中)");
   scanf("%d",&file);


   for(int i=0;i<practice_num;i++)
   {
       fflush(stdin);  //清除文件緩沖區,文件以寫方式打開時將緩沖區內容寫入文件
       if(cent==0)
       {
          if(max==0)
          {
            a=rand()%10;  //獲得0~9的一個隨機數
            b=rand()%10+1;
            c=rand()%10;
            d=rand()%10+1;
          }
          if(max!=0)
          {
            a=rand()%100;
            b=rand()%100+1;
            c=rand()%100;
            d=rand()%100+1;
          }
       }
       else
       {
          if(max==0)
          {
            a=rand()%10*0.01;
            b=rand()%10+1;
            c=rand()%10*0.01;
            d=rand()%10*0.01;
          }
          if(max!=0)
          {
            a=rand()%100*0.01;
            b=rand()%100+1;
            c=rand()%100*0.01;
            d=rand()%100*0.01;
          }
       }

解決後:

if(cent==0)     //判定為整數
        {
           a=rand()%max;
           b=rand()%max;
           c=rand()%max;
           d=rand()%max;
        }
        else            //小數
        {

             a=rand()/(double)(RAND_MAX/max);
             b=rand()/(double)(RAND_MAX/max);
             c=rand()/(double)(RAND_MAX/max);
             d=rand()/(double)(RAND_MAX/max);
        }

4、解決隨機數生成種子不變問題。

#include<time.h>
srand(time(NULL));

5、解決輸入無效運算符提示問題。

解決前:

技術分享圖片

解決後:

技術分享圖片

6、成功錄入文件提示更清晰。

解決前:

技術分享圖片

技術分享圖片

解決後:

技術分享圖片

技術分享圖片

五、結對感受

在這一次結對編程作業中
我主要充當領航員的作用,我的同伴充當著駕駛員的作用。
我的同伴主要是對程序進行編碼,然後由我來後期調試。
在結對編程中我發現我們能夠更加專註,並提高解決問題的效率
而且減少了錯誤的發生,要知道錯誤發現的越早,修復成本越低
更不用提無形中促進了個人知識的提高與傳遞
友誼也在不知不覺中鞏固

四則運算自動生成