嵌入式QT实验报告(简单计算器的设计)

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

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

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

资源描述

1/13电子科技大学学生实验报告书课程名称实用嵌入式应用系统设计与实现任课老师实验名称简单功能计算器的设计学生姓名学生学号学生学院2015—2016学年第1学期2/13实验项目名称简单功能计算器的设计实验日期2015.11.23一、实验内容1、设计一个简单计算器并能完成简单的四则运算,实时更新运算结果;2、带界面计算器自带数字及功能按钮,能实现更多以及更灵活的的计算功能。一、实验步骤设计(包括实验方案设计、实验步骤或算法描述等)实验设计方案如下:编辑窗体控件编辑每个spinBox控件的槽函数,用于实现当spinBox的数值发生变化时,实时更新运算结果。连接每个spinBox的数值改变信号和对应的槽函数编辑对话框的控件属性、布局和Tab顺序编辑窗体控件编辑每个Button控件的槽函数,用于实现每个Button控件在计算器中的具体功能。连接每个Button控件的的点击信号和对应的槽函数。编辑对话框的控件属性、布局和Tab顺序图1简单计算器的设计方案流程图2带显示界面计算器的设计方案流程实验步骤:一、简单计算器的设计:1、创建一个QtGUI应用项目,项目名称为dialog_designer,基类选择Qwidget。项目建好后会自动生成一系列文件,双击界面文件widget.ui进入QtDesigner进行界面设计。2、界面设计完成后修改控件的各属性,并修改Tab顺序,点击工具栏上的的“编辑Tab顺序”按钮,依次按顺序点击即可,完成后再按工具栏上的编辑控件按钮返回。3、在头文件widget.h的Widget类添加共有槽函数;在源文件widget.cpp中添加新代码。4、用模拟器调试运行。二、带界面的计算器的设计:与简单计算器的设计步骤基本相同。但是需要在项目文件(后缀为.pro)添加一段代码,使得程序中能使用Qt脚本,在原有代码的基础上添加。在头文件widget.h的Widget类添加共有槽函数和全局变量,以及包含头文件QtScript,以使用QtScriptAPI。在源文件widget.cpp中添加新代码,之后即可运行调试。3/13三、实验结果分析及代码(包括结果描述、综合分析及实现关键代码)实验结果如下:1、简单计算器:代码:(1)在widget.h文件中#ifndefWIDGET_H#defineWIDGET_H#includeQWidgetnamespaceUi{classWidget;}classWidget:publicQWidget{Q_OBJECTpublic:explicitWidget(QWidget*parent=0);~Widget();privateslots:voidon_doubleSpinBox_1_valueChanged();voidon_doubleSpinBox_2_valueChanged();voidon_doubleSpinBox_3_valueChanged();voidon_doubleSpinBox_4_valueChanged();4/13voidon_doubleSpinBox_5_valueChanged();voidon_doubleSpinBox_6_valueChanged();voidon_doubleSpinBox_7_valueChanged();voidon_doubleSpinBox_8_valueChanged();private:Ui::Widget*ui;};#endif//WIDGET_H(2)在widget.cpp源文件中#includewidget.h#includeui_widget.hWidget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui-setupUi(this);}voidWidget::on_doubleSpinBox_1_valueChanged(){ui-outout_plus-setText(QString::number(ui-doubleSpinBox_1-value()+ui-doubleSpinBox_2-value()));}voidWidget::on_doubleSpinBox_2_valueChanged(){ui-outout_plus-setText(QString::number(ui-doubleSpinBox_1-value()+ui-doubleSpinBox_2-value()));}voidWidget::on_doubleSpinBox_3_valueChanged(){ui-outout_minus-setText(QString::number(ui-doubleSpinBox_3-value()-ui-doubleSpinBox_4-value()));}voidWidget::on_doubleSpinBox_4_valueChanged(){ui-outout_minus-setText(QString::number(ui-doubleSpinBox_3-value()-ui-doubleSpinBox_4-value()));}voidWidget::on_doubleSpinBox_5_valueChanged(){ui-outout_multi-setText(QString::number(ui-doubleSpinBox_5-value()*ui-doubleSpinBox_6-value()));}voidWidget::on_doubleSpinBox_6_valueChanged(){5/13ui-outout_multi-setText(QString::number(ui-doubleSpinBox_5-value()*ui-doubleSpinBox_6-value()));}voidWidget::on_doubleSpinBox_7_valueChanged(){ui-outout_div-setText(QString::number(ui-doubleSpinBox_7-value()/ui-doubleSpinBox_8-value()));}voidWidget::on_doubleSpinBox_8_valueChanged(){ui-outout_div-setText(QString::number(ui-doubleSpinBox_7-value()/ui-doubleSpinBox_8-value()));}Widget::~Widget(){deleteui;}2、带显示界面的计算器:代码:(1)在shiyanB.pro项目文件中QT+=coreguiQT+=scriptgreaterThan(QT_MAJOR_VERSION,4):QT+=widgetsTARGET=shiyanB6/13TEMPLATE=appSOURCES+=main.cpp\widget.cppHEADERS+=widget.hFORMS+=widget.ui(2)在头文件widget.h中#ifndefWIDGET_H#defineWIDGET_H#includeQtScript#includeQWidgetnamespaceUi{classWidget;}classWidget:publicQWidget{Q_OBJECTpublic:QStringsum;//全局变量。explicitWidget(QWidget*parent=0);~Widget();publicslots:voidclickNum1();//按钮1的槽函数。voidclickNum2();//按钮2的槽函数。voidclickNum3();//按钮3的槽函数。voidclickNum4();//按钮4的槽函数。voidclickNum5();//按钮5的槽函数。voidclickNum6();//按钮6的槽函数。voidclickNum7();//按钮7的槽函数。voidclickNum8();//按钮8的槽函数。voidclickNum9();//按钮9的槽函数。voidclickNum0();//按钮0的槽函数。voidclickPoint();//按钮.的槽函数。voidclickLbracket();//按钮(的槽函数。voidclickRbracket();//按钮)的槽函数。voidclickClean();//按钮clean的槽函数。voidclickDelete();//按钮delete的槽函数。voidclickPlus();//按钮+的槽函数。voidclickMinus();//按钮-的槽函数。voidclickMulti();//按钮*的槽函数。voidclickDiv();//按钮/的槽函数。voidclickEqul();//按钮=的槽函数。private:Ui::Widget*ui;};7/13#endif//WIDGET_H(3)在源文件widget.cpp中#includewidget.h#includeui_widget.hWidget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui-setupUi(this);sum=;connect(ui-pushButton_1,SIGNAL(clicked()),this,SLOT(clickNum1()));connect(ui-pushButton_2,SIGNAL(clicked()),this,SLOT(clickNum2()));connect(ui-pushButton_3,SIGNAL(clicked()),this,SLOT(clickNum3()));connect(ui-pushButton_4,SIGNAL(clicked()),this,SLOT(clickNum4()));connect(ui-pushButton_5,SIGNAL(clicked()),this,SLOT(clickNum5()));connect(ui-pushButton_6,SIGNAL(clicked()),this,SLOT(clickNum6()));connect(ui-pushButton_7,SIGNAL(clicked()),this,SLOT(clickNum7()));connect(ui-pushButton_8,SIGNAL(clicked()),this,SLOT(clickNum8()));connect(ui-pushButton_9,SIGNAL(clicked()),this,SLOT(clickNum9()));connect(ui-pushButton_0,SIGNAL(clicked()),this,SLOT(clickNum0()));connect(ui-pushButton_point,SIGNAL(clicked()),this,SLOT(clickPoint()));connect(ui-pushButton_lbracket,SIGNAL(clicked()),this,SLOT(clickLbracket()));connect(ui-pushButton_rbracket,SIGNAL(clicked()),this,SLOT(clickRbracket()));connect(ui-pushButton_clean,SIGNAL(clicked()),this,SLOT(clickClean()));connect(ui-pushButton_delete,SIGNAL(clicked()),this,SLOT(clickDelete()));connect(

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

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

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

×
保存成功