版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
電子科技大學(xué)學(xué)生實(shí)驗(yàn)報(bào)告書課程名稱實(shí)用嵌入式應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)任課老師實(shí)驗(yàn)名稱簡單功能計(jì)算器的設(shè)計(jì)學(xué)生姓名學(xué)生學(xué)號學(xué)生學(xué)院2015—2016學(xué)年第1學(xué)期實(shí)驗(yàn)項(xiàng)目名稱簡單功能計(jì)算器的設(shè)計(jì)實(shí)驗(yàn)日期
一、實(shí)驗(yàn)內(nèi)容1、設(shè)計(jì)一個(gè)簡單計(jì)算器并能完成簡單的四則運(yùn)算,實(shí)時(shí)更新運(yùn)算結(jié)果;2、帶界面計(jì)算器自帶數(shù)字及功能按鈕,能實(shí)現(xiàn)更多以及更靈活的的計(jì)算功能。一、實(shí)驗(yàn)步驟設(shè)計(jì)(包括實(shí)驗(yàn)方案設(shè)計(jì)、實(shí)驗(yàn)步驟或算法描述等)實(shí)驗(yàn)設(shè)計(jì)方案如下:圖1簡單計(jì)算器的設(shè)計(jì)方案流程方案流程圖2帶顯示界面計(jì)算器的設(shè)計(jì)實(shí)驗(yàn)步驟:一、簡單計(jì)算器的設(shè)計(jì):1、創(chuàng)建一個(gè)QtGUI應(yīng)用項(xiàng)目,項(xiàng)目名稱為dialog_designer,基類選擇Qwidget。項(xiàng)目建好后會(huì)自動(dòng)生成一系列文件,雙擊界面文件widget.ui進(jìn)入QtDesigner進(jìn)行界面設(shè)計(jì)。2、界面設(shè)計(jì)完成后修改控件的各屬性,并修改Tab順序,點(diǎn)擊工具欄上的的“編輯Tab順序”按鈕,依次按順序點(diǎn)擊即可,完成后再按工具欄上的編輯控件按鈕返回。3、在頭文件widget.h的Widget類添加共有槽函數(shù);在源文件widget.cpp中添加新代碼。
4、用模擬器調(diào)試運(yùn)行。二、帶界面的計(jì)算器的設(shè)計(jì):與簡單計(jì)算器的設(shè)計(jì)步驟基本相同。但是需要在項(xiàng)目文件(后綴為.pro)添加一段代碼,使得程序中能使用Qt腳本,在原有代碼的基礎(chǔ)上添加。在頭文件widget.h的Widget類添加共有槽函數(shù)和全局變量,以及包含頭文件QtScript,以使用QtScriptAPI。在源文件widget.cpp中添加新代碼,之后即可運(yùn)行調(diào)試。三、實(shí)驗(yàn)結(jié)果分析及代碼(包括結(jié)果描述、綜合分析及實(shí)現(xiàn)關(guān)鍵代碼)實(shí)驗(yàn)結(jié)果如下:1、簡單計(jì)算器:代碼:(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、帶顯示界面的計(jì)算器:代碼:(1)在shiyanB.pro項(xiàng)目文件中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的槽函數(shù)。voidclickNum2();//按鈕2的槽函數(shù)。voidclickNum3();//按鈕3的槽函數(shù)。voidclickNum4();//按鈕4的槽函數(shù)。voidclickNum5();//按鈕5的槽函數(shù)。voidclickNum6();//按鈕6的槽函數(shù)。voidclickNum7();//按鈕7的槽函數(shù)。voidclickNum8();//按鈕8的槽函數(shù)。
voidclickNum9();//按鈕9的槽函數(shù)。voidclickNum0();//按鈕0的槽函數(shù)。voidclickPoint();//按鈕.的槽函數(shù)。voidclickLbracket();//按鈕(的槽函數(shù)。voidclickRbracket();//按鈕)的槽函數(shù)。voidclickClean();//按鈕clean的槽函數(shù)。voidclickDelete();//按鈕delete的槽函數(shù)。voidclickPlus();//按鈕+的槽函數(shù)。voidclickMinus();//按鈕-的槽函數(shù)。voidclickMulti();//按鈕*的槽函數(shù)。voidclickDiv();//按鈕/的槽函數(shù)。voidclickEqul();//按鈕=的槽函數(shù)。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的槽函數(shù)。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}
voidWidget::clickNum2()//按鈕2的槽函數(shù)。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum3()//按鈕3的槽函數(shù)。
{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum4()//按鈕4的槽函數(shù)。{
QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum5()//按鈕5的槽函數(shù)。{QStringnum1=;
QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum6()//按鈕6的槽函數(shù)。{QStringnum1=;QStringstr=ui->lineEdit->text();
str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum7()//按鈕7的槽函數(shù)。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;
if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum8()//按鈕8的槽函數(shù)。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==)
{ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum9()//按鈕9的槽函數(shù)。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){
ui->lineEdit->setText(num1);}else{ui->lineEdit->setText(str);}}voidWidget::clickNum0()//按鈕0的槽函數(shù)。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);
}else{ui->lineEdit->setText(str);}}voidWidget::clickPoint()//按鈕point的槽函數(shù)。{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的槽函數(shù)。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}
else{ui->lineEdit->setText(str);}}voidWidget::clickRbracket()//按鈕rbracket的槽函數(shù)。{QStringnum1=;QStringstr=ui->lineEdit->text();str=str+num1;if(ui->lineEdit->text()==){ui->lineEdit->setText(num1);}else
{ui->lineEdit->setText(str);}}voidWidget::clickClean()//按鈕clean的槽函數(shù)。{QStringnum1=;ui->lineEdit->setText(num1);}voidWidget::clickDelete()//按鈕delete的槽函數(shù)。{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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021年數(shù)學(xué)八年級上冊難點(diǎn)突破32份 北師大版
- 四年級簡便運(yùn)算計(jì)算題大全(100題-)
- 《結(jié)腸癌NCCN指南》課件
- 《通過激素的調(diào)節(jié)》導(dǎo)學(xué)案
- 《光合作用計(jì)算》課件
- 《組,貼金屬面板》課件
- 《結(jié)核病的診斷》課件
- 用工指導(dǎo)培訓(xùn)課件
- 2021年度高考地理必背知識(shí)點(diǎn)總匯
- 2021年中考復(fù)習(xí)數(shù)學(xué)考點(diǎn)專題訓(xùn)練-專題三:一次函數(shù)
- 《行政組織學(xué)》期末復(fù)習(xí)指導(dǎo)
- 廣東省佛山市2022-2023學(xué)年高一上學(xué)期期末考試英語試題(含答案)
- 五年級上冊道德與法治全冊知識(shí)點(diǎn)匯總
- 小學(xué)英語“大單元教學(xué)”整體設(shè)計(jì)與案例分析講稿
- 2023取卵術(shù)相關(guān)風(fēng)險(xiǎn)及處理對策
- 雙引號專項(xiàng)練習(xí)歸納
- 海關(guān)HS編碼對照表
- 原木樁駁岸施工方案
- 手術(shù)十大安全質(zhì)量目標(biāo)培訓(xùn)記錄
- GB/T 10000-2023中國成年人人體尺寸
- 腦惡性腫瘤的護(hù)理查房
評論
0/150
提交評論