#include#include#include#include#include#include"calculator.h"
using namespace std;
int calculation::priority(char x)//比較優先順序
else if (x == '*' || x == '/')
else if (x == '(' || x == ')')
else return 0;
}void calculation::compare(char m, string n, string q)
else//否則將棧頂元素彈出並壓入棧2,將新棧頂元素繼續比較
else
}}int cal(int a, int b, char x)
else if (x == '-')
else if (x == '*')
else if (x == '/')
else
}else return 0;
}int calculation::tocalculate(queuequeue)
i--;
for (; i >= 0; i--)//從右至左掃瞄表示式
else//否則需要與棧頂元素比較優先順序
}else if (temp == '(')/*如果是左括號,依次彈出棧1頂的運算子,並壓入棧2,
直到遇到右括號為止,此時將這對括號捨棄*/
; m_s2.pop();
} else if (temp == ')')//如果是右括號,直接壓入棧2中,
else//數字存進另乙個棧
}while (!m_s1.empty())/*將棧1剩餘的運算子依次彈出並壓入棧2,棧2中即中綴
表示式對應的字首表示式倒敘*/
string expression1[101];
for (i = 0; !m_s2.empty(); i++)//將棧中倒序的表示式存入string中,接下來開始計算。
int j = i;
for (i = 0; i < j; i++)//從右至左掃瞄表示式
else//遇到運算子
}return m_s3.top();//最後棧頂的數字就是答案
物件導向第四次作業
一 填空題 1 如類果類a繼承了b,那麼類a被稱為基 類,而類b被稱為派生 類。2 c 的兩種繼承為 單繼承 和多繼承 3 在預設情況下的繼承方式為私有繼承方式 4 從基類中公有派生乙個類時,基類的公有成員就成為派生類的公有 成員,而這個基類的保護成員就成為派生類的保護成員。5 c 提供了多繼承 機...
物件導向程式設計第四次作業(2)
1 重複利用stringstream物件要記得.clear 2 對負號的處理 3 計算表示式的值 4 對棧的呼叫 5 心態 2016 04 13 更新 calculation.h pragma once include include include include using namespace ...
物件導向第四次部落格作業
上世紀80年代初期,軟體和it行業進入了大發展,軟體趨向大型化 高複雜度,軟體的質量越來越重要。這個時候,一些軟體測試的基礎理論和實用技術開始形成,並且人們開始為軟體開發設計了各種流程和管理方法,軟體開發的方式也逐漸由混亂無序的開發過程過渡到結構化的開發過程,以結構化分析與設計 結構化評審 結構化程...