




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Qt作业设计报告题目:简易计算器学院:信息科学与技术 专业:软件工程姓名:生县 学号:2014.04.19一、需求分析当今社会是信息社会,科技经济高速发展的社会,为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。然而,电脑已经成为当代人生活的必需品,运行在电脑上的计算器成为了人们的生活学习绝佳伴侣。下面是用C+ 编写的,基于Qt 图形用户界面应用程序框架的计算器,它实现了对整数,浮点数的加、减、乘、除、哥运算。二、设计过程1 界面设计在 QT 设计器中布置好计算器界面,所有按键采用的pushButton 控件, 显示计算结果采用的是lineEdit 控件。完成的界面如下图所示:
2、清屏图计算器界面为了使按钮显示美观,将每个button的属性设置如下:图button大小、字体属性为符合人们的使用习惯,将lineEdit空间的属性更改,使得输入的数字和符号出现在空间的右边起。如图:Property Value ettusTip > whatsThis l> accesibler. > accessible.layoutOir. RightTbLeft dutoFillBdc.styleSheet> locale Chirr&se, China 、inputMethhJF mhNone图lineEdit控件属性更改2 .控件重命名将界面布局设计
3、好后,将各个空间改名,例如" 0"改为but0。3 .简单信号响应对于button exit 退出程序,这样简单的响应,直接在设计器中通过添加信号和槽来完 成,如图:Si gnal/Slo t Edi torfl X孑口SenderSignalRsceiverSlotbutEjcitdicIcedQcalculatorChss closeO图信号和槽4 .辅助数据成员及函数为了区分每一次计算和保存操作数、操作符,和辅助函数(如:输出函数),在calculator.h的类中设定数据成员以及成员函数:private;Ui:calculatorCldss ui;bool fini
4、shed。是否完成了一趟计算bool have Di an;是否已经输入了点bool haveOpe®/是否已经输入过操作将bool newlnput;/清屏后的标志double numl;/操作数 1double num2;操彳乍数2char opera;运算符QString str;用来进行doubl电和string之间转换void dedrJincEd计0;每输入一个操作数或操作符的小清屏void input(chdih);向I ineEdit进行输入void inputCh史ck。;/扁入前的calculat.cpp 中辅助函数的实现:输入函数void cal culator
5、:in put (char ch)(/仇果是新开始的输入,则先清空if (newlnput)ui,lineEdit->clearO;)“lineEdit内容等于原有的加上输入的字符ui.lineEdit-> set!ext(u i.line Edit-> textQ + ch;newlnput 三 false;每次输入前判断是否是新的一次计算J并更新数据void calculator:inputCheckO(if (finishedOne)(“标志新的T&计算,和小数点,提作符,新输入的标志量重置 finishedOne = false;have Dian = fal
6、se;haveOpera = false;newlnput = true;并清空lineEditclearJineEditO;小清零,为的是在输入完操作数后,要输入操作符的时候,要清屏 void ciilculjitonxletfirjineEditQ( 一uiJineEdit->clearO;hveDian = false;newlnput = true;u i.but Dian-> set Ena hied (tue);”小数点 42 可用|5 .数字键的响应以button 0 为例,在calculator.cpp 文件中添加 but0的代码,如下:void calculdto
7、r:on_butO_<lickedO(inputCheckQ;input('O');)6 .小数点的响应当一个操作数已经输入了一个小数点时,将小数点按钮置为不可用,以防用户重复输入小数点,导致输入操作数不合法,如下如:点void c sic uldtor:on_ but Dian cl ickedQ ''ui.butDian->?ptEnablpd(false);果是新的输入刚开始,即O.XXX ,则自动添零 it (newlnput) inputfO1);)input。;I7 .运算功能的响应以加法为例,向lineEdit中输入显示+号,并在数据成
8、员中保存,以便后面进行计算:加法void cslculator:on butJid clicked;) -numl = ui.1 ineEdit- >textO.toDoubIe0;clearJineEditQ;ui.llineEdit->s etT ext(* +opera =中;记录操作将haveOperd = true;8 .清屏的响应首先将lineEdit的显示清除,再置为0;将一切辅助的数据成员数据重置到新一轮计算的开始状态,如:运算符为空,操作数为0等。实现如下清零void calculdtor:on_buiClecir clicked()( - -ui.lineEdi
9、t->clearO; uLlincEdibxetText。) finishedOne = true;haveDian = false;newlnput = true;numl = 0;num2 = 0;opera ='ui.butDian->setEnabled(tru e); 小励点®ffl可用9 .等号的响应根据数据成员记录的运算符和操作数进行相应的计算,并将得出的结果转化为string显示在lineEdit上,并重置辅助数据成员,准备下一轮的计算开始。三、程序使用示例四、总结?通过计算器设计,我学到了利用 Qt设计简单窗口应用程序的的方法,初步了解了使用QT
10、工具编写窗口程序的新颖,了解了槽和信号等基本知识,学会了如何使用新工具(Qt )帮助程序开发。?本计算器实现的功能还只是很少一部分,希望随着自身水平的提高可以将其完善起来。?, ? 本次程序中还有一个收获是,幂运算开始采用的是QQ 输入法中的特殊字符结果无法显示,后面换成键盘上的 人,就能显示了。5、 参考资料电子工1) C+ GUI QT 4 编程 (第二版)(Jasmin Blanchette, Mark Summerfield)业出版社20086、 附程序源代码calculator.h 文件:#ifndef CALCULATOR_H#define CALCULATOR_H#include
11、 <QtGui/QWidget>#include "ui_calculator.h"class calculator : public QWidgetQ_OBJECTpublic:calculator(QWidget *parent = 0, Qt:WFlags flags = 0);calculator();private slots:void on_but0_clicked();void on_but1_clicked();void on_but2_clicked();void on_but3_clicked();void on_but4_clicked()
12、;void on_but5_clicked();void on_but6_clicked();void on_but7_clicked();void on_but8_clicked();void on_but9_clicked();void on_butJia_clicked();void on_butJian_clicked();void on_butCheng_clicked();void on_butChu_clicked();void on_butDeng_clicked();void on_butZhengfu_clicked();void on_butMi_clicked();vo
13、id on_butDian_clicked();void on_butClear_clicked();private:Ui:calculatorClass ui;bool finishedOne;/ 是否完成了一趟计算bool haveDian;/ 是否已经输入了点bool haveOpera;/ 是否已经输入过操作符bool newInput;/ 清屏后的标志double num1;/操作数double num2;/操作数char opera;/ 运算符QString str;/ 用来进行double 和 string 之间转换void clear_lineEdit();/ 每输入一个操作数
14、或操作符的小清屏void input(char ch);/ 向 lineEdit 进行输入void inputCheck();/ 输入前的检查;#endif / CALCULATOR_Hcalculator.cpp 文件:#include "calculator.h"#include <math.h>#include <QString>#include <QtGui>#define P 0.000000000000001 calculator:calculator(QWidget *parent, Qt:WFlags flags): QW
15、idget(parent, flags)ui.setupUi(this);finishedOne = true;/是否完成了一趟计算haveDian = false;/是否已经输入了点haveOpera = false;/是否已经输入过操作符newInput = true;/是否是清过屏的num1= 0;num2= 0;opera= ' '/ 初始为空格void calculator:on_but0_clicked()inputCheck();input('0');void calculator:on_but1_clicked() inputCheck();in
16、put('1');void calculator:on_but2_clicked()inputCheck();input('2');void calculator:on_but3_clicked()inputCheck();input('3');void calculator:on_but4_clicked()inputCheck();input('4');void calculator:on_but5_clicked()inputCheck();input('5');void calculator:on_but6
17、_clicked()inputCheck();input('6');void calculator:on_but7_clicked()inputCheck();input('7'); void calculator:on_but8_clicked()inputCheck();input('8');void calculator:on_but9_clicked()inputCheck();input('9');/ 乘法void calculator:on_butCheng_clicked()num1 = ui.lineEdit->text().toDouble();clear_lineEdit();ui.lineEdit->setText("*");opera = '*'/ 记录操作符haveOpera = true;/ 加法void calculator:on_butJia_clicked()num1 = ui.lineEdit->text().toDouble();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年网络技术实务考试试题及答案
- 杭州银行校招面试题及答案
- 化疗后患者护理查房
- 肌肉注射操作的安全防护措施
- 无菌技术在手术室的实施
- 糖尿病足病变的综合护理方案
- 2025年网络技术考试典型错题试题及答案
- 工程项目变更课件
- 工程销售培训课件
- 工程造价工程审计课件下载
- 张朋《了凡四训》课件
- 企业人力资源管理中的成本控制与法律风险防控
- 江苏国强产品质量证明书-
- 2023年英语高考试卷(全国卷1)试题及答案
- 上海交通大学学生生存手册
- 遇见成长衔接梦想幼小衔接家长会PPT模板(含完整内容)
- 2023年六盘水市六枝特区小升初英语考试题库及答案解析
- JJG 1154-2018卡尔·费休容量法水分测定仪
- GB/T 4586-1994半导体器件分立器件第8部分:场效应晶体管
- GB/T 35198-2017土方机械轮胎式装载机试验方法
- GB/T 17247.2-1998声学户外声传播的衰减第2部分:一般计算方法
评论
0/150
提交评论