日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

作业五—个人项目-小学四则运算 “软件”之升级版1

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 作业五—个人项目-小学四则运算 “软件”之升级版1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作業五—個人項目-小學四則運算 “軟件”之升級版

作業要求來源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186

github地址:https://github.com/huangzhipeng00/-

一、題目要求

像《構建之法》的人物阿超那樣,寫一個能自動生成小學四則運算題目的命令行 “軟件”。

具體要求:任何編程語言都可以,命令行程序接受一個數字輸入,然后輸出相應數目的四則運算題目和答案。例如輸入數字是 30, 那就輸出 30 道題目和答案。 運算式子必須至少有兩個運算符,運算數字是在 100 之內的正整數,答案不能是負數。 如:

23 - 3 * 4 = 11

二.擴展要求:

1) 要求能出和真分數 (二分之一, 十二分之五,等)相關的練習題。

2) 并且要求能處理用戶的輸入,并判斷對錯,打分統計。 要求能處理用戶輸入的真分數, 如 1/2, 5/12 等。

  • 程序可以出帶括號的正整數四則運算,支持分數,除法保留兩位小數,如:(1/3+1)*2 = 2.67,特別注意:這里是2.67而非2.66,或保持分數形式:8/3
  • 可以出表達式里含有負整數(負整數最小不小于-100)的題目,且負數需要帶括號,用戶輸入的結果不用帶括號。如: 2*(-4) = -8
  • 用戶答題結束以后,程序可以顯示用戶答題所用的時間
  • 用戶可以選擇出題的個數(最多不能超過5個題目),答題結束可以顯示用戶答錯的題目個數和答對的題目個數
  • 用戶在第一次答題時,需要用戶輸入用戶名,用戶下次啟動后,程序需要記住用戶前一次輸入的用戶名?
  • 程序可以出單個整數階乘的題目:如:4!=24
  • 程序可以設置答題時間,時間設置為整數,單位為秒,最大不能超過120秒,若超過了答題時間未答題,則提示:時間已到,不能答題。
  • 程序可以設置皮膚功能,可以改變界面的顏色即可。? ?
  • 三、設計思路

    編程語言:c語言

    工具:

    設計思路:主函數讓用戶輸入要練習的題目數量;而后隨機產生隨機數和隨即運算符并產生運算式;判別用戶輸入的結果是否與正確答案一致,提示輸入值是否正確,答題繼續。答題完畢后,統計錯對情況給出判別數據。

    類。

    四、主要代碼

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #include<math.h>
    #include<windows.h>

    float algorithm(float x,char op,float y);
    float algorithm2(float x,char op2,float y);
    char createnumberop();
    void test1(int n);

    main()
    {
    int chooce,n;
    system("color fc");
    printf("歡迎來到四則運算練習題\n");
    printf("(按回車鍵開始做題)\n");

    ?

    getchar();

    printf("\n請輸入四則運算的數目:");
    while(1)
    {
    scanf("%d",&n);
    if(n<=0)
    printf("【數目有誤,請重新輸入!】\n");
    else
    break;
    }

    test1(n);


    }

    //第一個運算符計算
    float algorithm(float x,char op,float y)
    {
    float result;
    switch(op)
    {
    case'+':result = x + y;break;
    case'-':result = x - y;break;
    case'*':result = x * y;break;
    case'/':result = x / y;break;
    }
    return result;
    }
    //第二個運算符計算
    float algorithm2(float x,char op2,float y)
    {
    float result;
    switch(op2)
    {
    case'+':result = x + y;break;
    case'-':result = x - y;break;
    case'*':result = x * y;break;
    case'/':result = x / y;break;
    }
    return result;
    }

    //隨機產生運算符
    char mark()
    {
    int op;
    op=rand() % 4+1;
    switch(op)
    {
    case 1:return'+';
    case 2:return'-';
    case 3:return'*';
    case 4:return'/';
    }
    return 0;
    }

    //100以內四則運算
    void test1(int n)
    {
    int i,rightnum=0,wrongnum=0;//rightnumber正確的個數,wrongnumber錯誤的個數
    float a,b,c,answer,result;
    char op,op2;//運算符
    srand(time(NULL));
    for(i=0;i<n;i++)
    {
    a=(float)(rand() % 100+1);//獲取隨機數
    b=(float)(rand() % 100+1);
    c=(float)(rand() % 100+1);
    op=mark();//獲取隨機運算符
    op2=mark();
    if((op=='+' || op=='-') && (op2=='*' || op2=='/')){
    result=algorithm(a,op,algorithm2(b,op2,c));
    }
    else{
    result=algorithm2(algorithm(a,op,b),op2,c);//根據運算符優先級得出結果
    }
    if(result< 0)//如果結果為非正數,則重新獲取題目
    {
    i--;
    continue;
    }
    else{
    printf("%.f %c %.f %c %.f = ",a,op,b,op2,c);
    scanf("%f",&answer);

    if((int)(100.0*answer+0.5)/100.0==(int)(100.0*result+0.5)/100.0 && result>=0)//四舍五入精確到小數點后兩位
    {
    printf("【回答正確!】\n\n");
    rightnum++;
    }
    else
    {
    printf("【回答錯誤!答案是:%.2f】\n\n",(int)(100.0*result+0.5)/100.0);
    wrongnum++;
    }
    }
    }
    printf("你總共答對了%d題,準確率為%.2f%!\n",n,rightnum,(float)rightnum/(float)n*100);
    system("pause");
    system("CLS");
    printf("\n\n");
    }

    ?

    五、遇到的問題

    很多簡單的函數都忘記怎么拼了,比上次更有難度,問了同學解決了等問題。

    轉載于:https://www.cnblogs.com/huangzhipeng/p/9870303.html

    總結

    以上是生活随笔為你收集整理的作业五—个人项目-小学四则运算 “软件”之升级版1的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。