天天看點

自動生成四則運算題目

  • 主要功能:本程式可生成使用者想要完成的題目數量的題目,程式内生成的題目中包含整數計算和真分數計算兩種。程式的設計對象是國小一年級到三年級學生,通過程式生成的題目來檢驗整數和真分數的四則運算。
  • 設計思想:通過“#include <time.h>”和“srand((unsigned)time(NULL));”這兩段代碼可以讓系統自動生成數字;在設計的時候,希望能讓程式簡化,就讓程式在生成題目的時候自己随機産生運算符号(代碼部分略)”n=rand()%4;“ ”if(n==0){i='+';} “;”a=rand()%10+1;“ ”b=rand()%10+1;“等代碼來随機生成10以内的數字;在看了網上的一些程式和同學完成的程式後,發現他們的程式都很繁瑣,通過判斷a和b的大小來完成不同符号的運算,同時還要考慮整數和分數的運算,是以我就把這2部分分開,”m=rand()%2;“第一部分為整數部分”if(m==0){printf("%d%c%d=\n",a,i,b);}“,之後是分數部分(代碼部分略)”else if(m==1){if(a<=b&&c<=d)printf("%d/%d%c%d/%d=\n",a,b,i,c,d);  else if(a>b&&c>d) printf("%d/%d%c%d/%d=\n",b,a,i,d,c);“
  • 源代碼:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    main(){
        char i;
        int a,b,c,d,e,f,g,n,m;
        printf("*********歡迎使用四則運算自動生成軟體*********\n");
        printf("1.開始\n");
        printf("2.退出軟體\n") ;
        printf("請選擇:\n");
        scanf("%d",&e);
        if(e==1){
        printf("請選擇生成題目的數量:\n");
        scanf("%d",&f);    
        srand((unsigned)time(NULL));
        for(int g=0;g<f;g++)
        {
        n=rand()%4;
        if(n==0){i='+';}
        if(n==1){i='-';}
        if(n==2){i='*';}
        if(n==3){i='/';}
        a=rand()%10+1;
        b=rand()%10+1;
        c=rand()%10+1;
        d=rand()%10+1;
        m=rand()%2;
        if(m==0){printf("%d%c%d=\n",a,i,b);}
        else if(m==1){
            if(a<=b&&c<=d)printf("%d/%d%c%d/%d=\n",a,b,i,c,d);
            else if(a>b&&c>d) printf("%d/%d%c%d/%d=\n",b,a,i,d,c);
            else if(a<=b&&c>d) printf("%d/%d%c%d/%d=\n",a,b,i,d,c);
            else if(a>b&&c<=d) printf("%d/%d%c%d/%d=\n",b,a,i,c,d);
        }
        }
    }
     if(e==2){
            exit(0);
            return 0;
                }
    }      
    • 程式運作截圖:
    • 自動生成四則運算題目
      自動生成四則運算題目
  • 總結:因為很久沒有編過程式,是以剛剛開始做的時候就會做整數部分的計算,分數部分還在思考分子和分母的問題,後來在網上找了類似的四則運算的代碼看了看别人做好的程式想從中借鑒一下,就發現了我所做的原版,程式很簡潔,而且功能也都和網上其他的四則運用程式一樣能。是以就按着人家的格式修改我的程式,并且在其中加入了分數的計算過程。通過做這個程式,讓我解決了以前所忽略的問題,希望在日後的程式中能有所改善。