嵌入式qt实验报告简单计算器的设计_第1页
嵌入式qt实验报告简单计算器的设计_第2页
嵌入式qt实验报告简单计算器的设计_第3页
嵌入式qt实验报告简单计算器的设计_第4页
嵌入式qt实验报告简单计算器的设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、电子科技大学学生实验报告书课 程名称 实用嵌入式应用系统设计与实现任课老师实 验名称 简单功能计算器的设计学生姓名 学生学号学生学院2015 2016学年 第1学期实验项目名称简单功能计算器的设计实验日期、实验内容1、设计一个简单计算器并能完成简单的四则运算,实时更新运算结果;2、带界面计算器自带数字及功能按钮,能实现更多以及更灵活的的计算功能。一、实验步骤设计(包括实验方案设计、实验步骤或算法描述等)实验设计方案如下:图1简单计算器的设计方案流程图2带显示界面计算器的设计方案流程实验步骤:一、简单计算器的设计:1、创建一个Qt GUI应用项目,项目名称为 dialog_designer基类选

2、择Qwidget。项目建好后会自动生成一系列文件, 双击界面文件widget.ui进入Qt Designer进 行界面设计。2、界面设计完成后修改控件的各属性,并修改Tab顺序,点击工具栏上的的“编 辑Tab顺序”按钮,依次按顺序点击即可,完成后再按工具栏上的编辑控件按钮 返回。3、在头文件widget.h的Widget类添加共有槽函数;在源文件widget.cpp中添加新 代码。4、用模拟器调试运行。二、带界面的计算器的设计:与简单计算器的设计步骤基本相同。但是需要在项目文件(后缀为.pro )添加一段代码,使得程序中能使用Qt脚本,在原有代码的基础上添加。在头文件widget.h的Widg

3、et类添加共有槽函数和全局变量,以及包含头文件QtScript,以使用Qt Script API。在源文件widget.cpp中添加新代码,之后即可运行调试。三、实验结果分析及代码(包括结果描述、综合分析及实现关键代码)实验结果如下:1、简单计算器:代码:(1)在widget.h文件中#ifndef WIDGET_H#define WIDGET_H#include namespaceji classWidget;classWidget: public QWidgetQ_OBJECTpublic:explicit Widget(QWidget *pare nt = 0); Widge();pri

4、vate slotsvoid on_doubleSpinBox_1_valueChanged();void on_doubleSpinBox_2_valueChanged();void on_doubleSpinBox_3_valueChanged();void on_doubleSpinBox_4_valueChanged();void on_doubleSpinBox_5_valueChanged();void on_doubleSpinBox_6_valueChanged();void on_doubleSpinBox_7_valueChanged();void on_doubleSpi

5、nBox_8_valueChanged();private:Ui:Widget*ui;#endif/ WIDGET_H(2)在widget.cpp源文件中#include widget.h#include ui_widget.hWidget:WidgetQWidget*pare nt):QWidget(pare nt),ui(new Ui: Widget)ui-setupUi(this);void Widget:on_doubleSpinBox_1_valueChanged() ui- outout_plu&setTextQStri ng: nu mber(ji-doubleSpi nBox_

6、1value() + ui- doubleSp in Box_2value();void Widget:on_doubleSpinBox_2_valueChanged()ui- outout_plu&setTextQStri ng: nu mber(ji-doubleSpi nBox_1value() + ui- doubleSp in Box_2value();void Widget:on_doubleSpinBox_3_valueChanged()ui- outout_mi nu& setText(QStri ng: nu mber(ji-doubleSp in Box_3value()-

7、 ui- doubleSp in Box_4value();void Widget:on_doubleSpinBox_4_valueChanged()ui- outout_mi nu& setText(QStri ng: nu mber(ji-doubleSp in Box_3value()- ui- doubleSp in Box_4value();void Widget:on_doubleSpinBox_5_valueChanged()ui- outout_multi-setText(QStri ng: nu mberQi- doubleSp in Box_5value() * ui- d

8、oubleSp in Box_6value();void Widget:on_doubleSpinBox_6_valueChanged()ui- outout_multi-setText(QStri ng: nu mberQi- doubleSp in Box_5value() * ui- doubleSp in Box_6value();void Widget:o n_doubleSpi nBox_7_valueCha nged()ui- outout_div-setText(QStri ng:nu mber(ji- doubleSp in Box_7value()/ui- doubleSp

9、 in Box_8value();void Widget:o n_doubleSpi nBox_8_valueCha nged()ui-outout_div-setText(QStri ng: nu mber(ji-doubleSp in Box_7value()/ ui- doubleSp in Box_8value();Widget:Widget()deleteui;2、带显示界面的计算器:代码:(1) 在 shiyanB.pro项目文件中QT+= coreguiQT += script greaterThanQT_MAJOR_VERSION , 4):QT += widgets TARG

10、ET = shiya nBTEMPLATE = appSOURCES+=widget.cppHEADERS += widget.hFORMS += widget.ui(2)在头文件 widget.h中#ifndef WIDGET_H#define WIDGET_H#include #include QWidgetnamespaceji classWidget;。報HS旨 9wF()9EnNloopo 。報Hs旨 9wFogEnEoopo 。報Hs旨寸w10寸 EnEoopo 。報Hs旨 0wFoeEnEoopo 。報Hs旨CXIwFOCXIEnEoopo 。報Hs旨 LwF()LEnNloop

11、o so-s 0一-qndQ 6p 一 m sH luped*a)6p 一 MO6P 一 m 10一dx 。*超阻则 1wns6co0 o一-qnd _LO山畐 010a)6p 一 Moo-qnd -a)6p 一 Msseo护八!d =/!()|nb3|0!|0 pjOA。嫌国辭阴 /$f / 乂)八!CPP!Q P!OA /!()nin|AI|O!P P!OA 。嫌国辭阴-册第 /!()snui|Al|O!P P!OA 。嫌国辭阴 + 册第 /!()sn|d|O!P P!OA 。嫌国辭阴o记|即/!()8|8a|0!P P!OA0aWUB8l/()ue8|9|0!p pjOA。嫌国辭阴(册第

12、 /Z()i8|oejq|O!p pjOA /:()妙paicnP!Q PjOA 伽!0押旧 P!OA 。嫌国辭阴 0/!()omnN|0!PPjOA。嫌国辭阴 6/!()6innN|0!PPjOA。嫌国辭阴 8/!()8innN|0!PPjOA。嫌国制明 L/!()ZiunN|O!P PjOAUi:Widget*ui;;#endif/ WIDGET_H(3)在源文件 widget.cpp中#include widget.h#inelude ui_widget.hWidget:WidgetQWidget*pare nt):QWidget(pare nt),ui(new Ui: Widget)u

13、i-setupUi(this);sum=; connect(ii- pushButton_1,SIGNAL (clicked()this,SLOT(clickNum1();conn ect(ji-pushButton_2SIGNAL (clicked()this,SLOT(clickNum2();conn ect(ji-pushButton_3SIGNAL (clicked() this, SLOT(clickNum3();conn ect(ui-pushButton_4SIGNAL (clicked()this,SLOT(clickNum4();conn ect(ui-pushButton_

14、5SIGNAL (clicked()this, SLOT(clickNum5();conn ect(ui-pushButton_6SIGNAL (clicked()this, SLOT(clickNum6();conn ecti-pushButton_7SIGNAL (clicked()this,SLOT(clickNum7();conn ect(ui-pushButton_8SIGNAL (clicked()this,SLOT(clickNum8();conn ect(ui-pushButton_9SIGNAL (clicked()this,SLOT(clickNum9();conn ect

15、(ui-pushButton_0SIGNAL (clicked()this,SLOT(clickNumO();conn ect(ui- pushButton_poi nt,SIGNAL(clicked()this,SLOT(clickPoi nt();conn ect(ui-pushButton_lbracketSIGNAL (clicked()this,SLOT(clickLbracket();conn ect(ui-pushButton_rbracketSIGNAL (clicked()this,SLOT(clickRbracket();conn ect(ji-pushButton_cle

16、anSIGNAL(clicked()this,SLOT(clickClea n();conn ect(ji-pushButton_deleteSIGNAL (clicked()this,SLOT(clickDelete();conn ect(ji-pushButton_plusSIGNAL (clicked()this,SLOT(clickPlus();connect(ui-pushButton_minusSIGNAL (clicked()this,SLOT(clickMinus();conn ect(ji-pushButton_multi,SIGNAL(clicked()this,SLOT(

17、clickMulti();connect(ji-pushButton_div,SIGNAL (clicked()this,SLOT(clickDiv();conn ectJi- pushButton_eqjJSIGNAL (clicked()this,SLOT (clickEqul();void Widget:clickNum1() 按钮 1 的槽函数。QString num1=1;QStri ng str= ui-li neEdit-text();str=st 叶nu ml;if(ui-li neEdit-text()=O)ui- lin eEdit-setText( nu ml);else

18、ui- lin eEdit-setText(str);void Widget:clickNum2() 按钮 2 的槽函数。QString num仁2;QStri ng str=ui-li neEdit-text();str=str+ num1;if(ui-li neEdit-text()=O)ui- lin eEdit-setText( nu ml);elseui- lin eEdit-setText(str);void Widget:clickNum3() 按钮 3 的槽函数。QString num仁3;QStri ng str=ui-li neEdit-text();str=st 叶nu

19、m1;if(ui- li neEdit-text()=O)ui- lin eEdit-setText( nu ml);elseui- lin eEdit-setText(str);void Widget:clickNum4() 按钮 4 的槽函数。QString num仁4;QStri ng str=ui-li neEdit-text();str=st 叶nu m1;if(ui- li neEdit-text()=O)ui- lin eEdit-setText (nu ml);elseui- lin eEdit-setText(str);void Widget:clickNum5() 按钮 5

20、 的槽函数。QString num仁5;QStri ng str=ui-li neEdit-text();str=st 叶nu m1;if(ui- li neEdit-text()=O)ui- lin eEdit-setText( nu m1);elseui- lin eEdit-setText(str);void Widget:clickNum6() 按钮 6 的槽函数。QString num仁6;QStri ng str=ui-li neEdit-text();str=st 叶nu m1;if(ui- li neEdit-text()=O)ui- lin eEdit-setText( nu

21、 m1);elseui- lin eEdit-setText(str);void Widget:clickNum7() 按钮 7 的槽函数。QString num仁7;QStri ng str=ui-li neEdit-text();str=st 叶nu m1;if(ui- li neEdit-text()=O)ui- lin eEdit-setText( nu m1);elseui- lin eEdit-setText(str);void Widget:clickNum8() 按钮 8 的槽函数。QString num仁8;QStri ng str=ui-li neEdit-text();s

22、tr=st 叶nu m1;if(ui- li neEdit-text()=O)ui- lin eEdit-setText( nu m1);elseui- lin eEdit-setText(str);void Widget:clickNum9() 按钮 9 的槽函数。QString num仁9;QStri ng str=ui-li neEdit-text();str=st 叶nu m1;if(ui- li neEdit-text()=O)ui- lin eEdit-setText( nu m1);elseui- lin eEdit-setText(str);void Widget:clickN

23、umO() 按钮 0 的槽函数。QString num仁0;QStri ng str=ui-li neEdit-text();str=st 叶nu m1;if(ui- li neEdit-text()=0)ui- lin eEdit-setText( nu m1);elseui- lin eEdit-setText(str);void Widget:clickPoint() 按钮 point 的槽函数。 QString num1=.;QString num2=0.;QStri ng str=ui-li neEdit-text();str=st 叶nu m1;if(ui- li neEdit-t

24、ext()=0)ui- lin eEdit-setText (nu m2);elseui- lin eEdit-setText(str);void Widget:clickLbracket() 按钮 Ibracket 的槽函数。 QString num仁(”;QStri ng str=ui-li neEdit-text();str=st 叶nu m1;if(ui- li neEdit-text()=O)ui- lin eEdit-setText( nu m1);elseui- lin eEdit-setText(str);ols)x匕s八丄一 p山u= An-(LLUnu)x匕s八丄一 p山u

25、= An(=0= HH01XA&P 山 u= 2n)七=lunu+lsHlsoxA&P 山 u=A.nHls 6UWS0r(llLEnu6cn0。報Hs旨0)peqwM)a)peqMloo匸 6p 一 m po(x()6u1s)七 S05=e)x _LO)SAP 山 u= An(uH()6ugs)oxA&P 山 u=A.nHls 6UWSO-b.lle 6UWSO。報Hs旨a)a)pw二0)0)900匸 6p 一 M po-(LLUnu)x匕s八丄一 p山u= AnzallLEnu 6UUC6Oui- lin eEdit-setText(str);void Widget:clickPlus() 按钮 + 的槽函数。QS

温馨提示

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

评论

0/150

提交评论