




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子科技大学学生实验报告书课程名称实用嵌入式应用系统设计与实现任课老师实验名称简单功能计算器的设计学生姓名学生学号学生学院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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年金属单质铁氧化物项目立项申请报告
- 赛跑比赛记事作文8篇
- 2025年消防安全设施维护与管理操作规范操作规范操作规范操作规范操作规范操作规范考试题库
- 2025年PCM脉码调制终端设备项目立项申请报告
- 2025年心理咨询师基础理论知识测试卷(心理咨询实践案例分析)
- 2025年保险从业资格考试保险业务产品开发案例分析科目试卷
- 我和我的动物朋友:写物作文10篇
- 2025年电梯检验员资格考试全真模拟试卷(含答案解析)
- 2025年法律职业资格考试客观题试卷一法律职业道德与案例分析
- 软件测试服务协议
- 中位数与箱线图-第2课时箱线图复习巩固课件北师大版(2025)数学八年级上册
- 2025河南省豫地科技集团社会招聘169人笔试参考题库附带答案详解
- 2025年山东将军烟草新材料科技有限公司招聘笔试冲刺题(带答案解析)
- 人教版(2024)七年级下册英语期末模拟测试卷(含答案)
- 电线电缆出入库管理制度
- 2025年中考语文押题作文范文10篇
- T/CADCC 003-2024汽车漆面保护膜施工技术规程
- 打造重点专科协议书
- 福建省厦门市双十中学2025届七年级生物第二学期期末联考模拟试题含解析
- 【小学】新苏教版小学数学四年级下册暑假每日一练(02):计算题-应用题(含答案)
- 2025猪蓝耳病防控及净化指南(第三版)
评论
0/150
提交评论