QT课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

题目:简易计算器学院:信息科学与技术专业:软件工程姓名:学号:2014.04.19一、需求分析当今社会是信息社会,科技经济高速发展的社会,为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。然而,电脑已经成为当代人生活的必需品,运行在电脑上的计算器成为了人们的生活学习绝佳伴侣。下面是用C++编写的,基于Qt图形用户界面应用程序框架的计算器,它实现了对整数,浮点数的加﹑减﹑乘﹑除﹑幂运算。二、设计过程1.界面设计在QT设计器中布置好计算器界面,所有按键采用的pushButton控件,显示计算结果采用的是lineEdit控件。完成的界面如下图所示:图计算器界面为了使按钮显示美观,将每个button的属性设置如下:图button大小、字体属性为符合人们的使用习惯,将lineEdit空间的属性更改,使得输入的数字和符号出现在空间的右边起。如图:图lineEdit控件属性更改2.控件重命名将界面布局设计好后,将各个空间改名,例如“0”改为but0。3.简单信号响应对于buttonexit退出程序,这样简单的响应,直接在设计器中通过添加信号和槽来完成,如图:图信号和槽4.辅助数据成员及函数为了区分每一次计算和保存操作数、操作符,和辅助函数(如:输出函数),在calculator.h的类中设定数据成员以及成员函数:calculat.cpp中辅助函数的实现:5.数字键的响应以button0为例,在calculator.cpp文件中添加but0的代码,如下:6.小数点的响应当一个操作数已经输入了一个小数点时,将小数点按钮置为不可用,以防用户重复输入小数点,导致输入操作数不合法,如下如:7.运算功能的响应以加法为例,向lineEdit中输入显示+号,并在数据成员中保存,以便后面进行计算:8.清屏的响应首先将lineEdit的显示清除,再置为0;将一切辅助的数据成员数据重置到新一轮计算的开始状态,如:运算符为空,操作数为0等。实现如下:9.等号的响应根据数据成员记录的运算符和操作数进行相应的计算,并将得出的结果转化为string显示在lineEdit上,并重置辅助数据成员,准备下一轮的计算开始。三、程序使用示例四、总结通过计算器设计,我学到了利用Qt设计简单窗口应用程序的的方法,初步了解了使用QT工具编写窗口程序的新颖,了解了槽和信号等基本知识,学会了如何使用新工具(Qt)帮助程序开发。本计算器实现的功能还只是很少一部分,希望随着自身水平的提高可以将其完善起来。本次程序中还有一个收获是,幂运算开始采用的是QQ输入法中的特殊字符‘ˆ’,结果无法显示,后面换成键盘上的‘^’,就能显示了。五、参考资料1)《C++GUIQT4编程》(第二版)(JasminBlanchette,MarkSummerfield)电子工业出版社2008六、附程序源代码calculator.h文件:#ifndefCALCULATOR_H#defineCALCULATOR_H#includeQtGui/QWidget#includeui_calculator.hclasscalculator:publicQWidget{Q_OBJECTpublic:calculator(QWidget*parent=0,Qt::WFlagsflags=0);~calculator();privateslots:voidon_but0_clicked();voidon_but1_clicked();voidon_but2_clicked();voidon_but3_clicked();voidon_but4_clicked();voidon_but5_clicked();voidon_but6_clicked();voidon_but7_clicked();voidon_but8_clicked();voidon_but9_clicked();voidon_butJia_clicked();voidon_butJian_clicked();voidon_butCheng_clicked();voidon_butChu_clicked();voidon_butDeng_clicked();voidon_butZhengfu_clicked();voidon_butMi_clicked();voidon_butDian_clicked();voidon_butClear_clicked();private:Ui::calculatorClassui;boolfinishedOne;//是否完成了一趟计算boolhaveDian;//是否已经输入了点boolhaveOpera;//是否已经输入过操作符boolnewInput;//清屏后的标志doublenum1;//操作数doublenum2;//操作数charopera;//运算符QStringstr;//用来进行double和string之间转换voidclear_lineEdit();//每输入一个操作数或操作符的小清屏voidinput(charch);//向lineEdit进行输入voidinputCheck();//输入前的检查};#endif//CALCULATOR_Hcalculator.cpp文件:#includecalculator.h#includemath.h#includeQString#includeQtGui#defineP0.000000000000001calculator::calculator(QWidget*parent,Qt::WFlagsflags):QWidget(parent,flags){ui.setupUi(this);finishedOne=true;//是否完成了一趟计算haveDian=false;//是否已经输入了点haveOpera=false;//是否已经输入过操作符newInput=true;//是否是清过屏的num1=0;num2=0;opera='';//初始为空格}voidcalculator::on_but0_clicked(){inputCheck();input('0');}voidcalculator::on_but1_clicked(){inputCheck();input('1');}voidcalculator::on_but2_clicked(){inputCheck();input('2');}voidcalculator::on_but3_clicked(){inputCheck();input('3');}voidcalculator::on_but4_clicked(){inputCheck();input('4');}voidcalculator::on_but5_clicked(){inputCheck();input('5');}voidcalculator::on_but6_clicked(){inputCheck();input('6');}voidcalculator::on_but7_clicked(){inputCheck();input('7');}voidcalculator::on_but8_clicked(){inputCheck();input('8');}voidcalculator::on_but9_clicked(){inputCheck();input('9');}//乘法voidcalculator::on_butCheng_clicked(){num1=ui.lineEdit-text().toDouble();clear_lineEdit();ui.lineEdit-setText(*);opera='*';//记录操作符haveOpera=true;}//加法voidcalculator::on_butJia_clicked(){num1=ui.lineEdit-text().toDouble();clear_lineEdit();ui.lineEdit-setText(+);opera='+';//记录操作符haveOpera=true;}//减voidcalculator::on_butJian_clicked(){num1=ui.lineEdit-text().toDouble();clear_lineEdit();ui.lineEdit-setText(-);opera='-';//记录操作符haveOpera=true;}

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功