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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

结对项目-四则运算 “软件”之升级版

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

本作業要求來自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213?

我的githup地址為:https://github.com/lianglina98/ruanjian02

、基本要求

從個人項目出發,將程序改造成一個單機帶用戶界面(不是控制臺)的程序,這個程序最基本要達到:

  • 自動生成題目,單個題目最多不能超過4個運算符,操作數小于100。
  • 用戶可以輸入答案
  • 若用戶輸入答案正確,則提示正確;若答案錯誤,則提示錯誤,并要提示正確答案是多少。

二、擴展方向

  • 程序可以出帶括號的正整數四則運算,支持分數,除法保留兩位小數,如:(1/3+1)*2 = 2.67,特別注意:這里是2.67而非2.66(保留兩位小數功能實現,不支持出帶括號題目)
  • 用戶可以選擇出題的個數(最多不能超過5個題目),答題結束可以顯示用戶答錯的題目個數和答對的題目個數(實現)
  • 三、開發環境調試:Visual C++

    四、代碼呈現

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #include<math.h>
    #include<windows.h>
    float calculate(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 calculate2(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;
    }
    int createnumber()
    {
    return rand() % 100+1;
    }

    int createnumber2()
    {
    return rand() % 20+1;
    }

    char createnumberop()
    {
    int op;
    op=rand() % 4+1;
    switch(op)
    {
    case 1:return'+';
    case 2:return'-';
    case 3:return'*';
    case 4:return'/';
    }
    return 0;
    }

    void exercises(int n)
    {
    int i,right=0,wrong=0;
    float a,b,c,answer,result1,result2;
    char op,op2;
    srand(time(NULL));
    for(i=0;i<n;i++)
    {
    a=(float)createnumber();
    b=(float)createnumber();
    c=(float)createnumber();
    op=createnumberop();
    op2=createnumberop();
    result1=calculate2(calculate(a,op,b),op2,c);
    result2=calculate(a,op,calculate2(b,op2,c));
    if(result1 < 0 || result2 <0)
    {
    i--;
    continue;
    }
    else{
    printf("%.f %c %.f %c %.f = ",a,op,b,op2,c);
    scanf("%f",&answer);
    if((op=='+' || op=='-') && (op2=='*' || op2=='/'))
    {
    if((int)(100.0*answer+0.5)/100.0==(int)(100.0*result2+0.5)/100.0 && result2 >=0)
    {
    printf("\n【回答正確!】\n\n");
    right++;
    }
    else
    {
    printf("\n【回答錯誤!答案是:%.2f】\n\n",(int)(100.0*result2+0.5)/100.0);
    wrong++;
    }
    }
    else
    {
    if((int)(100.0*answer+0.5)/100.0==(int)(100.0*result1+0.5)/100.0 && result1 >=0)
    {
    printf("\n【回答正確!】\n\n");
    right++;
    }
    else
    {printf("\n【回答錯誤!答案是:%.2f】\n\n",(int)(100.0*result1+0.5)/100.0);
    wrong++;
    }
    }
    }
    printf("\n你答對了%d題,答錯了%d題\n\n",right,wrong);
    }
    }

    double gongbeishu(double b,double d)
    {
    double i,max;
    max=b>d?b:d;
    for(i=max;;i++)
    if((int)(i)%(int)(b)==0 && (int)(i)%(int)(d)==0)
    break;
    return i;
    }

    double gongyueshu(double a,double c)
    {
    double i,min;
    min=a<c?a:c;
    for(i=2;i<=min;i++)
    if((int)(a)%(int)(i)==0 && (int)(c)%(int)(i)==0)
    break;
    if(i>min)
    i=1;
    return i;
    }


    int main()
    {
    int n;
    printf("\n——————————————四則運算-------------------------------------------\n");
    printf("\n\n| 歡迎進入四則運算小程序! |\n");
    printf("\n——————————————---------------------------------------------------\n");
    while(1)
    {
    do{
    printf("\n請輸入四則運算的數目:");
    scanf("%d",&n);
    if(n<=0)
    printf("數目有誤,請重新輸入!\n");
    if(n>5)
    printf("最多不能超過5個題目,請重新輸入!\n");
    }while(n<=0 || n>5);
    exercises(n);
    }
    }

    五、運行結果截圖

    六、感想

    我并沒有結對,自己的基礎不好,不想拖累別人。這個作業我做得很簡單,主要的問題就在于計算上,其他基本沒有什么問題。

    轉載于:https://www.cnblogs.com/lianglin918/p/9843232.html

    總結

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

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