<2> 對負號的處理
<3> 計算表示式的值
<4> 對棧的呼叫
<5> 心態
2016/04/13 更新
calculation.h
#pragma once
#include #include #include #include using namespace std;
class calculation
;
calculation.cpp
#include #include #include #include #include #include "calculation.h"
using namespace std;
void calculation::tocalculate(queueq)
else
q.pop();
} /*
while (!operate.empty())
cout << "**************" << endl;
while (!figure.empty())
*/ while (!operate.empty())
else
}//運算子優先順序比較計算
if ((operate_priority(operate.top()) < operate_priority(operate_temp.top())) && (operate_temp.top() != ')'))
_figure = calculate(operate_temp.top(), figure.top(), figure_temp.top());
operate_temp.pop();
figure.pop();
figure_temp.pop();
figure.push(_figure);
}else
else
}//括號匹配
if (!operate.empty() && !operate_temp.empty() && (operate.top() == '('&&operate_temp.top() == ')'))}/*
cout << "operate" << endl;
if (!operate.empty())
cout << endl;
cout << "operate_temp" << endl;
if (!operate_temp.empty())
cout << endl;
cout << "figure" << endl;
if (!figure.empty())
cout << endl;
cout << "figure_temp" << endl;
if (!figure_temp.empty())
cout << endl;
cout << "****************************" << endl;*/}
/*cout << "operate" << endl;
while (!operate.empty())
cout << endl;
cout << "operate_temp" << endl;
while (!operate_temp.empty())
cout << endl;
cout << "figure" << endl;
while (!figure.empty())
cout << endl;
cout << "figure_temp" << endl;
while (!figure_temp.empty())
cout << endl;
cout << "--------------------------" << endl;
*/while (!operate_temp.empty())
_figure = calculate(operate_temp.top(), figure.top(), figure_temp.top());
operate_temp.pop();
figure.pop();
figure_temp.pop();
figure.push(_figure);
}cout << figure.top() << endl;
}//判斷符號優先順序
int operate_priority(char c)
return pri;
}
//計算
double calculate(char oper, double front, double behind)
return result;
}
雖然閱讀體驗可能不太好,但是那些被注釋掉的**都是我流過的血和淚...實在捨不得刪除...
stack用法:帶括號四則運算:以上是我找的所有資料中參考度比較高的 0 0
物件導向程式設計第四次作業
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 r...
物件導向第四次作業
一 填空題 1 如類果類a繼承了b,那麼類a被稱為基 類,而類b被稱為派生 類。2 c 的兩種繼承為 單繼承 和多繼承 3 在預設情況下的繼承方式為私有繼承方式 4 從基類中公有派生乙個類時,基類的公有成員就成為派生類的公有 成員,而這個基類的保護成員就成為派生類的保護成員。5 c 提供了多繼承 機...
物件導向第四次部落格作業
上世紀80年代初期,軟體和it行業進入了大發展,軟體趨向大型化 高複雜度,軟體的質量越來越重要。這個時候,一些軟體測試的基礎理論和實用技術開始形成,並且人們開始為軟體開發設計了各種流程和管理方法,軟體開發的方式也逐漸由混亂無序的開發過程過渡到結構化的開發過程,以結構化分析與設計 結構化評審 結構化程...