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

下载本文档

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

文档简介

电子科技大学学生实验报告书课程名称实用嵌入式应用系统设计与实现任课老师实验名称简单功能计算器的设计学生姓名学生学号学生学院2015—2016学年第1学期实验项目名称简单功能计算器的设计实验日期

一、实验内容1、设计一个简单计算器并能完成简单的四则运算,实时更新运算结果;2、带界面计算器自带数字及功能按钮,能实现更多以及更灵活的的计算功能。一、实验步骤设计(包括实验方案设计、实验步骤或算法描述等)实验设计方案如下:图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中添加新代码,之后即可运行调试。三、实验结果分析及代码(包括结果描述、综合分析及实现关键代码)实验结果如下:1、简单计算器:代码:(1)在widget.h文件中#ifndefWIDGET_H#defineWIDGET_H#include<QWidget>namespaceUi{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();voidon_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源文件中#include#includeWidget::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(){ui->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+=widgets

TARGET=shiyanBTEMPLATE=appSOURCES+=widget.cppHEADERS+=widget.hFORMS+=widget.ui(2)在头文件widget.h中#ifndefWIDGET_H#defineWIDGET_H#include<QtScript>#includenamespaceUi{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;};

#endif//WIDGET_H(3)在源文件widget.cpp中#include#includeWidget::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(ui->pushButton_plus,SIGNAL(clicked()),this,SLOT(clickPlus()));connect(ui->pushButton_minus,SIGNAL(clicked()),this,SLOT(clickMinus()));connect(ui->pushButton_multi,SIGNAL(clicked()),this,SLOT(clickMulti()));connect(ui->pushButton_div,SIGNAL(clicked()),this,SLOT(clickDiv()));connect(ui->pushButton_equl,SIGNAL(clicked()),this,SLOT(clickEqul()));

}voidWidget::clickNum1()//按钮1的槽函数。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}

voidWidget::clickNum2()//按钮2的槽函数。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum3()//按钮3的槽函数。

{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum4()//按钮4的槽函数。{

QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum5()//按钮5的槽函数。{QStringnum1=;

QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum6()//按钮6的槽函数。{QStringnum1=;QStringstr=ui->lineEdit->text();

str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum7()//按钮7的槽函数。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;

if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum8()//按钮8的槽函数。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==)

{ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum9()//按钮9的槽函数。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){

ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum0()//按钮0的槽函数。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);

}else{ui->lineEdit->setText(str);}}voidWidget::clickPoint()//按钮point的槽函数。{QStringnum1=;QStringnum2=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num2);

}else{ui->lineEdit->setText(str);}}voidWidget::clickLbracket()//按钮lbracket的槽函数。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}

else{ui->lineEdit->setText(str);}}voidWidget::clickRbracket()//按钮rbracket的槽函数。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else

{ui->lineEdit->setText(str);}}voidWidget::clickClean()//按钮clean的槽函数。{QStringnum1=;ui->lineEdit->setText(num1);}voidWidget::clickDelete()//按钮delete的槽函数。{QStringa=;QStringstr=ui->lineEdit->text();if(str.length()==1){

ui->lineEdit->setText(a);}elseif(str.length()>1){str=str.left(str.length()-1);//从左边取长度减去1的字符串。ui->lineEdit->setText(str);}}voidWidget::clic

温馨提示

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

评论

0/150

提交评论