程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 程序輸出小學四則運算表達式,支持真分數四則運算,四則運算真分數

程序輸出小學四則運算表達式,支持真分數四則運算,四則運算真分數

編輯:C++入門知識

程序輸出小學四則運算表達式,支持真分數四則運算,四則運算真分數


程序設計思路:

1.運算式的輸出格式可以為 數字 運算符 數字,也可以為 數字 運算符 數字 運算符 數字,還可以是更復雜的式子,在此只實現了2-3個數字的運算式。

2.將式子分為兩類,第一類為20個,第二類為10個,分別用FOR循環控制輸出。

3.第一類式子稍簡單,只需通過隨機函數將兩個數字賦值,中間運算符通過數組下標的隨機賦值實現隨機性,再通過格式輸出即可

4.此時還要考慮運算符為 ‘/’,並且除數為0的情況,這時用if語句設置條件排除即可

5.計算第一類式子結果可以參考計算器的功能代碼,用switch語句實現判斷運算並存儲結果。

6.第二類式子參考第一類式子的輸出方式,結果需要考慮 運算符優先級,運算計算順序,因時間關系,計算結果暫未實現,以後再添加。

附上代碼:

 1 //練習一,要求實現輸出小學四則運算表達式,能支持一個真分數的四則運算
 2 //趙承聖 2016.3.5
 3 #include<iostream>
 4 #include<ctime>
 5 using namespace std;
 6 
 7 void exchange(int &a, int &b)          //定義一個交換函數
 8 {
 9     int temp = a;
10     a = b;
11     b = temp;
12 }
13 
14 void main()
15 {
16     srand((int)time(NULL));            //每次執行種子不同,生成不同的隨機數
17     int num1, num2,num3,snum,snum1;    //定義變量通過隨機函數來獲得隨機數字num1,num2,num3和隨機符號snum,snum1
18     double result;                     //用result保存計算結果
19     char symbol[4];                    //隨機計算符號數組
20     symbol[0] = '+';
21     symbol[1] = '-';
22     symbol[2] = '*';
23     symbol[3] = '/';
24     for (int sexp=0; sexp < 20;sexp++) //控制簡單表達式的個數為20個
25     {
26         num1 = rand() % 100;
27         num2 = rand() % 100;
28         snum = rand() % 4;
29         if (num2 == 0 && snum == 3)    //除數為0的結果排除
30             break;
31         switch (snum)
32         {
33         case 0:result = num1 + num2; break;
34         case 1:result = num1 - num2; break;
35         case 2:result = num1 * num2; break;
36         case 3:double dnum1 = (int)num1; double dnum2 = (int)num2; result = dnum1 / dnum2; break;  //將除的結果顯示為double型
37         }
38         cout << num1 << symbol[snum] << num2 << "="<<result<<endl;
39     }
40     for (int fexp = 0; fexp < 10; fexp++)   //控制表達式的個數為10個
41     {
42         num1 = rand() % 100;
43         num2 = rand() % 100;
44         num3 = rand() % 100;
45         snum = rand() % 4;
46         snum1 = rand() % 4;
47         if ((num2 == 0 && snum == 3)||(num3==0&&snum1==3))      //除數為0的結果排除
48             break;
49         if (snum == 3 && num1 > num2)     //如為假分數,則分子分母交換,調用exchange函數
50             exchange(num1,num2);
51         if (snum1 == 3 && num2 > num3)
52             exchange(num2, num3);
53         cout << num1 << symbol[snum] << num2 <<symbol[snum1]<<num3<< "="<< endl;
54     }
55     system("pause");
56 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved