利用QT制作简易计算器.zip
大小:13.74MB
价格:39积分
下载量:0
评分:
5.0
上传者:2301_80874364
更新日期:2025-09-22

利用QT制作简易计算器

资源文件列表(大概)

文件名
大小
物联网2302_王天天_硬件组/
-
物联网2302_王天天_硬件组/calculator/
-
物联网2302_王天天_硬件组/calculator/main.cpp
175B
物联网2302_王天天_硬件组/calculator/untitled.pro
1009B
物联网2302_王天天_硬件组/calculator/untitled.pro.user
22.13KB
物联网2302_王天天_硬件组/calculator/widget.cpp
5.08KB
物联网2302_王天天_硬件组/calculator/widget.h
1.09KB
物联网2302_王天天_硬件组/calculator/widget.ui
12.82KB
物联网2302_王天天_硬件组/演示视频.mp4
151.55MB

资源内容介绍

利用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<int> 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; }}

用户评论 (0)

发表评论

captcha

相关资源

线性预测房屋价格加清洗评估加分析-项目实战5-分析房屋价格数据-ipynb格式-Python语法-用Jupyter打开

线性预测房屋价格加清洗评估加分析-项目实战5-分析房屋价格数据-ipynb格式-Python语法-用Jupyter notebook打开用来练习多元线性回归及预测和清洗评估和分析,整个流程特别清晰,每个步骤均用Makedown编辑器进行编辑文字,每一步都给出了清晰的代码以及压缩包中给出了相应的数据集,可以按照步骤一步一步进行模仿,理解其中的思维逻辑,然后上手进行操作,在操作的过程中不断思考,等能力有了很大提升之后,就可以慢慢独立思考从事项目了最后祝您变得更强

243.17KB37积分

使用Python PyQt5制作文本编辑器

这是一个使用Python的PyQt5制作的文本编辑器,是以open函数的基础上加了Qt的gui制作的软件。这个软件有新建和打开功能:点击新建会有创建窗口,创建完后即可打字;点击打开会有打开窗口,选择后会直接进入打字界面。上方有文件,编辑两个按钮,里面的选项自行查看。这是我两年前四年级的作品,所以做的不太好,不喜勿喷。如果有良心博主,可以二创艾特我。

30.8KB32积分

校园商铺管理系统 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

22.51MB37积分

电商管理平台 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

35.09MB21积分