




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目 科学计算器题目 科学计算器 姓名 姓名 张张 XX 学号 学号 2010XXXXXX 专业 专业 信息工程信息工程 姓名 姓名 张张 XX 学号 学号 2010XXXXXX 专业 专业 信息工程信息工程 姓名 姓名 饶饶 XX 学号 学号 2010XXXXXX 专业 专业 信息工程信息工程 姓名 姓名 蒲蒲 XX 学号 学号 2010XXXXXX 专业 专业 信息工程信息工程 姓名 姓名 陈陈 XX 学号 学号 2010XXXXXX 专业 专业 信息工程信息工程 201x 年年 x 月月 x 日日 1 1 引言引言 1 11 1 设计背景设计背景 计算器 calculator counter 一般是指 电子计算器 计算器是能 进行数学运算的手持机器 拥有集成电路芯片 其结构简单 比现代电脑结构 简单得多 可以说是第一代的电子计算机 电脑 计算器这一小小的程序机器 实际上是从计算机中割裂出来的衍生品 虽然功能较单一 但因其操作模式的 方便快捷和价格的低廉 携带方便等特点 已经被广泛应用于工程 学习 商 业贸易等日常生活中 极大的方便了人们对于数字的整合运算 成为人们生活 和办公中的必备品之一 深得使用者的青睐 计算器在我们的日常生活扮演着很重要的角色 因此不断设计开发出功 能更强大 携带更轻便 使用更加快捷迅速的计算器便成为相应工作者奋斗的 目标和任务 1 21 2 设计目的设计目的 进一步了解 C 语言和高级程序设计语言的结构 了解其好处和可用性 掌握基本的程序设计过程和技巧 掌握基本的分析问题 利用计算机求解问题 的能力 具备初步的高级语言程序设计能力 为后续计算机课程和毕业设计打 下坚实基础 通过该计算器程序软件的设计 培养独立思考 综合运用所学有关相应 知识的能力 更好地巩固 C 程序语言设计 和 高级程序设计 课程学习的 内容 掌握工程软件设计的基本方法 强化上机动手编程能力 体验理论与实 践相结合的过程 同时培养同学之间的团队合作精神 体会在工作中团队合作 的重要性和必要性 2 2 功能需求分析功能需求分析 2 12 1 功能划分功能划分 本次我们设计的计算器在功能上大致与 Windows 系统自带的计算器程序 相似 但在某些细节处加入了我们设计同学的独特创新和技巧 具体体现见详 细设计部分 对于我们所设计的科学计算器 其功能大致可以如下划分 算术型计算器功能 可以进行加 减 乘 除 开方 sqrt 百分数 等简单算术计算 科学型计算器功能 可以进行乘方 开方 指数 对数 三角函数 等方面的运算 一元运算和多元运算 可以进行表达式和简单运算 且切换较为快捷 技巧创新功能 开机画面 图片的插入 用户使用后数据的记录 2 22 2 功能描述功能描述 对于算术型计算器的功能大家已经非常熟悉 就不再赘述 这里只对科 学型计算器功能中的特殊符号 必要函数及技巧创新功能部分作简单描述 特殊符号和函数 Pi 即 3 1415926 Ln 自然对数 ln x 是以 e 为底的 x 的对数 Log 以 10 为底的对数 10 是可以省略的 S in 正弦函数 Arcsin 反正弦函数 Cos 余弦函数 Tan 正切函数 n 阶乘 Mod 取模运算 Clear 清空 等等这些符号有利于我们计算 方便快捷的得出结果 创新部分 开机画面 计算器启动时 程序会生成一个我们预先设计的图片作为计算 器的启动画面 因与手机电脑等开机画面相似 所以我们称之为开机画面 这 一小功能虽然没有实际用途 但改变了一般传统计算器给用户的印象 丰富了 视觉 让使用者眼前一亮 增加了愉悦感 图片插入 当使用者使用我们计算器的时候 在计算器运行界面的 About us 一栏 用户可以看到我们设计者的合照 这点算是我们设计者的小创新吧 使用数据记录 我们都知道 现在市面上一般的计算器虽然在计算上能满 足用户的需求 但对于一些重要的数据和运算过程 记录 就无法实现重要过 程和数据的记录 所以这项功能的添加让我们的计算器更加科学化 人性化 用户不必要再担心运算的出错和检查的麻烦 这也是我们所设计的计算器相比 于其他计算器的重要优点之一 2 2 详细设计详细设计 2 12 1 普通计算功能普通计算功能 1 界面设计 界面设计我们是使用 Qt creator 进行设计的 首先创建一 QMainWindow parent ui 这个界面为 QWidget 然后在左侧的 Widget Box 找 相应的控件添加到 QMainWindow parent t 里 首先提出一个 lineEdit 控件作 为算式显示窗口和结果显示窗口 在提取出 30 个 QpushButton 为 0 到 9 按键和 加减乘除按键 括号按键 开根号按键 小数点按键 按键 取模按键 阶乘 按键 取倒按键 等于按键 历史按键 标准 科学模式切换按键 然后再把各 个 pushButton 名字改成相应的符号 并且改对应 pushbutton 的属性 保存后 取 Qt creator 编译 QMainWindow parent ui 运行程序就可以显示相应界面 具体界面设计效果如下 且各组件的属性设置如下 2 程序具体实现 现在 h 文件中对各个按键在私有槽中进行声明 例如 public slots void clickbtn1 就对 1 键 槽函数 进行声明 然后就可以在 cpp 进行编写程序 声明 first second 两个整形表示第一个输入和第二个输入 然后用 Qt Qstring 封装好的 append 函数进行添加 当然 这里牵涉到本程序对 Btn 按键的函 数声明 并且使用setText 函数 使其按键符号点击后可以在 lineEdit 上显示 在这里用的是信号和槽的机制 具体的信号于槽的链接在后面会详细说明 2 22 2 科学计算器功能科学计算器功能 本界面的主要功能是在普通计算器的基础上 添加了一些科学计算的功能 具体实现的操作功能包括三角函数运算 cottancossin 反三角函数运算 双曲三角 arccotarctanraccosarcsin 函数运算 对数运算 cothtanhcoshsinh ln lglog x x 2 x 弧度运算 角度运算 梯度运算 1 界面设计 为了隐藏的需要 我们采用 Group Box 的组件 然后设置 按键 通过点击 按键可将窗口由标准型切换为科学型 此时 按键 变为 按键 再点击一次即可变回标准型 切换为科学型窗口后 在 普通窗口的基础上添加一些 QPushButton 按钮 修改其属性 使其变成相应的 功能键 再从左边把 QComboBox 拖到科学计算窗口中 并修改其属性 用户可 以在下拉框中 选择自己想要实现的运算类型 如 弧度 梯度 不同对数运 算 然后用对上述按键在窗口中进行合理布局 最后用 QtCreator 对所设计的 界面进行编译形成 ui 文件 点击运行即可查看所设计界面 具体界面设计效果如下 下拉框中显示的设计如下 各组件的属性设置如下 2 程序具体实现 这里仍使用信函和槽连接机制 我们没有使用信号和槽编辑器 而是直接 在 cpp 文件中添编写其代码来实现 首先在 h 文件中对各个按键进行声明 如 void clicksin 就是对 sin 按键进行声明 再到 cpp 文件中编写相应的代 码实现其功能 当 Jing zhan unary 变量为 ture 时 执行 clickTrigJIng zhan TS sin 或当 Jing zhan Expression 变量为 ture 时 执行 sinBian lian true clickJing zhan Pro sin mu qianSin 实现 sin 的运算功能 2 32 3 计算历史显示功能计算历史显示功能 本模块包括本系统的删除 保存功能 1 界面介绍 这里我要用两个 QpushButton 控件和一个 LineEdit 控件 两个 QpushButton 控件分别表示删除算式 算式另存为 在修改其属性 再拖拽一 个 LineEdit 控件 它用来显示计算机执行的历史事件 而且还可以在其上点击 选择算式 具体界面设计效果如下 各组件的属性设置如下 2 程序具体实现 另存为算式 首先声明一个另存为的函数 void chendahao clickHistorySaveas 添加一个 QFileDialog 控件作为另存为显 示窗口 再把 QFileDialog 名字改成相应的另存为 并且改对应 QFileDialog 的属性 然后查询算式表 message 查找最后一个 id 的值 然后 id 加一 再把次 id 和窗口提取的算式存入数据库算式表 message 中 然后通过槽函 数 ui statusBar showMessage Version tr 已保存 10000 查询 整个 message 表把表中的内容显示出来 删除算式 先用 currentIndex row 把鼠标点中的行选中 提出行数 声明 model 再用 model 中封装好的函数删除这一行 在加上警告函数 判断 是否删除 就可以了 2 42 4 删除功能删除功能 此功能为删除窗口中的最后一个字符 具体编写过程为 提取窗口中的内 容 并把窗口中的内容存放到一个 QString 型变量中 然后用 Qt 现有的已经封 装好的函数 把这个变量从左边开始将其最后一个字符去掉 使其长度减少一 将改变后的字符串在存放到这个变量中 再把这个变量重新返回到窗口中 这 样就达到删除的功能了 2 52 5 清空功能清空功能 此功能为清空显示窗口 这里用 Qt 封装好的函数 clear 直接把窗口 给清空 这样就达到效果 2 62 6 帮助功能帮助功能 在菜单栏里的 about us 按键是本系统的帮助功能 其中包括 618 选 项和 about Qt 选项两个子选项 其中 about Qt 介绍了有关 Qt 软件的相关 信息 618 按键介绍了科学计算器的制作团队各成员姓名和学号以及陈皓同 学的空间连接 具体 618 界面设计效果如下 各组件的属性设置如下 2 72 7 操作类型切换功能操作类型切换功能 在菜单栏里添加操作类型选择按键 在操作类型按键下有一元顺序运算和 表达式运算两个子选项 当选择一元顺序运算时 将 按键和 按键设 置为不可点击即 而当选择表达式运算时 将 1 x 按键和 按键设置为 不可点击 由于在不同的操作类型下 有些运算符不适用 故将其设置为不可 点击 这样可以防止用户进行违规操作 具体界面设计效果如下 3 3 系统的实现 系统的实现 计算分简单计算和科学计算两种功能 又由于要实现表达式的功能 故应 该将其分开实现 所以 我们在程序中设置了两逻辑变量进行区分 如下所示 bool Jing zhan unary false 一元操作 bool Jing zhan Expression true 表达式操作 当然 对于下面具体步骤中出现的函数 我们有必要在此说明 这其中也 包括整个程序的核心算法 考虑到程序中出现了众多信号与槽的链接 故采用手工链接的方式进行 首先在 chendahao h 中声明如下槽函数 public slots void clickSifirla void click chenhaoQQ void clickbtn QString void clickbtn1 void clickbtn2 void clickbtn3 void clickbtn4 void clickbtn5 void clickbtn6 void clickbtn7 void clickbtn8 void clickbtn9 void clickbtn0 void clickPoint void clickPointControl void clickClear void clickPlus void clickDecrease void clickMultiply void clickEliminate void clickEql void clickJing zhan void clickJing zhan 2 QStringList void clickBackspace void clickChangesign void clickSqrt void click G void clickCi void click 1 x void clickJie cheng void clickSwitch void clickSimple void clickSin void clickCos void clickTan void clickCot void clickPi void clickE void clickArcsin void clickArccos void clickArctan void clickArccot void clickSinh void clickCosh void clickTanh void clickCoth void clickLog void clickHistory void clickHistoryDelete void clickHistorySaveas void clickQt void clickExpression void clickunary void clickReplaceTur QLabel QLabel bool void clickJing zhan caozuoleixing void clickJing zhan Pro QString QString bool void clickTrigJing zhan IO QStringList void clickTrigJing zhan IS QString void clickYerReplace QStringList void clickMod void clickZkuohao void clickYkuohao double clickDonusum int double void clickQ zhishu 在 chendahao cpp 中 chendahao chendahao QWidget parent QMainWindow parent ui new Ui chendahao 构造函数中进行信号于槽的链接 也就是各按键及工具条等组件的动作响应关系 函数 如下 connect ui btnSwitch SIGNAL clicked this SLOT clickSwitch 科学 和 简单 快速切换键 connect ui btnHistory SIGNAL clicked this SLOT clickHistory 历史键 connect ui btn1 SIGNAL clicked this SLOT clickbtn1 1 connect ui btn2 SIGNAL clicked this SLOT clickbtn2 2 connect ui btn3 SIGNAL clicked this SLOT clickbtn3 3 connect ui btn4 SIGNAL clicked this SLOT clickbtn4 4 connect ui btn5 SIGNAL clicked this SLOT clickbtn5 5 connect ui btn6 SIGNAL clicked this SLOT clickbtn6 6 connect ui btn7 SIGNAL clicked this SLOT clickbtn7 7 connect ui btn8 SIGNAL clicked this SLOT clickbtn8 8 connect ui btn9 SIGNAL clicked this SLOT clickbtn9 9 connect ui btn0 SIGNAL clicked this SLOT clickbtn0 0 connect ui btnPoint SIGNAL clicked this SLOT clickPoint 小数点的实现 connect ui btnClear SIGNAL clicked this SLOT clickClear Clear 按键的实现 connect ui btnPlus SIGNAL clicked this SLOT clickPlus 加法 connect ui btnDecrease SIGNAL clicked this SLOT clickDecrease 减号 connect ui btnMultiply SIGNAL clicked this SLOT clickMultiply 乘号 connect ui btnEliminate SIGNAL clicked this SLOT clickEliminate 除号 connect ui btnEql SIGNAL clicked this SLOT clickEql 等号 connect ui btnBackspace SIGNAL clicked this SLOT clickBackspace 退格 connect ui btnChangesign SIGNAL clicked this SLOT clickChangesign 改变符号 connect ui btnSqrt SIGNAL clicked this SLOT clickSqrt 开根号 connect ui btn G SIGNAL clicked this SLOT click G 按百分比的形式显示乘积结果 connect ui btnCi SIGNAL clicked this SLOT clickCi 实现 connect ui btn 1 x SIGNAL clicked this SLOT click 1 x 1 x 功能键实现 connect ui btnJie cheng SIGNAL clicked this SLOT clickJie cheng 阶乘 connect ui btnSin SIGNAL clicked this SLOT clickSin Sin connect ui btnCos SIGNAL clicked this SLOT clickCos Cos connect ui btnTan SIGNAL clicked this SLOT clickTan Tan connect ui btnCot SIGNAL clicked this SLOT clickCot Cot connect ui btnPi SIGNAL clicked this SLOT clickPi Pi connect ui btnE SIGNAL clicked this SLOT clickE exp connect ui btnArcsin SIGNAL clicked this SLOT clickArcsin Asin connect ui btnArccos SIGNAL clicked this SLOT clickArccos Acos connect ui btnArctan SIGNAL clicked this SLOT clickArctan Atan connect ui btnArccot SIGNAL clicked this SLOT clickArccot Acot connect ui btnLog SIGNAL clicked this SLOT clickLog Log connect ui btnMod SIGNAL clicked this SLOT clickMod Mod connect ui btnDelete SIGNAL clicked this SLOT clickHistoryDelete 历史框中 删除键 connect ui btnSaveas SIGNAL clicked this SLOT clickHistorySaveas 历史框中 另存为键 connect ui btnZkuohao SIGNAL clicked this SLOT clickZkuohao connect ui btnYkuohao SIGNAL clicked this SLOT clickYkuohao connect ui actionQt SIGNAL triggered this SLOT clickQt about Qt connect ui action chenhaoQQ SIGNAL triggered this SLOT click chenhaoQQ about us connect ui action Ke xue SIGNAL triggered this SLOT clickSwitch 动作 科学型 connect ui action History SIGNAL triggered this SLOT clickHistory 动作 历史 connect ui action Simple SIGNAL triggered this SLOT clickSimple 动作 简单 connect ui action Expression SIGNAL triggered this SLOT clickExpression 多元表达式 connect ui action unary SIGNAL triggered this SLOT clickunary 一元顺序运算 connect ui btnSinh SIGNAL clicked this SLOT clickSinh Sinh connect ui btnCosh SIGNAL clicked this SLOT clickCosh Cosh connect ui btnTanh SIGNAL clicked this SLOT clickTanh Tanh connect ui btnCoth SIGNAL clicked this SLOT clickCoth Coth connect ui btnQ zhishu SIGNAL clicked this SLOT clickQ zhishu a b 功能键的实现 接下来 对部分重要的槽函数进行说明 首先 由于本课题的方向行 所 以 在实现科学型计算器前 我们必须弄得一般计算器 Btn 键的工作原理 而 这部分 在 Qt 事例中用详细的说明 这里我们就不必指出 考虑到表达式和简 单的区别 我们分两种情况进行编写 当然 在后续的函数中 这种分别讨论 的情况是经常出现的 这也从侧面说明了 bool Jing zhan unary Jing zhan Expression 的重要性 具体代码如下 void chendahao clickbtn QString btn if Jing zhan unary true clickSifirla if Jing zhan Bian lian true ui LineEdit1 setText Jing zhan Bian lian false if zeroBian lian true ui LineEdit1 setText btn else qian ui LineEdit1 text qian append btn ui LineEdit1 setText qian zeroBian lian false safetyJing zhan false else if Jing zhan Expression true if mu qianEql true ui LineEdit1 setText clickSifirla qian ui LineEdit1 text qian append btn ui LineEdit1 setText qian 而一般的数字键 只需调用此槽函数即可 如下所示 void chendahao clickbtn1 clickbtn 1 当然 由于0变量的特殊性 所以 需要对其添加额外的约束才能实现 代 码如下 void chendahao clickbtn0 clickSifirla if Jing zhan unary true if Jing zhan Bian lian true ui LineEdit1 setText Jing zhan Bian lian false if ui LineEdit1 text ui LineEdit1 setText 0 zeroBian lian true else if zeroBian lian false qian ui LineEdit1 text qian append 0 ui LineEdit1 setText qian safetyJing zhan false else if Jing zhan Expression true clickbtn 0 说完计算器 Btn 键的功能实现 接下来 对于任何计算器 其 键无 意是对计算器功能的实现的直接展示 对于一般的简单计算器 由于有 Math h 的支持 实现起来较为容易 但是 对于表达式计算器 这就是对我们整个程 序逻辑关系的真确与否的直接表现 可想其重要性 具体代码如下 void chendahao clickEql if Jing zhan unary true if mu qianEql false clickJing zhan safetyJing zhan false Jing zhan Bian lian true pointBian lian false first shu true Jing zhan else if Jing zhan Expression true mu qianEql true qian ui LineEdit1 text qian append ui LineEdit1 setText qian clickJing zhan 可能大家看到这里会觉得这不算什么 其实不然 因为大多数程序都被封 住在 void clickJing zhan 函数中 接下来 我们将进入本程序的核心代码 中 由于代码过长 考虑到简单计算器运算实现的简单性 我们只列举出如下 关于表达式部分的代码 void clickJing zhan 中 else if Jing zhan Expression true if ZkuohaoCounter YkuohaoCounter qDebug 错误 else backuptext ui LineEdit1 text ui texthistory insertPlainText QString number history Counter backuptext for int triCounter 0 triCounter backuptext size triCounter backuptext replace QString arcsin QString backuptext replace QString arccos QString backuptext replace QString arctan QString backuptext replace QString sinh QString e backuptext replace QString cosh QString r backuptext replace QString tanh QString t backuptext replace QString coth QString y backuptext replace QString sin QString backuptext replace QString cos QString backuptext replace QString tan QString backuptext replace QString cot QString backuptext replace QString log QString backuptext replace QString ln QString backuptext replace QString mod QString backuptextBas backuptext backuptextSon backuptext int Counter 0 计数器 while Counter Jing zhan Counter int size backuptext size yer backuptext indexOf ArrayJing zhan sign value Counter ArrayyeIsaret backuptext at yer backuptextBas remove yer size 1 backuptextSon remove 0 yer 1 Array append backuptextBas Array append ArrayyeIsaret backuptext backuptextSon backuptextBas backuptextSon Counter Counter 1 int yerEql backuptextSon indexOf backuptextSon remove yerEql yerEql Array append backuptextSon Array append qDebug Array if kuohaoBian lian true while Array contains true int ZkuohaoYer Array lastIndexOf int YkuohaoYer Array indexOf ZkuohaoYer for int kopyaCounter ZkuohaoYer 1 kopyaCounter YkuohaoYer kopyaCounter Arraykuohao append Array value kopyaCounter clickJing zhan 2 Arraykuohao Array replace ZkuohaoYer QString number Results for int i ZkuohaoYer 1 icbTri currentText 度 trig shu trig shu pi 180 else if ui cbTri currentText 弧度 else if ui cbTri currentText 梯度 trig shu trig shu pi 200 else if tur 2 if ui cbTri currentText 度 trig shu trig shu pi 180 else if ui cbTri currentText 弧度 else if ui cbTri currentText 梯度 trig shu trig shu pi 200 return trig shu 通过以上说明 我想大家不难发现 本课题的核心最要是在于实现表达式 和基于其的按键功能特点开发上面 最后 基于以上说明 我们便可以进行如下的详细设计过程 3 13 1 简单计算功能简单计算功能 普通计算功能主要是实现一般的数字运算 并将计算的结果显示出来 主 要代码如下 进入主界面是默认的普通运算界面 其代码如下 ui setupUi this clickSimple 简单模式 clickJing zhan caozuoleixing 表达式 layout setSizeConstraint QLayout SetFixedSize 加大输出字号 手工方式 也可以从 Qt 设计师中修改 Font 属 性 QFont font ui LineEdit1 font font setPointSize font pointSize 8 ui LineEdit1 setFont font Qt 设计师的方法如下 在其属性框中选中 font 按个人需要设置属性 注 其他部分的设计就如这种方法 当然 为了说明版权 考虑到后面组合框切换 我们采用手工的方式添加 Label 组件 并在后面界面切换时 合理的进行隐藏 以实现预期的效果 Version 618 labelIS new QLabel Version QObject tr 出品 labelIO new QLabel Version QObject tr 出品 以上程序写在如下的构造函数中 chendahao chendahao QWidget parent QMainWindow parent ui new Ui chendahao 简单计算界面如下 简单计算界面如下 图 1 简单计算界面 3 23 2 其中各功能键的具体实现 加法运算加法运算 void chendahao clickPlus clickJing zhan Pro Plus mu qianPlus pointBian lian false 减法运算减法运算 void chendahao clickDecrease clickJing zhan Pro Decrease mu qianDecrease pointBian lian false 乘法运算乘法运算 void chendahao clickMultiply clickJing zhan Pro Multiply x mu qianMultiply pointBian lian false 除法运算除法运算 void chendahao clickEliminate clickJing zhan Pro Eliminate mu qianEliminate pointBian lian false 幂的运算幂的运算 void chendahao clickCi clickJing zhan Pro Ci mu qianCi n 阶乘的实现阶乘的实现 void chendahao clickJie cheng if Jing zhan unary true if safetyJing zhan true qDebug 错误 else int Jie cheng 1 clickEql qian Double ui LineEdit1 text toDouble double Jie chengCounter qian Double while Jie chengCounter 0 Jie cheng Jie cheng Jie chengCounter Jie chengCounter Jie chengCounter 1 ui LineEdit1 setText QString number Jie cheng ui texthistory insertPlainText QString number history Counter QString number qian Double QString number Jie cheng n history Counter history Counter 1 else if Jing zhan Expression true clickJing zhan Pro Jie cheng mu qianJie cheng Jie chengBian lian true 3 33 3 操作类型的切换操作类型的切换 操作类型键的 切换 void chendahao clickReplaceTur QLabel labelcaozuoleixing QLabel label2caozuoleixing bool Jing zhan caozuoleixing labelcaozuoleixing show label2caozuoleixing hide ui LineEdit1 setText clickSifirla Jing zhan ui statusBar addWidget labelcaozuoleixing 一元类型 if Jing zhan caozuoleixing Jing zhan unary Jing zhan unary true Jing zhan Expression false ui btnChangesign setEnabled true ui btn 1 x setEnabled true ui btnZkuohao setEnabled false ui btnYkuohao setEnabled false ui action unary setChecked true ui action Expression setChecked false 多元类型 表达式 else if Jing zhan caozuoleixing Jing zhan Expression Jing zhan unary false Jing zhan Expression true ui btnChangesign setEnabled false ui btn 1 x setEnabled false ui btnZkuohao setEnabled true ui btnYkuohao setEnabled true ui action unary setChecked false ui action Expression setChecked true 图 2 操作类型切换 3 43 4 通过如此设置后可以有带表达式的运算或者不带 带表达通过如此设置后可以有带表达式的运算或者不带 带表达 式的如下图 式的如下图 图 3 带表达式的界面 3 53 5 简单计算和科学计算的切换简单计算和科学计算的切换 为适应不同的计算需求 设置了科学计算和简单计算 其主要程序及代码 如下所示 科学 与 简单 类型的切换 void chendahao clickSwitch if ui gbMat isHidden true ui gbMat show ui btnSwitch setText QChar 0 x2191 上下符号 ui action Ke xue setChecked true 科学 else ui gbMat hide ui btnSwitch setText QChar 0 x2193 ui action Ke xue setChecked false 科学 运行后界面如下图 图 4 科学计算界面 3 63 6 历史记录历史记录 其实现代码如下 3 6 13 6 1 历史删除功能历史删除功能 历史 Goup 历史 删除 void chendahao clickHistoryDelete ui texthistory clear history Counter 1 ui statusBar showMessage Version tr 已删除 10000 3 6 23 6 2 历史另存为功能历史另存为功能 void chendahao clickHistorySaveas QString a QFileDialog getSaveFileName this tr Saveas home untitled txt t r 记录式文件 QFile f a if f open QIODevice WriteOnly QTextStream out out texthistory toPlainText out flush ui statusBar showMessage Version tr 已保存 10000 3 6 33 6 3 历史功能界面如下 历史功能界面如下 图 5 历史功能 单击另存为键可以可以将历史记录保存为 记事本文件格式 txt 3 73 7 清空功能 清空功能 清空功能的具体实现代码如下 Clear 具体功能实现 初始化 void chendahao clickClear ui LineEdit1 setText ui texthistory insertPlainText n history Counter history Counter 1 clickSifirla satirIlk shu true zeroBian lian false pointBian lian false Jing zhan Bian lian false first shu true temp shu1 0 temp shu2 0 tempResults 0 jiao Bian lian false EqlBian lian false errorBian lian false safetyJing zhan false shu2 0 shu1 0 Results 0 ResultsK 0 ResultsKS 0 qian Double 0 tri 0 tempResults 0 3 3 关于关于 about about us us 这里 我们主要说明 618 功能和窗体的实现 由于需要在窗体中填加组员照片 故先将所需资源添加到 image 文件夹中 并在 chenhao cpp 中实现下面代码 在窗体内加入照片 但是 貌似有点失误 导致 主界面都出现照片 但不影响嘛 void QWidget paintEvent QPaintEvent QPainter painter this QPixmap pix pix load image 110531 202552 jpg painter drawPixmap 0 0 100 100 pix 对于个人信息的添加 具体实现在 chenhao cpp 中的构造函数中 代码如下 构造函数 主要目的 添加名字 学号 chenhao chenhao QWidget parent QWidget parent ui new Ui chenhao ui setupUi this connect ui btn you guess SIGNAL clicked this SLOT clickbtn you guess ui lbl618 setText t t 陈 皓 201005010508 n t t 蒲小鹏 201005010507 n t t 饶和丰 201005010506 n t t 张晨曦 201005010504 n t t 张良军 201005010503 n 当然 由于需要设置链接 我们可以采用以下方式设置 在 Qt 设计师中 选中需要设置链接的 Label 组件 在其属性栏中实现以下操作 选中 点击 然后在出现的窗体中编辑 当然 本设计的超链接也在其中设置 最后 我们只需要完成 618 中的按键 槽函数 的功能就行了 具有代码 如下 void chenhao clickbtn you guess close 然后 只需要点击 中的 618 就会出现如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年生理实验课考试题及答案
- 2025年美术教育考试试题及答案
- 扑火安全培训心得课件
- 2025年焊工证考试题分类及答案
- 情景表演时空对话课件
- 心理咨询考试试卷及答案
- 山东焊工证考试试题及答案
- 恐龙科普知识课件
- 衢州语文高考试卷及答案
- 公务员岗位招聘考试题及答案
- 黑龙江:装配式混凝土矩形渠道应用技术规范(DB23-T 2334-2019)
- T/CECS 10001-2019用于混凝土中的防裂抗渗复合材料
- 2024福建农信社春季招聘笔试历年典型考题及考点剖析附带答案详解
- 海关退运协议书
- 新八德教育工作计划、总结模版
- 月嫂 考试题及答案
- 2025保定市涞源县涞源镇社区工作者考试真题
- 物质安全资料脱模剂MSDS
- 2025年中国过敏性鼻炎市场研究报告
- 房建工程总承包EPC项目技术标(投标方案)(技术标)
- 招生奖励方案市技工学校高考奖励方案
评论
0/150
提交评论