91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 139KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-16
  • 語言: 其他
  • 標簽: 計算器??Qt??

資源簡介

該計算器可以計算一般的加減乘除括號,也能計算n*n階矩陣,還能計算非齊次線性方程組的解,同時也能計算一元多次方程(2、3、4)的解,注意事項在幫助文檔里,程序可以打開

資源截圖

代碼片段和文件信息

#include“calculate.h“
#include
bool?is_operator(string?op)//判斷是否運算符
{
????return?(op?==?“+“?||?op?==?“-“
????????????||?op?==?“*“?||?op?==?“/“
????????????||?op?==?“(“?||?op?==?“)“);
}

int?get_priority(string?op)//比較運算符號的優先級
{
????if?(op?==?“+“?||?op?==?“-“)
????????return?1;
????if?(op?==?“*“?||?op?==?“/“)
????????return?2;
????else?return?0;
}

string?get_result(string?val1?string?val2?string?op)
{
????double?v1?=?atof(val1.c_str());
????double?v2?=?atof(val2.c_str());//?轉化為double型
????double?result;
????if?(op?==?“+“)
????????result?=?v1?+?v2;
????if?(op?==?“-“)
????????result?=?v2?-?v1;
????if?(op?==?“*“)
????????result?=?v1?*?v2;
????if?(op?==?“/“)
????????result?=?v2?/?v1;

????ostringstream?os;
????os?<????return?os.str(); //將double型的數據送入輸出流并轉化為string型
}

stack?transform(string?input) //逆波蘭表達式轉換
{
????stack?converted; //定義一個數字棧用于存放轉換成的逆波蘭表達式
????stack?op; //定義一個運算符棧字符型
????size_t?i?=?0;?//依次讀取輸入的字符串字符
????string?digit_node?=?““;?//用于連接一個完整的數字

????while(i?????????char?c?=?input[i];///獲取當前字符
????????string?read_char?=?““;///
????????read_char?+=?c;///這三行怪怪的要這么寫能通過不能將這行和上一行寫成:string?read_char?=?string(&c);?不知道為什么

????????if?(is_operator(read_char))?{ //判斷是否運算符
????????????if?(digit_node?!=?““)?{ //如果當前讀取到運算符則表示之前數字的讀取結束
????????????????????converted.push(digit_node); //將之前讀取到的數字字符串存入數字棧
????????????????????digit_node?=?““; //將數字字符串置空
????????????}

????????????if?(op.empty())?{ //當前讀取到的是運算符棧的第一個操作符則直接將操作符進棧
????????????????op.push(read_char);
????????????}
????????????else?{

????????????????if?(read_char?==?“(“)//讀取到左括號?直接進棧
????????????????????op.push(read_char);
????????????????else?if?(read_char?==?“)“)?{?//讀取到右括號則將上一個左括號之前的運算符全部出棧
????????????????????while?(op.top()?!=?“(“)?{
????????????????????????converted.push(op.top()); //
????????????????????????op.pop();
????????????????????}
????????????????????op.pop();?//?將上一個左括號出棧
????????????????}
????????????????else?if?(get_priority(read_char)?>?get_priority(op.top()))//比較運算符級別
????????????????????op.push(read_char);?//若高于上一個運算符則直接入運算符棧
????????????????else?{//否則彈出兩個數字和一個符號將運算結果再次壓入數字棧
????????????????????converted.push(op.top());
????????????????????op.pop();
????????????????????op.push(read_char);
????????????????}
????????????}
????????}?else
????????????digit_node?+=?read_char;//將每次讀取的單個數字字符相加
????????i++;
????}

????if?(digit_node?!=?““)
????????converted.push(digit_node);?//入棧最后一個數字

????while?(!op.empty())?{//將剩余的運算符棧所有元素壓入棧
????????converted.push(op.top());
????????op.pop();
????}

????stack?stk;
????while?(!converted.empty()){ //顛倒逆波蘭表達式的入棧順序送入另一個棧
????????stk.push(converted.top());
????????converted.pop();
????}
????return?stk;
}

string?rpn(string?input)
{
????stack?stk1?=?transform(input);
????stack?rs;
????while?(!stk1.empty())?{
????????if?(is_operator(stk1.top()))?{//每遇

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4171??2018-01-07?20:06??calculator\calculate.cpp
?????文件?????????393??2018-01-07?08:31??calculator\calculate.h
?????文件?????????746??2018-01-07?20:16??calculator\calculator.pro
?????文件???????18202??2018-06-15?19:38??calculator\calculator.pro.user
?????文件???????18191??2018-01-07?21:15??calculator\calculator.pro.user.577c26e
?????文件?????????688??2018-01-07?10:05??calculator\choose.cpp
?????文件?????????629??2018-01-07?10:05??calculator\choose.h
?????文件????????2064??2018-01-07?08:29??calculator\choose.ui
?????目錄???????????0??2018-01-07?20:05??calculator\debug\
?????文件????????1582??2018-01-07?20:15??calculator\equation.cpp
?????文件?????????504??2018-01-07?10:12??calculator\equation.h
?????文件????????1769??2018-01-07?10:12??calculator\equation.ui
?????文件????????1445??2018-01-07?20:15??calculator\equationset.cpp
?????文件?????????534??2018-01-07?10:12??calculator\equationset.h
?????文件????????1787??2018-01-07?10:12??calculator\equationset.ui
?????文件????????1813??2018-01-07?17:09??calculator\fangchengzu.cpp
?????文件?????????257??2018-01-07?09:41??calculator\fangchengzu.h
?????目錄???????????0??2018-01-07?20:15??calculator\help\
?????文件?????????213??2018-06-15?19:38??calculator\help\Equationhelp.txt
?????文件?????????203??2018-06-15?19:37??calculator\help\EquationSet_Help.txt
?????文件?????????168??2018-06-15?19:37??calculator\help\MatrixHelp.txt
?????文件?????????918??2018-01-07?19:17??calculator\main.cpp
?????文件????????3092??2018-01-07?09:06??calculator\mainwindow.cpp
?????文件????????1022??2018-01-07?09:06??calculator\mainwindow.h
?????文件????????7398??2018-01-07?09:06??calculator\mainwindow.ui
?????文件???????19054??2018-06-15?19:22??calculator\Makefile
?????文件???????69719??2018-06-15?19:22??calculator\Makefile.Debug
?????文件???????69935??2018-06-15?19:22??calculator\Makefile.Release
?????文件????????1932??2018-01-07?20:15??calculator\matrix.cpp
?????文件?????????492??2018-01-07?10:12??calculator\matrix.h
?????文件????????1771??2018-01-07?10:12??calculator\matrix.ui
............此處省略32個文件信息

評論

共有 條評論