当前位置: 首页 > 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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2023.2版IDEA复制配置修改端口增加一个当前运行服务的操作流程
  • cv::Mat 操作多维矩阵的思路
  • 快速响应需求:App路由动态化探索
  • 2024 年第十四届亚太数学建模竞赛(中文赛项)浅析
  • 【深度学习实战(44)】Anchor based and Anchor free(无锚VS有锚)
  • 鸿蒙笔记导航栏,路由,还有axios
  • Java基础概念
  • UDP通讯实现
  • 速盾:cdn 缓存图片
  • Vue基础知识:Vue3.3出现的defineOptions,如何使用,解决了什么问题?
  • 2. 年龄问题
  • 高效利用iCloud指南
  • Python中的类和对象:如何定义一个类以及如何创建类的实例(对象)
  • 网络安全合规建设
  • Nginx在线安装与启动
  • 5、React组件事件详解
  • Android优雅地处理按钮重复点击
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • leetcode388. Longest Absolute File Path
  • Logstash 参考指南(目录)
  • magento 货币换算
  • Redis的resp协议
  • SegmentFault 2015 Top Rank
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 彻底搞懂浏览器Event-loop
  • 第十八天-企业应用架构模式-基本模式
  • 后端_MYSQL
  • 基于 Babel 的 npm 包最小化设置
  • 检测对象或数组
  • 漂亮刷新控件-iOS
  • 深入浅出Node.js
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 我这样减少了26.5M Java内存!
  • 小程序测试方案初探
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (C语言)fread与fwrite详解
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (九)c52学习之旅-定时器
  • (力扣)1314.矩阵区域和
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (转)ObjectiveC 深浅拷贝学习
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .htaccess配置常用技巧
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net core 外观者设计模式 实现,多种支付选择
  • .net 程序发生了一个不可捕获的异常
  • .NET 快速重构概要1
  • .net6 当连接用户的shell断掉后,dotnet会自动关闭,达不到长期运行的效果。.NET 进程守护
  • .Net7 环境安装配置
  • .net流程开发平台的一些难点(1)