QT课程设计报告_第1页
QT课程设计报告_第2页
QT课程设计报告_第3页
QT课程设计报告_第4页
QT课程设计报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. 题目:简易计算器学院:信息科学与技术 专业:软件工程姓名:学号:精品.2014.04.19 1、 需求分析当今社会是信息社会,科技经济高速发展的社会,为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。然而,电脑已经成为当代人生活的必需品,运行在电脑上的计算器成为了人们的生活学习绝佳伴侣。下面是用c+编写的,基于qt图形用户界面应用程序框架的计算器,它实现了对整数,浮点数的加减乘除幂运算。2、 设计过程1 界面设计在qt设计器中布置好计算器界面,所有按键采用的pushbutton控件,显示计算结果采用的是lineedit控件。完成的界面如下图所示:图 计算器界面为了使按钮显示

2、美观,将每个button的属性设置如下:精品.图 button大小、字体属性为符合人们的使用习惯,将lineedit空间的属性更改,使得输入的数字和符号出现在空间的右边起。如图:图 lineedit控件属性更改精品.2 控件重命名将界面布局设计好后,将各个空间改名,例如“0”改为but0。3 简单信号响应对于button exit退出程序,这样简单的响应,直接在设计器中通过添加信号和槽来完成,如图:图 信号和槽4 辅助数据成员及函数为了区分每一次计算和保存操作数、操作符,和辅助函数(如:输出函数),在calculator.h的类中设定数据成员以及成员函数:calculat.cpp中辅助函数的实

3、现:精品.精品.5 数字键的响应以button 0为例,在calculator.cpp文件中添加but0的代码,如下:6 小数点的响应当一个操作数已经输入了一个小数点时,将小数点按钮置为不可用,以防用户重复输入小数点,导致输入操作数不合法,如下如:7 运算功能的响应以加法为例,向lineedit中输入显示+号,并在数据成员中保存,以便后面进行计算:精品.8 清屏的响应首先将lineedit的显示清除,再置为0;将一切辅助的数据成员数据重置到新一轮计算的开始状态,如:运算符为空,操作数为0等。实现如下:9 等号的响应根据数据成员记录的运算符和操作数进行相应的计算,并将得出的结果转化为string

4、显示在lineedit上,并重置辅助数据成员,准备下一轮的计算开始。精品.三、 程序使用示例精品.四、 总结 通过计算器设计,我学到了利用qt设计简单窗口应用程序的的方法,初步了解了使用qt工具编写窗口程序的新颖,了解了槽和信号等基本知识,学会了如何使用新工具(qt)帮助程序开发。 本计算器实现的功能还只是很少一部分,希望随着自身水平的提高可以将其完善起来。精品. 本次程序中还有一个收获是,幂运算开始采用的是qq输入法中的特殊字符,结果无法显示,后面换成键盘上的,就能显示了。五、 参考资料1) c+ gui qt 4编程(第二版)(jasmin blanchette, mark summerf

5、ield) 电子工业出版社 2008六、 附程序源代码calculator.h文件:#ifndef calculator_h#define calculator_h#include #include ui_calculator.hclass calculator : public qwidget q_objectpublic: calculator(qwidget *parent = 0, qt:wflags flags = 0); calculator(); private slots: void on_but0_clicked(); void on_but1_clicked(); void

6、 on_but2_clicked(); void on_but3_clicked(); void on_but4_clicked(); 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(); vo

7、id on_butdeng_clicked(); void on_butzhengfu_clicked(); void on_butmi_clicked(); void on_butdian_clicked(); void on_butclear_clicked();private: ui:calculatorclass ui; bool finishedone;/是否完成了一趟计算 bool havedian;/是否已经输入了点 bool haveopera;/是否已经输入过操作符 bool newinput;/清屏后的标志 double num1;/操作数 double num2;/操作数

8、 char opera;/运算符 qstring str;/用来进行double和string之间转换 void clear_lineedit();/每输入一个操作数或操作符的小清屏 void input(char ch);/向lineedit进行输入 void inputcheck();/输入前的检查;#endif / calculator_hcalculator.cpp文件:#include calculator.h#include #include #include #define p 0.000000000000001calculator:calculator(qwidget *par

9、ent, qt:wflags flags) : qwidget(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

10、() inputcheck(); input(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_clicked() inputcheck()

11、;精品. 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(); clear_lineedit(); ui.lineedit-settext(+); opera = +;/记录操作符 haveopera =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论