当前位置: 首页 > news >正文

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

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

按键快捷键功能
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.lryc.cn/news/395533.html

相关文章:

  • 相机光学(二十八)——感光度(ISO)
  • 基于全国产复旦微JFM7K325T+ARM人工智能数据处理平台
  • HarmonyOS Next应用开发之系统概述
  • RedHat运维-Linux SSH基础2-基于公钥认证
  • 机器学习模型运用在机器人上
  • 振弦采集仪在大型工程安全监测中的作用与意义
  • CVE-2024-36991:Splunk Enterprise任意文件读取漏洞复现 [附POC]
  • Python的utils库详解
  • 基于 Qt、FFmpeg 和 OpenGL 开发跨平台安卓实时投屏软件 QtScrcpy
  • LabVIEW光谱测试系统
  • SpringBoot使用@RestController处理GET和POST请求
  • Kudu分区策略
  • spring的bean注册
  • 权限控制权限控制权限控制权限控制权限控制
  • JavaWeb系列二十一: 数据交换和异步请求(JSON, Ajax)
  • layui项目中的layui.define、layui.config以及layui.use的使用
  • ChatGPT对话:Scratch编程中一个单词,如balloon,每个字母行为一致,如何优化编程
  • HTML【详解】超链接 a 标签的四大功能(页面跳转、页内滚动【锚点】、页面刷新、文件下载)
  • Nginx+Tomcat群集
  • DBA 数据库管理 部署Mysql 服务,基础查询
  • AIGC:构筑创意新时代的神奇力量
  • 前端Din字体和造字工房力黑字体文件
  • Studying-代码随想录训练营day33| 动态规划理论基础、509.斐波那契函数、70.爬楼梯、746.使用最小花费爬楼梯
  • 【康复学习--LeetCode每日一题】724. 寻找数组的中心下标
  • LeetCode-刷题记录-前缀和合集(本篇blog会持续更新哦~)
  • 【中项第三版】系统集成项目管理工程师 | 第 4 章 信息系统架构③ | 4.6
  • 知识图谱入门笔记
  • 常见的气体流量计有哪些?
  • AI推介-大语言模型LLMs论文速览(arXiv方向):2024.07.01-2024.07.05
  • Android IP地址、子网掩码、默认网关、首选DNS服务器、备用DNS服务器校验