QT课程设计报告.docx

上传人:b****5 文档编号:2847171 上传时间:2022-11-15 格式:DOCX 页数:14 大小:300.53KB
下载 相关 举报
QT课程设计报告.docx_第1页
第1页 / 共14页
QT课程设计报告.docx_第2页
第2页 / 共14页
QT课程设计报告.docx_第3页
第3页 / 共14页
QT课程设计报告.docx_第4页
第4页 / 共14页
QT课程设计报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

QT课程设计报告.docx

《QT课程设计报告.docx》由会员分享,可在线阅读,更多相关《QT课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。

QT课程设计报告.docx

QT课程设计报告

 

成都理工大学

 

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

#include

#include"ui_calculator.h"

classcalculator:

publicQWidget

{

Q_OBJECT

public:

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_H

calculator.cpp文件:

#include"calculator.h"

#include

#include

#include

#defineP0.000000000000001

calculator:

:

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;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1