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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

用C++实现简单随机二元四则运算

發布時間:2023/12/9 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用C++实现简单随机二元四则运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

讓我們想看看二元四則運算都需要實現什么:

(1) 定制題目數量

(2)?是否有乘除法

(3) 題目數值范圍

(4)?加減有無負數

(5)?除法有無余數

(6)?是否支持分數(真分數、假分數…)

(7)?是否支持小數(精確到多少位?)

(8)?打印中每行的間隔

為了實現以上功能,并且為了便于后期實現功能拓展,我們可以將其封裝成類,通過在外界設置類的參數,實現不同的功能。可以將類定義如下:

1 class CTitle 2 { 3 public: 4 CTitle(); 5 ~CTitle(); 6 void setTitleCount(int titleCount); // 設置題量 7 void setMD(int hasMD); // 設置乘除法 8 void setBracket(int hasBracket); // 設置括號 9 void setNumRand(int numRand); // 設置數值范圍 10 void setMinus(int hasMinus); // 設置負號 11 void setResidue(int hasResidue); // 設置余數 12 void setFraction(int hasFraction); // 設置分數 13 void setFractionType(int fractionType); // 設置是否支持假分數 14 void setDecimal(int hasDecimal); // 設置小數 15 void setDecimalLong(int decimalLong); // 設置小數位數 16 void newTitle(); // 新建題目 17 private: 18 int titleCount; // 題目數量 19 int hasMD; // 是否有乘除法 20 int hasBracket; // 是否有括號 21 int numRand; // 數值范圍 22 int hasMinus; // 加減有無負數 23 int hasResidue; // 除法有無余數 24 int hasFraction; // 是否支持分數 25 int fractionType; // 是否支持假分數 26 int hasDecimal; // 是否支持小數 27 int decimalLong; // 小數位數 28 int decimalLongPow; // 小數位數 29 30 void newIntegerFormula(); // 新建整數運算公式 31 void newDecimalFormula(); // 新建小數運算公式 32 void newFractionFormula(); // 新建分數運算公式 33 void recordTitle(string szTitle); // 記錄題目至文件 34 void recordAnswer(string szAnswer); // 記錄答案至文件 35 void reduceFraction(int &nume, int &deno);// 化簡分數 36 };

?

接下來,我們需要實現類的功能接口,并且對類的屬性實現初始化

1 CTitle::CTitle() 2 { 3 titleCount = 0; // 題量 4 hasMD = 0; // 是否有乘除法 5 numRand = 0; // 數值范圍 6 hasMinus = 0; // 加減有無負數 7 hasResidue = 0; // 除法有無余數 8 hasFraction = 0; // 是否支持分數 9 fractionType = 0; // 是否支持假分數 10 hasDecimal = 0; // 是否支持小數 11 decimalLong = 0; // 小數位數 12 decimalLongPow = 0; // 小數位數 13 } 14 CTitle::~CTitle() 15 { 16 } 17 // 設置行間距 18 void CTitle::setTitleCount(int titleCount) 19 { 20 this->titleCount = titleCount; 21 } 22 // 設置乘除法 23 void CTitle::setMD(int hasMD) 24 { 25 this->hasMD = hasMD; 26 } 27 // 設置數值范圍 28 void CTitle::setNumRand(int numRand) 29 { 30 this->numRand = numRand; 31 } 32 // 設置負號 33 void CTitle::setMinus(int hasMinus) 34 { 35 this->hasMinus = hasMinus; 36 } 37 // 設置余數 38 void CTitle::setResidue(int hasResidue) 39 { 40 this->hasResidue = hasResidue; 41 } 42 // 設置分數 43 void CTitle::setFraction(int hasFraction) 44 { 45 this->hasFraction = hasFraction; 46 } 47 // 設置是否支持假分數 48 void CTitle::setFractionType(int fractionType) 49 { 50 this->fractionType = fractionType; 51 } 52 // 設置小數 53 void CTitle::setDecimal(int hasDecimal) 54 { 55 this->hasDecimal = hasDecimal; 56 } 57 // 設置小數位數 58 void CTitle::setDecimalLong(int decimalLong) 59 { 60 this->decimalLong = decimalLong; 61 this->decimalLongPow = pow(10, decimalLong); 62 }

?

?

?接著,我們為類添加方法,讓類可以按需求生成不同類型的運算題目。那么,如何才能使類可以隨機生成不同類型的運算呢?通過對題目進行分析,我們發現所有可能出現的運算類型共有4中,他們分別是:

(1)整數運算

(2)整數運算 & 小數運算

(3)整數運算 & 分數運算

(4)整數運算 & 分數運算 & 小數運算

1 void CTitle::newTitle() 2 { 3 srand(time(0)); 4 int numType = 1 + hasDecimal + hasFraction; 5 int titleType = 1; 6 for (int i = 0; i < titleCount; i++) 7 { 8 switch(numType) 9 { 10 // 運算中僅有整數運算 11 case 1: 12 newIntegerFormula(); 13 break; 14 // 運算中包含包含兩種運算,整數+小數 或 整數+分數 15 case 2: 16 titleType = rand() % 2 + 1; 17 if (titleType == 1) 18 { 19 newIntegerFormula(); 20 } 21 else 22 { 23 if (hasDecimal == 1) 24 { 25 newDecimalFormula(); 26 } 27 else if (hasFraction == 1) 28 { 29 newFractionFormula(); 30 } 31 } 32 break; 33 // 運算中包含小數運算和分數運算 34 case 3: 35 titleType = rand() % 3 + 1; 36 if (titleType == 1) 37 { 38 newIntegerFormula(); 39 } 40 else if (titleType == 2) 41 { 42 newDecimalFormula(); 43 } 44 else 45 { 46 newFractionFormula(); 47 } 48 break; 49 } 50 } 51 }

?

接下來我們需要解決的問題就是如何生成整數運算、小數運算以及分數運算并計算其結果。在本例中,我們用文件分別對運算表達式和運算結果進行存儲。將表達式存儲于Title.txt文件內,將運算結果存儲于Answer.txt文件內。

所以,我們先要在Ctitle的構造函數內加入如下代碼,以保證每次類初始化時文件內容會被清空。

1 FILE *fp = NULL; 2 errno_t err; 3 if ((err = fopen_s(&fp, "Title.txt", "w")) == 0) 4 { 5 fclose(fp); 6 } 7 if ((err = fopen_s(&fp, "Answer.txt", "w")) == 0) 8 { 9 fclose(fp); 10 }

?

并且增加寫入表達式和寫入答案的方法

1 // 記錄題目至文件 2 void CTitle::recordTitle(string szTitle) 3 { 4 FILE *fp = NULL; 5 errno_t err; 6 if ((err = fopen_s(&fp, "Title.txt", "a")) == 0) 7 { 8 fprintf_s(fp, "%s\n", szTitle.c_str()); 9 fclose(fp); 10 } 11 } 12 // 記錄答案至文件 13 void CTitle::recordAnswer(string szAnswer) 14 { 15 FILE *fp = NULL; 16 errno_t err; 17 if ((err = fopen_s(&fp, "Answer.txt", "a")) == 0) 18 { 19 fprintf_s(fp, "%s\n", szAnswer.c_str()); 20 fclose(fp); 21 } 22 }

?

接下來我們實現創建整數運算的方法,在這里與要注意以下問題:

(1)除法運算時,除數不能為0

(2)若運算不能還有余數,要保證生成的除法運算均可以整除

(3)若運算可以還有余數,要保證生成的結果為: 5 ÷?2 = 2...1 ,而非2.5

1 // 新建整數運算公式 2 void CTitle::newIntegerFormula() 3 { 4 string szTitle = ""; 5 string szAnswer = ""; 6 char caTitle[100] = { "" }; 7 char caAnswer[100] = { "" }; 8 int num1 = rand() % numRand + 1;// 隨機整數1,默認是正數 9 int num2 = rand() % numRand + 1;// 隨機整數2,默認是正數 10 int op = rand() % 2 + 1; // 運算符,默認僅有加減運算 11 // 設置四則運算 12 if (hasMD == 1) 13 { 14 op = rand() % 4 + 1; 15 } 16 switch (op) 17 { 18 case 1: 19 // 加減運算中包含負數 20 if (hasMinus == 1) 21 { 22 num1 = rand() % (numRand * 2) - numRand; 23 num2 = rand() % (numRand * 2) - numRand; 24 } 25 if (num2 < 0) 26 { 27 // 記錄題目 28 sprintf_s(caTitle, "%d+(%d)", num1, num2); 29 szTitle += caTitle; 30 recordTitle(szTitle); 31 // 記錄答案 32 sprintf_s(caAnswer, "%d", num1+num2); 33 szAnswer += caAnswer; 34 recordAnswer(szAnswer); 35 } 36 else 37 { 38 // 記錄題目 39 sprintf_s(caTitle, "%d+%d", num1, num2); 40 szTitle += caTitle; 41 recordTitle(szTitle); 42 // 記錄答案 43 sprintf_s(caAnswer, "%d", num1 + num2); 44 szAnswer += caAnswer; 45 recordAnswer(szAnswer); 46 } 47 break; 48 case 2: 49 // 加減運算中包含負數 50 if (hasMinus == 1) 51 { 52 num1 = rand() % (numRand * 2) - numRand; 53 num2 = rand() % (numRand * 2) - numRand; 54 } 55 if (num2 < 0) 56 { 57 // 記錄題目 58 sprintf_s(caTitle, "%d-(%d)", num1, num2); 59 szTitle += caTitle; 60 recordTitle(szTitle); 61 // 記錄答案 62 sprintf_s(caAnswer, "%d", num1 - num2); 63 szAnswer += caAnswer; 64 recordAnswer(szAnswer); 65 } 66 else 67 { 68 // 記錄題目 69 sprintf_s(caTitle, "%d-%d", num1, num2); 70 szTitle += caTitle; 71 recordTitle(szTitle); 72 // 記錄答案 73 sprintf_s(caAnswer, "%d", num1 - num2); 74 szAnswer += caAnswer; 75 recordAnswer(szAnswer); 76 } 77 break; 78 case 3: 79 // 記錄題目 80 sprintf_s(caTitle, "%d×%d", num1, num2); 81 szTitle += caTitle; 82 recordTitle(szTitle); 83 // 記錄答案 84 sprintf_s(caAnswer, "%d", num1 * num2); 85 szAnswer += caAnswer; 86 recordAnswer(szAnswer); 87 break; 88 case 4: 89 // 除數為0 90 while (num2 == 0) 91 { 92 num2 = rand() % numRand + 1; 93 } 94 // 無余數的除法 95 if(hasResidue == 0) 96 { 97 // 保證可以整除 98 while (num1 % num2 != 0) 99 { 100 num1 = rand() % numRand + 1; 101 } 102 // 記錄題目 103 sprintf_s(caTitle, "%d÷%d", num1, num2); 104 szTitle += caTitle; 105 recordTitle(szTitle); 106 // 記錄答案 107 sprintf_s(caAnswer, "%d", num1 / num2); 108 szAnswer += caAnswer; 109 recordAnswer(szAnswer); 110 } 111 // 有余數的除法 112 else 113 { 114 // 記錄題目 115 sprintf_s(caTitle, "%d÷%d", num1, num2); 116 szTitle += caTitle; 117 recordTitle(szTitle); 118 // 記錄答案 119 sprintf_s(caAnswer, "%d...%d", num1 / num2, num1 % num2); 120 szAnswer += caAnswer; 121 recordAnswer(szAnswer); 122 } 123 break; 124 }126 }

?

接下來實現小數運算,在這里,小數的位數是可以自主選定的,所以如果小數位數選擇的是2位,那么在記錄如文件時也要保證多余位數不會被記錄。如double類型默認寫入文件是2.510000,那我們只能保留2.51,并將保留后的結果寫入文件。

1 // 新建小數運算公式 2 void CTitle::newDecimalFormula() 3 { 4 string szTitle = ""; 5 string szAnswer = ""; 6 string szOp = ""; 7 string szNum1 = ""; 8 string szNum2 = ""; 9 char caTitle[100] = { "" }; 10 char caAnswer[100] = { "" }; 11 char caNum1[100] = { "" }; 12 char caNum2[100] = { "" }; 13 double dAnswer = 0; 14 int num1 = rand() % numRand + 1;// 隨機整數1,默認是正數 15 int num2 = rand() % numRand + 1;// 隨機整數2,默認是正數 16 double dotNum1 = (rand() % (decimalLongPow) +1);// 隨機小數1 17 double dotNum2 = (rand() % (decimalLongPow)+1);// 隨機小數2 18 int op = rand() % 2 + 1; // 運算符,默認僅有加減運算 19 dotNum1 = dotNum1 / decimalLongPow; 20 dotNum2 = dotNum2 / decimalLongPow; 21 sprintf_s(caNum1, "%lf", num1 + dotNum1); 22 szNum1 += caNum1; 23 szNum1 = szNum1.substr(0, szNum1.length() - 6 + decimalLong); 24 sprintf_s(caNum2, "%lf", num2 + dotNum2); 25 szNum2 += caNum2; 26 szNum2 = szNum2.substr(0, szNum2.length() - 6 + decimalLong); 27 // 設置四則運算 28 if (hasMD == 1) 29 { 30 op = rand() % 4 + 1; 31 } 32 switch (op) 33 { 34 case 1: 35 // 加減運算中包含負數 36 if (hasMinus == 1) 37 { 38 num1 = rand() % (numRand * 2) - numRand; 39 num2 = rand() % (numRand * 2) - numRand; 40 szNum1 = ""; 41 szNum2 = ""; 42 sprintf_s(caNum1, "%lf", num1 + dotNum1); 43 szNum1 += caNum1; 44 szNum1 = szNum1.substr(0, szNum1.length() - 6 + decimalLong); 45 sprintf_s(caNum2, "%lf", num2 + dotNum2); 46 szNum2 += caNum2; 47 szNum2 = szNum2.substr(0, szNum2.length() - 6 + decimalLong); 48 } 49 if (num2 < 0) 50 { 51 // 記錄題目 52 szOp = ""; 53 szNum2 = "(" + szNum2 + ")"; 54 // 記錄答案 55 dAnswer = num1 + dotNum1 + num2 + dotNum2; 56 } 57 else 58 { 59 // 記錄題目 60 szOp = ""; 61 // 記錄答案 62 dAnswer = num1 + dotNum1 + num2 + dotNum2; 63 } 64 break; 65 case 2: 66 // 加減運算中包含負數 67 if (hasMinus == 1) 68 { 69 num1 = rand() % (numRand * 2) - numRand; 70 num2 = rand() % (numRand * 2) - numRand; 71 szNum1 = ""; 72 szNum2 = ""; 73 sprintf_s(caNum1, "%lf", num1 + dotNum1); 74 szNum1 += caNum1; 75 szNum1 = szNum1.substr(0, szNum1.length() - 6 + decimalLong); 76 sprintf_s(caNum2, "%lf", num2 + dotNum2); 77 szNum2 += caNum2; 78 szNum2 = szNum2.substr(0, szNum2.length() - 6 + decimalLong); 79 } 80 if (num2 < 0) 81 { 82 // 記錄題目 83 szOp = ""; 84 szNum2 = "(" + szNum2 + ")"; 85 // 記錄答案 86 dAnswer = num1 + dotNum1 - num2 - dotNum2; 87 } 88 else 89 { 90 // 記錄題目 91 szOp = ""; 92 // 記錄答案 93 dAnswer = num1 + dotNum1 - num2 - dotNum2; 94 } 95 break; 96 case 3: 97 // 記錄題目 98 szOp = "×"; 99 // 記錄答案 100 dAnswer = (num1 + dotNum1) * (num2 + dotNum2); 101 break; 102 case 4: 103 // 除數為0 104 while (num2 == 0 && dotNum2 == 0) 105 { 106 num2 = rand() % numRand + 1; 107 dotNum2 = (rand() % (decimalLong)+1); 108 } 109 // 記錄題目 110 szOp = "÷"; 111 // 記錄答案 112 dAnswer = (num1 + dotNum1) / (num2 + dotNum2); 113 break; 114 } 115 // 記錄題目 116 szTitle = szNum1 + szOp + szNum2; 117 recordTitle(szTitle); 118 // 記錄答案 119 sprintf_s(caAnswer, "%lf", dAnswer); 120 szAnswer += caAnswer; 121 szAnswer = szAnswer.substr(0, szAnswer.length() - 6 + decimalLong); 122 recordAnswer(szAnswer);124 }

?

最后需要進行的就是生成分數,在這里,我們需要注意:

(1)是否進行假分數的運算

(2)要對分數的運算結果進行約分,將分數化為最簡。并且將假分數化簡。如5/2要化簡為2‘1/2(二又二分之一)

1 // 新建分數運算 2 void CTitle::newFractionFormula() 3 { 4 string szTitle = ""; 5 string szAnswer = ""; 6 char caTitle[100] = { "" }; 7 char caAnswer[100] = { "" }; 8 int deno1 = rand() % numRand + 1;// 隨機分母1,默認是正數 9 int deno2 = rand() % numRand + 1;// 隨機分母2,默認是正數 10 int nume1 = rand() % numRand + 1;// 隨機分子1,默認是正數 11 int nume2 = rand() % numRand + 1;// 隨機分子2,默認是正數 12 int nweNume = 0; 13 int nweDeno = 0; 14 // 支持假分數 15 if (fractionType == 1) 16 { 17 // 分母為0或1 18 while (deno1 == 0 || deno1 == 1) 19 { 20 deno1 = rand() % numRand + 1; 21 } 22 while (deno2 == 0 || deno1 == 1) 23 { 24 deno2 = rand() % numRand + 1; 25 } 26 } 27 // 不支持假分數 28 if (fractionType == 0) 29 { 30 // 分母為0或1 31 while (nume1 == 0 || nume1 == 1) 32 { 33 nume1 = rand() % numRand + 1; 34 } 35 while (nume2 == 0 || nume2 == 1) 36 { 37 nume2 = rand() % numRand + 1; 38 } 39 if (deno1 < nume1) 40 { 41 int temp = deno1; 42 deno1 = nume1; 43 nume1 = temp; 44 } 45 if (deno2 < nume2) 46 { 47 int temp = deno2; 48 deno2 = nume2; 49 nume2 = temp; 50 } 51 } 52 int op = rand() % 2 + 1; // 運算符,默認僅有加減運算 53 // 設置四則運算 54 if (hasMD == 1) 55 { 56 op = rand() % 4 + 1; 57 } 58 switch (op) 59 { 60 case 1: 61 // 記錄題目 62 sprintf_s(caTitle, "%d/%d+%d/%d", nume1, deno1, nume2, deno2); 63 szTitle += caTitle; 64 recordTitle(szTitle); 65 // 記錄答案 66 nweNume = nume1*deno2 + deno1*nume2; 67 nweDeno = deno1*deno2; 68 break; 69 case 2: 70 // 記錄題目 71 sprintf_s(caTitle, "%d/%d-%d/%d", nume1, deno1, nume2, deno2); 72 szTitle += caTitle; 73 recordTitle(szTitle); 74 // 記錄答案 75 nweNume = nume1*deno2 - deno1*nume2; 76 nweDeno = deno1*deno2; 77 reduceFraction(nweNume, nweDeno); 78 break; 79 case 3: 80 // 記錄題目 81 sprintf_s(caTitle, "%d/%d×%d/%d", nume1, deno1, nume2, deno2); 82 szTitle += caTitle; 83 recordTitle(szTitle); 84 // 記錄答案 85 nweNume = nume1*nume2; 86 nweDeno = deno1*deno2; 87 break; 88 case 4: 89 // 記錄題目 90 sprintf_s(caTitle, "%d/%d÷%d/%d", nume1, deno1, nume2, deno2); 91 szTitle += caTitle; 92 recordTitle(szTitle); 93 // 記錄答案 94 nweNume = nume1*deno2; 95 nweDeno = deno1*nume2; 96 break; 97 } 98 reduceFraction(nweNume, nweDeno); // 化簡 99 if (nweNume == 0) 100 { 101 recordAnswer("0"); 102 } 103 else if (nweDeno == 1) 104 { 105 sprintf_s(caAnswer, "%d", nweNume); 106 szAnswer += caAnswer; 107 recordAnswer(szAnswer); 108 } 109 else if (nweNume < nweDeno) 110 { 111 sprintf_s(caAnswer, "%d/%d", nweNume, nweDeno); 112 szAnswer += caAnswer; 113 recordAnswer(szAnswer); 114 } 115 else if (nweNume > nweDeno) 116 { 117 if (nweNume%nweDeno != 0) 118 { 119 sprintf_s(caAnswer, "%d'%d/%d", nweNume / nweDeno, nweNume%nweDeno, nweDeno); 120 szAnswer += caAnswer; 121 recordAnswer(szAnswer); 122 } 123 else 124 { 125 sprintf_s(caAnswer, "%d", nweNume / nweDeno); 126 szAnswer += caAnswer; 127 recordAnswer(szAnswer); 128 } 129 } 130 else 131 { 132 recordAnswer("1"); 133 } 134 } 135 // 化簡分數 136 void CTitle::reduceFraction(int &nume, int &deno) 137 { 138 int temp; 139 int a = nume; 140 int b = deno; 141 int gcd = 0; // 最大公約式 142 if (a < b) 143 { 144 temp = a; 145 a = b; 146 b = temp; 147 } 148 while (b != 0) 149 { 150 temp = a % b; 151 a = b; 152 b = temp; 153 } 154 gcd = a; 155 nume = nume / gcd; 156 deno = deno / gcd; 157 }

?

至此,我們的類就編寫完成了。接下來只需要在主函數生成類,并進行類方法的調用就行了。

1 #include "iostream" 2 #include "time.h" 3 #include "CTitle.h" 4 #include "CTitle.h" 5 using namespace std; 6 void setting(); 7 CTitle title; 8 int lineSpacing = 0; 9 int main() 10 { 11 setting(); 12 title.newTitle(); 13 // 從文件打印題目 14 FILE *fp = NULL; 15 FILE *fp2 = NULL; 16 errno_t err; 17 char caTitle[100]; 18 char caAnsewr[100]; 19 char myansewr[100]; 20 int mark = 1; 21 if ((err = fopen_s(&fp, "Title.txt", "r")) == 0 && (err = fopen_s(&fp2, "Answer.txt", "r")) == 0) 22 { 23 // 讀取題目 24 while ((fscanf_s(fp, "%s", caTitle, 100) != EOF)) 25 { 26 // 讀取答案 27 fscanf_s(fp2, "%s", caAnsewr, 100); 28 do 29 { 30 cout << caTitle << " = "; 31 cin >> myansewr; 32 if (strcmp(myansewr, caAnsewr) == 0) 33 { 34 cout << "" << endl; 35 mark = 1; 36 } 37 else 38 { 39 cout << "×" << endl; 40 mark = 0; 41 } 42 for (int i = 0; i < lineSpacing; i++) 43 { 44 cout << endl; 45 } 46 } while (mark == 0); 47 } 48 cout << "恭喜你完成今日作業" << endl; 49 } 50 return 0; 51 } 52 void setting() 53 { 54 int input = 0; 55 cout << "請完成如下設置" << endl; 56 cout << "設置今日題量:"; 57 cin >> input; 58 title.setTitleCount(input); 59 cout << endl; 60 cout << "設置數值范圍絕對值:"; 61 cin >> input; 62 title.setNumRand(input); 63 cout << endl; 64 do 65 { 66 cout << "加減有無負數,1有0無:"; 67 cin >> input; 68 } 69 while (input != 0 && input != 1); 70 title.setMinus(input); 71 cout << endl; 72 do 73 { 74 cout << "是否有乘除法,1有0無:"; 75 cin >> input; 76 } 77 while (input != 0 && input != 1); 78 title.setMD(input); 79 cout << endl; 80 if (input == 1) 81 { 82 do 83 { 84 cout << "整數除法有無余數,1有0無:"; 85 cin >> input; 86 } 87 while (input != 0 && input != 1); 88 title.setResidue(input); 89 cout << endl; 90 } 91 92 do 93 { 94 cout << "是否支持小數,1有0無:"; 95 cin >> input; 96 } 97 while (input != 0 && input != 1); 98 title.setDecimal(input); 99 cout << endl; 100 if (input == 1) 101 { 102 cout << "設置小數位數(1~5):"; 103 cin >> input; 104 title.setDecimalLong(input); 105 cout << endl; 106 } 107 do 108 { 109 cout << "是否支持分數,1有0無:"; 110 cin >> input; 111 } 112 while (input != 0 && input != 1); 113 title.setFraction(input); 114 cout << endl; 115 if (input == 1) 116 { 117 cout << "設置是否支持假分數,1有0無:"; 118 cin >> input; 119 title.setFractionType(input); 120 cout << endl; 121 } 122 cout << "設置打印行間隔:"; 123 cin >> input; 124 lineSpacing = input; 125 cout << endl; 126 }

?

恩,對于這一次的作業,我只完成了二元式的生成和運算,沒有涉及到多元式,所以沒有寫上括號生成與運算的問題。本來只是想簡單寫寫,好久沒有用C++寫過程序了,沒想到寫著寫著就寫了這么多行,但好像也沒有實現什么功能,只是保證了最基礎的運行。還是要繼續提升啊。

?

轉載于:https://www.cnblogs.com/libaoquan/p/5271351.html

總結

以上是生活随笔為你收集整理的用C++实现简单随机二元四则运算的全部內容,希望文章能夠幫你解決所遇到的問題。

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