电子科学与技术毕业论文一种基于qt的科学计算器系统内容摘要:

ra (第七版以前为 Fedora Core)是一款基于 Linux 的操作系统,也是一组维持计算机正常运行的软件集合。 Fedora 由 Fedora Project 社区开发、红帽公司赞助,目标是创 建一套新颖、多功能并且自由和开源的操作系统。 Fedora 项目以社区的方式工作,引领创新并传播自由代码和内容,是世界各地爱好、使用和构建自由软件的社区朋友的代名词。 Fedora基于 Red Hat Linux,在 Red Hat Linux 终止发行后,红帽公司计划以 Fedora 来取代 Red Hat Linux在个人领域的应用,而另外发行的 Red Hat Enterprise Linux( Red Hat企业版 Linux, RHEL)则取代 Red Hat Linux在商业应用的领域。 Fedora的功能对于用户而言 ,它是一套功能完备、更新快速的免费操作系统,而对赞助者 Red Hat公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到 Red Hat Enterprise Linux 中。 QSqlite 数据库技术 SQLite,是一款轻型的数据库,是遵守 ACID 的关联式 数据库管理系统 ,它的设计目标是嵌入式的( 1) Qt designer 技术介绍 简单的来说 QT Designer 是一个 GUI 的工具。 这个工具可以帮助我们来加快写 QT 程 序 的速度 .利用 QT Designer 可以用一种所见既所得的方式 , 来产生 QT 程 序 的 GUI 介面的程式码 .通过增加一些功东南大学成贤学院毕业设计报告 5 能 , 就可以完成一个程 序 了 .利用 QT Designer 可以非常快速的学会 QT, 而我们这里说利用 QT Designer来学习 QT 而不是利用 QT Designer 来写 QT, 这里的区别就在于 QT Designer 所产生的程 序代 码有些繁琐 ,运行 起来也比较的慢些 , 我们这里只是利用 QT Designer 来帮助我们学习 , 而不是直接去 运行 QT Designer 生成的程 序,在这里 Qt designer 与 vs2020连接在一起,安装 ,在安装 vs 的 qt 插件 ,在配置环境变量: QT = your Qtrootfolder;在 PATH中添加 : “。 %QT%\bin”。 然后就可以用 Qt designer 中的控件进行制作程序界面,并且可以直接修改属性,这样可以在代码量上节省不少时间。 ( 2) Qt 技术介绍 QT 是一个跨平台的 C++ GUI 应用构架,它 提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT 库的基础之上。 支持 Linux 平台。 伴随着 KDE 的快速发展和普及, QT 很可能成为 Linux 窗口平台上进行软件开发时的 GUI 首选。 信号和槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和槽有所了解。 信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。 信号和槽是 QT 自行定义 的一种通信机制,它独立于标准的 C/C++ 语言,因此要正确的处理信号和槽,必须借助一个称为 moc( Meta Object Compiler)的 QT 工具,该工具是一个 C++ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。 在我们所熟知的很多 GUI 工具包中,窗口小部件 (widget) 都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。 但是,在 QT 中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了。 信号和槽能携带任意数量 和任意类型的参数,他们是类型完全安全的,不会像回调函数那样产生 core dumps。 在这里我设计的主窗口为:QWidget,而在帮助窗口为: QDialog。 东南大学成贤学院毕业设计报告 6 第三章 软件设计 数据库设计 数据库在一个管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。 合理的数据库结构设计可以提高数据存储的效率,保证数据库的完整性和一致性。 同时,合理的数据库结构也将有利于程序的实现。 实体属性图 ER 图是实体之间联系的一个简单表述,下面详细介绍各实体的属性: 图 算式实体属性图 算式实体属性如图 ,包括算式 id,算式名字。 图 按键信息实体属性图 按键信息实体属性如图 ,包括按键编号,按键名,按键功能。 关系模型设计 本系统中主要的关系模型设计如下: 算式信息( 编号 ,算式名); 按键信息( 编号 ,按键名,按键功能); 算式信息 算式编号 算式名字 按键信息 按键编号 按键名 按键功能 东南大学成贤学院毕业设计报告 7 数据库结构设计 每个数据文件均有一张定义表。 其数据库各表的表头信息更为详细的反映数据间的关系。 本系统数据库的内容包括算式表、帮主功能表。 表的具体设计 如下所示: (1)算式表用来存储算是编号和算式名,表名: message。 本表用来存储已用户常用的算式,其中可以对算式进行保存、删除、修改,方便用户及使用到常用的式子,提高用户效率。 算式表如表 所示。 表 算式 表 字段名称 数据类型 长度 备注 编号 Int 4 算是编号( Id) 算是名 QString 16 算式( formulanumber) (2)按键信息表用来存储按键编号,按键名,按键功能,表名: helpmessage。 本表用来实现帮助功能,存储帮助功能中按键的信息,可以查看所有的按键功 能,也可以看单个按键信息,还可以对案件信息进行增加和删除。 按键表如表。 表 按键表 字段名称 数据类型 长度 备注 编号 自动编号 长整型 为主码、唯一( id) 按键名 Vchar 1 按键名( helpname) 功能 Vchar 1 按键功能( explain) 东南大学成贤学院毕业设计报告 8 第四章 简单的计算器 项目目的 ( 1)熟悉 QtCreator 的简单操作。 ( 2)了解 Qt 程序编写框架。 ( 3)了解信号和槽机制,熟练掌握信号与槽在应用程序中的使用。 项目内容 ( 1)查看 API 手册,学习简单的 Qt 类的使用,如 QLineEdit、 QPushButton 等。 ( 2)用 QtCreator 创建工程,用 Qt 编写计算器程序。 ( 3)对计算器程序进行移植。 项目步骤 创建工程 1)打开 QtCreator,如图 F1 所示。 图 F1 2)选择 FileNew File or Project,然后在弹出的对话框中选择 Other ProjectEmpty Qt project(如图 F2 所示),然后进入下一步。 东南大学成贤学院毕业设计报告 9 图 2 3)定义新工程的工程名并选择保存路径(如图 F3 所示),然后进入下一步。 图 3 4)选择 Qt 版本,这里选择使用 ,取消对 Qt in PATH 的选择(如图 4 所示),然后进入下一步,完成新工程的创建(如图 F5 所示)。 东南大学成贤学院毕业设计报告 10 图 F4 图 F5东南大学成贤学院毕业设计报告 11 第五章 计算器程序的实现 主要工作:一是实现计算器的图形界面;二是实现按键事件和该事件对应的功能绑定,即信号和对应处理槽函数的绑定。 图形界面的实现 通过分析可知,需要 16 个按键和一个显示框,同时考虑到整体的排布,还需要水平布局器和垂直布局器。 通过组织这些类我们可以实现一个简单的带有数字 0~9,可以进行简单四则运算且具有清屏功能的计 算器。 对于这些类的具体操作会在后面的代码中详细说明。 信号和对应槽函数的绑定 分析计算器的按键我们可以把按键事件分为以下三类,一是简单的数字按键, 主要进行数字的录入,这类按键包括按键 0~9;二是运算操作键,用于输入数学运算符号,进行数学运算和结果的显示,这类按键包括“ +”,“ ”,“ *”,“ /”,“ =”;三是清屏操作键,用于显示框显示信息的清除。 进入刚才创建的空工程,双击左侧的 ,在主编辑框中目前显示 容为空,如图 F6 所示。 这是因为目前什么文件都没有添加的缘故。 图 6 添加文件 在工程 Calculator 上面点击右键,然后点击 Add New,选择添加 C++ Header File(如图 F7 所示),进入下一步后输入文件名 (如图 F8 所示),然后完成文件的添加。 东南大学成贤学院毕业设计报告 12 图 7 图 F8 添加文件 和 与添加文件 的过程类似,只是在选择文件类型时选择为 C++ Source File。 完成后可以查看 文件的内容,整个工程的文件结构如图 F9 所示。 东南大学成贤学院毕业设计报告 13 图 F9东南大学成贤学院毕业设计报告 14 第六章 源代码的分析说明 对 源代码的简要说明 ifndef CALCULATOR_H define CALCULATOR_H //对 头文件的声明 includeQWidget//包含主窗体类 includeQPushButton//包含按键类 includeQVBoxLayout//包含垂直布局器类 includeQHBoxLayout//包含水平布局器类 includeQLineEdit//包含显示框类 class Calculator : publicQWidget//计算器继承自主窗体类 { Q_OBJECT //必须加上这句,如果要调用信号,槽函数的操作的话 public: Calculator()。 //计算器类的构造函数 ~Calculator()。 //计算器类的析构函数 public slots: //定义各个按键按下后对应操作处理的槽函数 voidzeroButtonPress()。 voidoneButtonPress()。 v。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。