C++ Qt 自制开源科学计算器

C++ Qt 自制开源科学计算器

项目地址 软件下载地址

目录

  • 0. 效果预览
  • 1. 数据库准备
  • 2. 按键&快捷键说明
  • 3. 颜色切换功能(初版)
  • 4. 未来开发展望
  • 5. 联系邮箱

0. 效果预览

  • 普通计算模式效果如下:

在这里插入图片描述

  • 科学计算模式效果如下:
科学计算模式效果演示图片
  • 更具体的功能演示视频见如下链接:
👉点我跳转演示视频👈

1. 数据库准备

本项目采用的后端数据库为 SQLite ,因为他是 C++ Qt 6.x 内置支持的一种数据库,同时其可视化软件 SQLite Expert 的下载和使用都很简单。

Qt Creator 中为了能够顺利链接 SQLite 数据库,需要在项目配置文件中进行一些补充,具体如下:

  • CMake 构建的项目

需要在 CMakeList.txt 中添加如下内容:

# 加入 sql 链接必要的动态库
target_link_libraries(CCalculator PRIVATE Qt${QT_VERSION_MAJOR}::WidgetsQt${QT_VERSION_MAJOR}::Sql)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Sql REQUIRED)

注意:这里的 CCalculator 请替换成您自己的项目名称

  • QMake 构建的项目

需要在 .pro 项目配置文件中添加如下内容:

# 加入 sql 链接必要的动态库
QT += sql
# 在Windows上需要的库(一般情况下Qt会自动处理)
win32:CONFIG(release, debug|release): LIBS += -L$$[QT_INSTALL_LIBS] -lQt6Sql
win32:CONFIG(debug, debug|release): LIBS += -L$$[QT_INSTALL_LIBS] -lQt6Sqld

2. 按键&快捷键说明

本计算器的按键均绑定了键盘上的按键作为快捷键以方便使用。下面给出所有按键和对于快捷键的说明:

按键快捷键功能
0~90~9输入0~9
..输入小数点
AnsCtrl+A在当前算式末尾输入上一次的运算结果
ECtrl+E检验输入算式是否存在错误
((输入左括号
))输入右括号
键盘上的退格键删除上一个输入的数据/操作符
CCtrl+C清空所有输入
+ + + + + +输入加号
− - − - 输入减号/负号
× ∗ * 输入乘号
÷/输入除号
%%输入百分号
MODM输入取余符号
^^输入乘方/幂符号
!!输入阶乘运算符
!!@输入奇/偶阶乘运算符
π \pi πP输入圆周率 π \pi π
eE输入自然数e
=回车Enter计算当前输入算式的结果
Mode→Scientific/NormalAlt+S切换普通/科学计算模式
sinS输入正弦函数运算符
arcsinShift+S输入反正弦函数运算符
cosC输入余弦函数运算符
arccosShift+C输入反余弦函数运算符
tanT输入正切函数运算符
arctanShift+T输入反正切函数运算符
lnShift+L输入自然对数运算符
logL输入普通对数运算符
History→Current HistoryH查看本次运行的计算记录
History→All HistoryAlt+H查看本软件安装以来的所有计算记录

3. 颜色切换功能(初版)

本计算器在 Style 菜单中提供了两种预设的颜色方案,Light 表示白色背景,Dark 表示黑色背景。

后续将在代码中为所有按键进行归纳分类,并提供对所有按键、窗口背景的颜色方案修改接口。

4. 未来开发展望

在后续开发中将按顺序加入如下功能:

v2.0 版本展望:

  • 更完整更自由的颜色切换接口
  • 通过鼠标和键盘左右按键对输入算式进行插入输入/删除
  • 构造一个 About 页面方便大家在使用时查看软件相关信息
  • 完成 Contact 快速跳转邮件发送页面的功能
  • 完成复数运算模式的开发
  • 完成 Practice 随机生成计算题的功能开发

上述功能完成后会 Release 和发布 CCalculator v2.0

5. 联系邮箱

如果您对本项目有任何建议、想法或疑惑请联系我的邮箱:

📫chrischanyedu@gmail.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stm32入门-----初识stm32

目录 前言 ARM stm32 1.stm32家族 2.stm32的外设资源 3.命名规则 4.系统结构 ​编辑 5.引脚定义 6.启动配置 7.STM32F103C8T6芯片 8.STM32F103C8T6芯片原理图与最小系统电路 前言 已经很久没跟新了,上次发文的时候是好几个月之前了,现在我是想去…

【Java】数值操作

文章目录 1.数值数据类型和操作1.1 数值类型1.2 从键盘读取数值1.3 数值操作符 2.数值型字面值2.1 整形字面值2.2 浮点型字面值2.3 科学记数法 示例:显示当前时间3.增强赋值运算符4.自增和自减操作符5.数值类型转换 1.数值数据类型和操作 1.1 数值类型 类型名范围…

论文分享|NeurIPS2022‘华盛顿大学|俄罗斯套娃表示学习(OpenAI使用的文本表示学习技术)

论文题目:Matryoshka Representation Learning 来源:NeurIPS2022/华盛顿大学谷歌 方向:表示学习 开源地址:https://github.com/RAIVNLab/MRL 摘要 学习表征对于现代机器学习很重要,广泛用于很多下游任务。大多数情…

java配置nginx网络安全,防止国外ip访问,自动添加黑名单,需手动重新加载nginx

通过访问日志自动添加国外ip黑名单 创建一个类,自己添加一个main启动类即可测试 import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.json.JSONArray; import org.json.JSONObject; import org.sp…

【学习笔记】Redis学习笔记——第10章 RDB持久化

第10章 RDB持久化 RDB是用来做持久化的二进制压缩文件 10.1 RDB文件的创建与载入 1>SAVE命令阻塞主线程创建。 2>EGSAVE开子线程创建。 3>优先使用AOF进行初始化数据库,否则,使用RDB文件初始化,因为AOF文件的写入更加频繁&#x…

面试经验之谈

优质博文:IT-BLOG-CN ​通常面试官会把每一轮面试分为三个环节:① 行为面试 ② 技术面试 ③ 应聘者提问 行为面试环节 面试开始的5~10分钟通常是行为面试的时间,面试官会参照简历和你的自我介绍了解应聘者的过往经验和项目经历。由于面试官…

C++catch (...)陈述

catch (...)陈述 例外处理可以有多个catch&#xff0c;如果catch后的小括弧里面放...&#xff0c;就表示不限型态种类的任何例外。 举例如下 #include <iostream>int main() {int i -1;try {if (i > 0) {throw 0;}throw 2.0;}catch (const int e) {std::cout <…

nodejs模板引擎(一)

在 Node.js 中使用模板引擎可以让您更轻松地生成动态 HTML 页面&#xff0c;通过将静态模板与动态数据结合&#xff0c;您可以创建可维护且易于扩展的 Web 应用程序。以下是一个使用 Express 框架和 EJS 模板引擎的基本示例&#xff1a; 安装必要的依赖&#xff1a; 首先&#…

分享浏览器被hao123网页劫持,去除劫持的方式

昨天看python相关的自动化工作代码时&#xff0c;发现谷歌浏览器被hao123劫持了&#xff0c;把那些程序删了也不管用 方法1&#xff1a;删除hao123注册表&#xff0c;这个方式不太好用&#xff0c;会找不到注册表 方法2&#xff1a;看浏览器快捷方式的属性页面&#xff0c;一…

【C++】入门基础(命名空间、缺省参数、函数重载)

目录 一.命名空间&#xff1a;namespace 1.namespace的价值 2.namespace的定义 3.namespace的使用方法 3.1 域解析运算符:: 3.2 using展开 3.3 using域解析运算符 二.输入输出 三.缺省参数 四.函数重载 1.参数类型不同 2.参数个数不同 3.参数顺序不同 一.命名空间&…

APP专项测试之网络测试

背景 当前app网络环境比较复杂&#xff0c;越来越多的公共wifi&#xff0c;网络制式有2G、3G、4G网络&#xff0c;会对用户使用app造成一定影响&#xff1b;当前app使用场景多变&#xff0c;如进地铁、上公交、进电梯等&#xff0c;使得弱网测试显得尤为重要&#xff1b; 网络正…

链路追踪系列-02.演示zipkin

当本机启动docker es zipkinServer之后&#xff1a; 启动3个项目&#xff1a;先eureka-server&#xff0c;再 PaymentMain8001,… 浏览器打开&#xff1a;http://localhost:9001/consumer/payment/zipkin consumer代码 &#xff1a; provider: 此时查询es:

uboot如何选择启动设备

cpu选择启动设备有两种方式 1、通过bootpin选择某个设备 比如从SD卡启动、EMMC、USB启动。 2、通过bootpin选择某个顺序 比如&#xff1a; SD、SPI、NANDSPI、NAND、SD

3-2 多层感知机的从零开始实现

import torch from torch import nn from d2l import torch as d2lbatch_size 256 # 批量大小为256 train_iter, test_iter d2l.load_data_fashion_mnist(batch_size) # load进来训练集和测试集初始化模型参数 回想一下&#xff0c;Fashion-MNIST中的每个图像由 28 28 784…

学习C++,应该循序渐进的看哪些书?

学习C是一个循序渐进的过程&#xff0c;需要根据自己的基础和目标来选择合适的书籍。以下是一个推荐的学习路径&#xff0c;包含了从入门到进阶的书籍&#xff1a; 1. 入门阶段 《C Primer Plus 第6版 中文版》 推荐理由&#xff1a;这本书同样适合C零基础的学习者&#xff0…

python运行环境在新旧电脑间迁移

目录 方法1. 直接复制虚拟环境文件夹&#xff1a;方法2. 导出和导入依赖项&#xff1a;方法3. 用 Docker 镜像&#xff1a; 当您需要在不同电脑之间迁移 Python 运行环境时&#xff0c;可以采用以下方法之一&#xff1a; 方法1. 直接复制虚拟环境文件夹&#xff1a; 将整个虚…

[CISCN2018]2ex

啊!好恶心的mips寄存器 好多IDA都查不到,这寄存器~! fuck! 但是这种寄存器一般的题都不难 这道题就是 我用平常的方法,没找到 左边函数一个一个点 看见这里0X3F base64 密文呢? 我giao 外面的txt文件里面 脚本 import base64 import string# 定义你的自定义字符集 st…

PHP语言教程与实战案例

PHP是一种广泛使用的开源脚本语言&#xff0c;尤其适用于Web开发并可嵌入HTML中。它的语法吸收了C语言、Java和Perl的特点&#xff0c;易于学习&#xff0c;功能强大。本文将带领你从基础语法入手&#xff0c;通过一系列实用案例&#xff0c;逐步掌握PHP的核心概念和技巧。 项…

使用JDBC实现事务管理与隔离级别设置

使用JDBC实现事务管理与隔离级别设置 在Java开发中&#xff0c;JDBC&#xff08;Java Database Connectivity&#xff09;是常用的数据库连接方式。在处理数据库操作时&#xff0c;事务管理和隔离级别设置是保证数据一致性和可靠性的关键。本篇博客将通过示例代码&#xff0c;…

并发编程-11线程池详解

一 线程池基础和使用 1.1 什么是线程池 “线程池”&#xff0c;顾名思义就是一个线程缓存&#xff0c;线程是稀缺资源&#xff0c;如果被无限制的创建&#xff0c;不仅会消耗系统资源&#xff0c;还会降低系统的稳定性&#xff0c;因此Java中提供线程池对线程进行统一分配、调优…