基于Qt实现简单计算器(可支持逻辑运算的计算器)

数据结构-计算器实验报告 一、实验目的和要求 1. 设计并实现计算器。 要求:在课后作业-03、课后作业-05的作业内容基础上 (1)增加图形交互功能。 (2)增加3个逻辑运算符 &&、||、 !,并能处理逻辑运算符和算术运算符的混合运算。 (3)增加容错功能,能进行异常处理。 二、实验环境 Qt 5.9 三、实验内容 在课后作业-03、课后作业-05的作业内容基础上 (1)增加图形交互功能。 (2)增加3个逻辑运算符 &&、||、 !,并能处理逻辑运算符和算术运算符的混合运算。 (3)增加容错功能, 阅读详情

一、实验目的和要求(源码与可执行文件在最后)

设计并实现计算器。
要求:在课后作业-03、课后作业-05的作业内容基础上
(1)增加图形交互功能。
(2)增加3个逻辑运算符 &&、||、 !,并能处理逻辑运算符和算术运算符的混合运算。
(3)增加容错功能,能进行异常处理。
说明:
(1)其中牵涉到数据结构相关的可复用代码,可自行选择。
(2)提交时间:3周至4周左右时长,具体时间节点另行通知。
(3)其它要求同课后作业-01 。

二、实验环境

软件环境:①Qt5.9
②Qr Creator 4.3.0(Community)
硬件环境:①CPU:Intel(R)Core(TM)i7-8565U CPU @1.80Ghz
②内存:8.0GB

三、实验内容

设计出一个具有图形交互功能且支持逻辑运算,并具有异常处理机制的简单计算器。

四、实验过程

4.1 任务定义和问题分析

①具有图形交互功能:经查阅资料可以有Win32桌面应用程序编程以及Qt编程,先学了前者,个人觉得过于繁杂,转学Qt,利用Qt实现图形交互功能。
②逻辑运算:在之前作业的基础上增加逻辑与、或、非运算符。
③异常处理机制:对用户的错误输入进行调整并提示用户。

4.2 数据结构的选择和概要设计

①Qt ui界面布局:上方为一个输入文本框,下方设计4*6规模的按钮,进行输入
②代码处理:在原来代码上微改,增加功能,但依旧基于栈的应用。
③报错机制:在按钮的槽函数中添加输入检查,进行同步报错。

4.3 详细设计

①设计QMainwindow布局如下:
在这里插入图片描述
在左上方基于QmenuBar增加菜单栏(QmenuBar),添加QAction,显示一些帮助。
定义各按钮槽函数,实现图形交互。
添加rc文件,加入ico图标,实现自定义窗口图标与应用程序图标。
最终得到的成品图形界面:
在这里插入图片描述

②增加逻辑运算:在之前作业的判断优先级函数中增加逻辑与、或、非的处理。查阅资料,规定优先级如下:!>&&>||>其他双目运算符。
其他双目运算符优先级比较在之前作业中已阐述。

③增加异常机制处理:
通过大量极端、非法输入的试验,总结了一下异常输入:

  • 一开始直接点等于号计算:
    在这里插入图片描述
  • 括号内无数字:
    在这里插入图片描述
  • 右括号后直接接数字:
    在这里插入图片描述
  • 双目运算符无“左值”:
    在这里插入图片描述
  • 左括号前为数:
    在这里插入图片描述
  • 在左右括号数量相等的情况下,输入右括号:
    在这里插入图片描述
  • 输入完毕后,左括号比右括号的数量多:
    在这里插入图片描述
  • 单目运算符逻辑否前为一个数
    在这里插入图片描述

④将Qt在release模式下编译得到的exe文件通过Qt5.9 for Desktop(MinGW 5.3.0 32bit)处理得到可执行文件,再利用Enigma Virtual Box进行封装,得到最终单独的可执行exe文件。

五、测试及结果分析

5.1 实验数据

两个典型输入:
①12+5*(2+3)*6/2-4
②7+!(!3+5&&!4)||!0&&(4+7)
以及Debug过程中的大量输入

5.2 结果及分析

在这里插入图片描述
该计算器经过大量实验,运算结果基本都是正确的,算是一个成品了。一个不足之处是左上角的逻辑与运算符无法显示两个&&,目前尚未解决。

六、实验收获

通过本次大作业的实验,我学会了基本的C++图形界面编程,并且对其产生了较大的兴趣。同时,也提高了Debug能力。

七、参考文献

Qt内置帮助文档。

八、附录

可执行文件与源代码下载地址:
https://gitee.com/sherlocknovitch/qt_calculator
注:文件大小59M左右,这是因为包含了Qt的各种控件,如果你的电脑系统报告该软件有风险,请忽略。

C++&QT实现计算器图形界面交互 一、实验目的和要求 要求:在实验-03、实验-05的作业内容基础上 (1)增加图形交互功能。 (2)增加3个逻辑运算符 &&、||、 !,并能处理逻辑运算符和算术运算符的混合运算。 (3)增加容错功能,能进行异常处理。 说明: (1)其中牵涉到数据结构相关的可复用代码,可自行选择。 (2)提交时间:3周至4周左右时长,具体时间节点另行通知。 (3)其它要求同实验-01 。 二、实验环境 编译器:Vscode & DevC++&QT creator 系统: 阅读详情

相关推荐

基于QT的HLW8032电能芯片测试上位机开发

基于QT开发了一款电能芯片测试软件,该软件可以通过串口读取解析芯片发送过来的数据从而判断芯片是否可以正常工作。 HLW8032芯片介绍: 通信方式为UART、波特率4800。 2.上位机功能介绍 可以读取电压参数寄存器、电压寄存器、电流参数寄存器、电流寄存器、功率参数寄存器、功率寄存器的数据并显示 计算有效电压、电流、功率,功率因数。 设置电压、...

qq_37933895的博客 5314

Qt做计算器从安装到完成(这可能是全网最简单详细的教程)【此后无良辰】

要求 老师给的作业要求 :不然我也不会学 .设计并实现计算器。 要求:在课后作业-03、课后作业-05的作业内容基础上 (1)增加图形交互功能。 (2)增加3个逻辑运算符 &&、||、 !,并能处理逻辑运算符和算术运算符的混合运算。 (3)增加容错功能,能进行异常处理。 第一个想法 算超纲也算不超纲吧,因为涉及到图形界面很自然的回想到用qt或者mfc, 但二者都适用于我们学过的c++ 分界线------------------------------分界线 第一步 安装qt 网站:在这里推

qq_40493829的博客 3660

基于Qt实现的简易计算器(C++)

本人刚学Qt时实现了一个计算器的简单应用程序,刚好最近的程序设计训练有计算器这道题目,于是便完善了一下,拿出来分享给大家, 说不定有和我选一样的同学看到。 这是运行后的应用程序,由于我的电脑是Win7系统,所以我就参考Win7自带的应用计算器设计开发。 本程序参考《设计模式》将用户界面与业务逻辑分离开,并通过业务接口关联。 设计原则:功能模块之间需要进行解耦。 核心思想:强内聚,弱耦合...

weixin_41477765的博客 5885

数据结构课设——计算器

在实验-03、实验-05的作业内容基础上 (1)增加图形交互功能。 (2)增加3个逻辑运算符&&、||、!,并能处理逻辑运算符和算术运算符的混合运算。 (3)增加容错功能,能进行异常处理。

m0_56144302的博客 2552

Qt5.9实现的计算器

Qt5.9编写的计算器源代码,,可计算加减乘除,,支持括号、、逻辑运算符,,还可以显示历史记录。没有打包。。

数据结构大作业C++实现简单的计算器——算术表达式计算(包含实验报告)

【问题描述】 表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。 【基本要求】 以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。利用运算符优先关系,实现对算术四则混合运算表达式的求值。 【测试数据】 (1)能够判断表达式中的括号是否匹配,测试的表达式中括号不匹配,可以重新输入。 (2)能够处理多位整数以及浮点数。 (3)具体测试数据自定义。 【实现提示】 设置运算符栈和运算数栈辅助分析算符优先关系;在读入表达式的字符序列的同时,完成运算符和运算数(整数)的识别处理,以及相应的运算;在程序的适当位置输出运算符栈、运算数栈、输入字符和主要操作等内容。 【选做内容】 扩充运算符集,如增加乘方、单目减、赋值等运算。

C语言逻辑运算符: && 和 ||

1. 简单介绍 && 和 || && 和 || 是逻辑运算符,分别是逻辑与(&&)和逻辑或(||) 1) && (逻辑与):(三种) ①当逻辑与左边为false(假),则不再进行逻辑与右边的判断,结果为false(假) ② 当逻辑与左边为true(真)则进行右边判断,右边为false(假),结果为false(假) ③ 当逻...

南雨兮 12万+

狗都能看懂的Proximal Policy Optimization(PPO)PPO算法详解

李宏毅老师的PPO算法讲解笔记

个人学习笔记 2万+

Qt实现计算器(包含算术运算和逻辑运算),纯干货,一步步超详细过程

一、实验目的和要求 目的:锻炼我们对Qt的掌握和应用,锻炼实际解决问题,完成项目的能力。 要求:在课后作业03,05的基础上,增加图形交互功能,增加三个逻辑运算符&&,||,!,并能处理逻辑运算符和算术运算符的混合运算;增加容错功能,能进行异常处理。 二、实验环境 软件:Qt 5 硬件:8+500G Legion 三、实验内容 设计并实现计算器 四、实验过程 用文字、图(流程图等)、表格等方式记录实验过程中分析、设计工作。 4.1 任务定义和问题分析 ...

少渊的博客 2万+

LLC谐振变换器中的软开关艺术:ZVS与ZCS的协同设计

本文深入解析了LLC谐振变换器如何通过巧妙的电路设计,协同实现零电压开关(ZVS)与零电流开关(ZCS),从而大幅降低开关损耗与电磁干扰,提升电源效率。文章结合设计实战,详细阐述了谐振参数计算、器件选型及调试避坑指南,为高效、高功率密度电源设计提供了核心思路与解决方案。

weixin_29216957的博客 349

Linux下的隐藏技术(文件隐藏、进程隐藏、端口隐藏、权限隐藏、命令隐藏)

这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。这种情况下我们怎么办?在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?

墨痕诉清风的博客 743

使用C++完成以栈为基础的简易计算器,并使用Qt5制作可视化界面

使用C++完成以栈为基础的简易计算器,并使用Qt5制作可视化界面 一.计算器内部逻辑构造: 在完成计算器时选用栈数据结构(自己编写的和标准模板库中的都可),要求支持加减乘除和逻辑与或非运算,可计算整数和小数。这一部分有很多思路都可以实现,我的写法是将整个步骤分为表达式抽离,出入栈操作和运算符运算三个步骤。 1.表达式抽离 首先,在没有做出交互界面的情况下我们假定用户以英文键盘输入所要计算的表达式,这时你就会得到一个字符串,为了将字符串中每一个数字或运算符进行分割抽离,我们可以选用一个vector容器储存单独

qq_45752723的博客 3729

<PLC><socket><汇川>汇川PLC使用socket与其他控制器(如上位机)通讯模板程序示例

以上介绍了汇川PLC通用socket通讯的示例,事实上,汇川的官方手册也有使用示例,可以直接仿照使用,也可以加以修改。

用沸腾的热血,支付我们的人生吧! 3248

Kiran计算器核心架构解析:从Qt界面到任意精度数学库

前往项目官网免费下载:[https://ar.openeuler.org/ar/](https://ar.openeuler.org/ar/?utm_source=csdn_blog) Kiran计算器是openEuler社区开发的功能丰富的计算器应用,支持标准、科学和程序员三种计算模式。本文将深入剖析其核心架构,展示从Qt图形界面到任意精度数学库的完整技术实现,帮助开发者和用户理解这款开源计算

gitblog_06895的博客 162

opencv案例实战——银行卡模式匹配识别

在之前的几篇文章中我们已经介绍了opencv的一些基础知识,本篇文章我们将结合一个案例运用之前的知识并且学习opencv中模式匹配的应用,用到的知识点如果有不清楚的可以查看上面列出来的系列文章。具体代码会放在最后。

艾醒的博客 1339

数据分享|2000-2021年全国各城市风速数据(逐日、逐月、逐年)

而后,将每日的csv文件进行展点,再投影,采用反距离权重法对每日的数据进行插值。:美国国家海洋和大气管理局(NOAA)下设的国家环境信息中心(NCEI),网址为:https://www.ncei.noaa.gov/data/global-summary-of-the-day/archive/该数据是通过风速平均值插值得来,由于插值的方式与各种处理参数的不同,会导致该数据与其它风速数据不同,数据仅供个人学习使用哦。如果在论文中使用该数据,数据来源请写上面的原始数据来源,处理方法请写上面的处理方式!

J_Giser的博客 1777

一个计算器的代码,只做注释

"""rapid_GUI program with pyqt,这本书的一些代码,整理一下,文字全部体现在注释里。""" from __future__ import division from PyQt4.QtCore import * from PyQt4.QtGui import * from math import * import sys class Form(

量变到质变 1805

(七)独立按键

(七)独立按键

m0_52555663的博客 1713

基于C++/Qt带有界面的四则运算生成程序

开发环境 操作系统:Ubuntu16.04 开发语言:C++ 开发环境:Qt Creator 4.0.2 ,Based on Qt 5.7.0 (GCC 4.9.1 20140922 (Red Hat 4.9.1-10), 64 bit) 需求分析 这是一个软件工程作业,题目要求如下: 1. 能够自动生成四则运算练习题 2. 可以定制题目数量 3. 用户可以选择运算符 4. ...

Erick Lv的笔记 988

PCL RANSAC拟合分割多条直线【2026最新版】

使用RANSAC算法拟合分割多条直线,输出每一条直线的拟合参数到控制台,并保存直线点云到本地文件夹。博客长期更新,本文最新更新时间为:2026年5月24日。

点云侠的博客 7974

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

零基础专升本C语言学习指南:从环境配置到指针实战

编程语言是计算机与开发者沟通的桥梁,其核心在于将人类逻辑转化为机器可执行的指令。C语言作为一门中级语言,因其贴近硬件、执行效率高和提供底层内存操作能力,在系统编程、嵌入式开发等领域具有不可替代的技术价值。理解其变量、函数、指针等核心概念,是掌握程序运行机制和计算机系统思维的基础。对于专升本考生和编程初学者而言,通过搭建开发环境、学习基础语法、攻克指针难点并进行项目实战,不仅能应对考试要求,更能为后续学习数据结构、操作系统等核心课程打下坚实基础。本文围绕C语言学习路径,详细解析了环境配置、核心概念与综合应用,

weixin_33782386的博客 378

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

逻辑运算符

逻辑运算符很简单,只有三种。 &&(并且) 用法: if(a<5 && a>2){ //要同时满足两种情况 cout<<"Yes"; } ||(或者) 用法: if(a<5 || a>2){ //只要满足其中一个条件 cout<<"Yes"; } !(非) 用法: if(!0=1){ //如果0=1是假的(错误的),输出Yes cout<<"Yes

SSFRG的博客 1112

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[QT编程系列-32]:科学计算 - QT支持的科学计算库

如果你需要更高级的数学库和功能,可以考虑使用第三方数学库,比如Eigen、GSL、Ceres Solver等,将它们与Qt应用程序集成使用。在集成第三方库时,请注意库的许可证和使用条款,并按照库的文档和示例进行正确的安装和配置。此外,如果需要更复杂的数学计算,你可能需要使用第三方数学库,如Eigen、GSL、Ceres Solver等,并将其与Qt应用程序集成使用。Qt自身并没有提供专门的数学运算库,但它提供了一些基本的数学函数和数据结构,可以进行常见的数值计算和数学操作。

文火冰糖(王文兵)的博客 2222

【项目二】基于Qt平台的线性代数运算工具

前言Linear Algebra Terminator 基于去年编写的C语言代码向C++进行迭代,其中迭代了3个版本,不过都是在控制台上完成的,对用户输入不太友好,其中的矩阵对象主要是依据自定义的Fraction(分数)对象实现的,缺乏多样性,本次Linear Algebra Terminator - version 4.0 基于Qt平台开发,保留了原版本指令模式输入,同时添加了可视化输入和修改的模式,以及将原本的矩阵对象改为了类模板来实现多态。...

学艺不精的Anton的博客 1621

CODESYS逻辑运算指令

4XOR 异或 两个结果相同结果为FALSE,两个结果不相同结果为。2,OR 或指令 条件中有一个指令为真,就输出。1AND 与指令 两个条件都为1才输出。

xi_ri的博客 1356

STL模板,内建函数对象(仿函数)的讲解运用和示范:greater()

​ 简述: 对于 内建函数对象(#include )的算术、关系、逻辑类的函数对象(仿函数),做一个讲解和小例子的应用,并且简单地探究一下原理。 文章目录本博文的简述or解决问题?讲解大纲:关系运算类函数对象:大于仿函数:心得思考:代码演示:运行演示:细节方面:算数类函数对象:取反仿函数:加法仿函数:逻辑运算类仿函数 :使用无名的临时对象: 编程环境: win10 x64 专业版 编程软件...

1813
上一篇: 离散数学中谓词逻辑推理规则总结,附各规则英文
下一篇: 【数据结构】 链表表示集合并实现并集、交集、差集运算功能
RealWeakCoder
博客等级 码龄7年 236粉丝 68原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值