首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

利用QT制作简易计算器

移动开发 13.74MB 22 需要积分: 1
立即下载

资源介绍:

利用QT制作简易计算器 a.能实现简单的加减乘除 b.能实现优先级判断,如先乘除后加减,有括号先计算括号内。 c.能实现归零、退格
#include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //this->setMaximumSize(261,51); //this->setMinimumSize(261,51); this->setWindowTitle("计算器"); } Widget::~Widget() { delete ui; } void Widget::on_oneButton_clicked() { expression += "1"; ui->mainLineEdit->setText(expression); } void Widget::on_zeroButton_clicked() { expression += "0"; ui->mainLineEdit->setText(expression); } void Widget::on_twoButton_clicked() { expression += "2"; ui->mainLineEdit->setText(expression); } void Widget::on_threeButton_clicked() { expression += "3"; ui->mainLineEdit->setText(expression); } void Widget::on_fourButton_clicked() { expression += "4"; ui->mainLineEdit->setText(expression); } void Widget::on_fiveButton_clicked() { expression += "5"; ui->mainLineEdit->setText(expression); } void Widget::on_sixButton_clicked() { expression += "6"; ui->mainLineEdit->setText(expression); } void Widget::on_sevenButton_clicked() { expression += "7"; ui->mainLineEdit->setText(expression); } void Widget::on_eightButoon_clicked() { expression += "8"; ui->mainLineEdit->setText(expression); } void Widget::on_nineButton_clicked() { expression += "9"; ui->mainLineEdit->setText(expression); } void Widget::on_addButton_clicked() { expression += "+"; ui->mainLineEdit->setText(expression); } void Widget::on_subButton_clicked() { expression += "-"; ui->mainLineEdit->setText(expression); } void Widget::on_mulButton_clicked() { expression += "*"; ui->mainLineEdit->setText(expression); } void Widget::on_divButton_clicked() { expression += "/"; ui->mainLineEdit->setText(expression); } void Widget::on_leftButton_clicked() { expression += "("; ui->mainLineEdit->setText(expression); } void Widget::on_rightButton_clicked() { expression += ")"; ui->mainLineEdit->setText(expression); } void Widget::on_clearButton_clicked() { expression.clear(); ui->mainLineEdit->clear(); } void Widget::on_delButton_clicked() { expression.chop(1); ui->mainLineEdit->setText(expression); } void Widget::on_equalButton_clicked() { QStack s_num,s_opt; char opt[128] = {0}; int i = 0 , tmp = 0 , num1 , num2; QByteArray ba; ba = expression.toUtf8(); strcpy(opt,ba.data()); while (opt[i] != '\0' || s_opt.empty() != true) { if(opt[i] >= '0' && opt[i] <= '9') { tmp = tmp * 10 +opt[i] - '0'; i++; if(opt[i] < '0' || opt[i] >'9') { s_num.push(tmp); tmp = 0; } } else { if(s_opt.empty() == true || Priority(opt[i])>Priority (s_opt.top()) ||(s_opt.top()=='('&& opt[i] != ')')) { s_opt.push(opt[i]); i++; continue; } if(s_opt.top() == '(' && opt[i] == ')') { s_opt.pop(); i++; continue; } if(Priority(opt[i]) <= Priority (s_opt.top()) ||(opt[i] == ')' && s_opt.top() != '(' ) ||(opt[i] == '\0' && s_opt.empty() != true)) { char ch = s_opt.top(); s_opt.pop(); switch(ch) { case '+': num1 = s_num.top(); s_num.pop(); num2 = s_num.top(); s_num.pop(); s_num.push(num1 + num2); break; case '-': num1 = s_num.top(); s_num.pop(); num2 = s_num.top(); s_num.pop(); s_num.push(num2 - num1); break; case '*': num1 = s_num.top(); s_num.pop(); num2 = s_num.top(); s_num.pop(); s_num.push(num1 * num2); break; case '/': num1 = s_num.top(); s_num.pop(); num2 = s_num.top(); s_num.pop(); s_num.push(num2 / num1); break; } } } } ui->mainLineEdit->setText(QString::number(s_num.top())); expression.clear(); } int Widget::Priority(char ch) { switch(ch) { case '(': return 3; case '*': case '/': return 2; case '+': case '-': return 1; default: return 0; } }

资源文件列表:

利用QT制作简易计算器.zip 大约有9个文件
  1. 物联网2302_王天天_硬件组/
  2. 物联网2302_王天天_硬件组/calculator/
  3. 物联网2302_王天天_硬件组/calculator/main.cpp 175B
  4. 物联网2302_王天天_硬件组/calculator/untitled.pro 1009B
  5. 物联网2302_王天天_硬件组/calculator/untitled.pro.user 22.13KB
  6. 物联网2302_王天天_硬件组/calculator/widget.cpp 5.08KB
  7. 物联网2302_王天天_硬件组/calculator/widget.h 1.09KB
  8. 物联网2302_王天天_硬件组/calculator/widget.ui 12.82KB
  9. 物联网2302_王天天_硬件组/演示视频.mp4 151.55MB
0评论
提交 加载更多评论
其他资源 线性预测房屋价格加清洗评估加分析-项目实战5-分析房屋价格数据-ipynb格式-Python语法-用Jupyter打开
线性预测房屋价格加清洗评估加分析-项目实战5-分析房屋价格数据-ipynb格式-Python语法-用Jupyter notebook打开 用来练习多元线性回归及预测和清洗评估和分析,整个流程特别清晰,每个步骤均用Makedown编辑器进行编辑文字,每一步都给出了清晰的代码以及压缩包中给出了相应的数据集,可以按照步骤一步一步进行模仿,理解其中的思维逻辑,然后上手进行操作,在操作的过程中不断思考,等能力有了很大提升之后,就可以慢慢独立思考从事项目了 最后祝您变得更强
使用Python PyQt5制作文本编辑器
这是一个使用Python的PyQt5制作的文本编辑器,是以open函数的基础上加了Qt的gui制作的软件。这个软件有新建和打开功能:点击新建会有创建窗口,创建完后即可打字;点击打开会有打开窗口,选择后会直接进入打字界面。上方有文件,编辑两个按钮,里面的选项自行查看。这是我两年前四年级的作品,所以做的不太好,不喜勿喷。如果有良心博主,可以二创艾特我。
校园商铺管理系统 JAVA+Vue.js+SpringBoot+MySQL
基于Vue.js和SpringBoot的校园商铺管理系统,分为用户前台和管理后台,可以给管理员、商家、普通用户角色使用,包括商家管理模块、商品管理模块、公告信息模块、用户管理模块和系统基础模块,项目编号T191。 项目录屏:https://www.bilibili.com/video/BV1BE421P7xs 启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR 项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844
校园商铺管理系统 JAVA+Vue.js+SpringBoot+MySQL 校园商铺管理系统 JAVA+Vue.js+SpringBoot+MySQL 校园商铺管理系统 JAVA+Vue.js+SpringBoot+MySQL
电商管理平台 JAVA+Vue.js+SpringBoot+MySQL
基于Vue.js和SpringBoot的电商管理平台,分为用户前台和管理后台,可以给管理员、商家、普通用户角色使用,包括商品管理模块、商家管理模块、公告信息模块、用户管理模块和系统基础模块,项目编号T192。 项目录屏:https://www.bilibili.com/video/BV1Sy411B7yr 启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR 项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844
JAVA学生信息管理系统
由JAVA语言写的学生信息管理系统 注:没应用I/O流 开始界面 1.学生注册 2.学生登入 3.老师注册 4.老师登入 注册界面 学生 学号 姓名 性别 年龄 成绩年级 密码 老师 编号 姓名 密码 性别 年龄 登入界面 学生 学号 密码 老师 编号 密码 主界面 学生 查看个人信息 退出 老师 查看学生列表 更新学生信息 删除学生信息 添加学生信息 退出
JAVA学生信息管理系统 JAVA学生信息管理系统 JAVA学生信息管理系统
人格障碍诊断系统 JAVA+Vue.js+SpringBoot+MySQL
基于Vue.js和SpringBoot的人格障碍诊断系统,分为用户前台和管理后台,可以给管理员、医生角色使用,包括医生管理模块、诊断记录模块、试题试卷模块、考试管理模块、咨询信息模块和系统基础模块,项目编号T189。 项目录屏:https://www.bilibili.com/video/BV1vi421U7NG 启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR 项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844
人格障碍诊断系统 JAVA+Vue.js+SpringBoot+MySQL 人格障碍诊断系统 JAVA+Vue.js+SpringBoot+MySQL 人格障碍诊断系统 JAVA+Vue.js+SpringBoot+MySQL
mingw+cmake+QT+hdf5库
mingw+cmake+QT+hdf5库
mingw+cmake+QT的GeographicLib库
mingw+cmake+QT的GeographicLib库