资源简介
该计算器可以计算一般的加减乘除括号,也能计算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 << result;
return os.str(); //将double型的数据送入输出流并转化为string型
}
stack transform(string input) //逆波兰表达式转换
{
stack converted; //定义一个数字栈用于存放转换成的逆波兰表达式
stack op; //定义一个运算符栈字符型
size_t i = 0; //依次读取输入的字符串字符
string digit_node = ““; //用于连接一个完整的数字
while(i < input.length()) {
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\Equation
文件 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个文件信息
- 上一篇:自适应多目标粒子群优化器AMOPSO
- 下一篇:wwwscan不错的网站目录扫描
相关资源
- 酒店管理系统基于Qt Creator5)
- 电脑卡西欧计算器 fx-991CN X Emulator19中
- 卡西欧工程计算器模拟器Casio FX
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- PIC 单片机定时器初值计算器
- 湍流k-e经验值计算器
- QT,JPEG解码源代码(已完成)
- PIC单片机延时计算器
- Qt 播放音频文件
- MVC模式实现的计算器
- powerbuilder 计算器小程序
- 简单计算器的实现(数据结构)
- 简单计算器的实现(数据结构 修正版
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- 基于51单片机的计算器(C51编写,有
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- labview计算器实例.vi88218
- QT酷炫界面开发指南《QmlBook》
评论
共有 条评论