




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 題目:簡(jiǎn)易計(jì)算器學(xué)院:信息科學(xué)與技術(shù) 專業(yè):軟件工程姓名:學(xué)號(hào):2014.04.19 1、 需求分析當(dāng)今社會(huì)是信息社會(huì),科技經(jīng)濟(jì)高速發(fā)展的社會(huì),為了更方便人們的工作生活和加速人們處理信息的速度,計(jì)算器應(yīng)運(yùn)而生。然而,電腦已經(jīng)成為當(dāng)代人生活的必需品,運(yùn)行在電腦上的計(jì)算器成為了人們的生活學(xué)習(xí)絕佳伴侶。下面是用C+編寫的,基于Qt圖形應(yīng)用程序框架的計(jì)算器,它實(shí)現(xiàn)了對(duì)整數(shù),浮點(diǎn)數(shù)的加減乘除冪運(yùn)算。2、 設(shè)計(jì)過程1 界面設(shè)計(jì)在QT設(shè)計(jì)器中布置好計(jì)算器界面,所有按鍵采用的pushButton控件,顯示計(jì)算結(jié)果采用的是lineEdit控件。完成的界面如下圖所示:圖 計(jì)算器界面為了
2、使按鈕顯示美觀,將每個(gè)button的屬性設(shè)置如下:圖 button大小、字體屬性為符合人們的使用習(xí)慣,將lineEdit空間的屬性更改,使得輸入的數(shù)字和符號(hào)出現(xiàn)在空間的右邊起。如圖:圖 lineEdit控件屬性更改2 控件重命名將界面布局設(shè)計(jì)好后,將各個(gè)空間改名,例如“0”改為but0。3 簡(jiǎn)單信號(hào)響應(yīng)對(duì)于button exit退出程序,這樣簡(jiǎn)單的響應(yīng),直接在設(shè)計(jì)器中通過添加信號(hào)和槽來完成,如圖:圖 信號(hào)和槽4 輔助數(shù)據(jù)成員及函數(shù)為了區(qū)分每一次計(jì)算和保存操作數(shù)、操作符,和輔助函數(shù)(如:輸出函數(shù)),在calculator.h的類中設(shè)定數(shù)據(jù)成員以及成員函數(shù):calculat.cpp中輔助函數(shù)的實(shí)現(xiàn)
3、:5 數(shù)字鍵的響應(yīng)以button 0為例,在calculator.cpp文件中添加but0的代碼,如下:6 小數(shù)點(diǎn)的響應(yīng)當(dāng)一個(gè)操作數(shù)已經(jīng)輸入了一個(gè)小數(shù)點(diǎn)時(shí),將小數(shù)點(diǎn)按鈕置為不可用,以防用戶重復(fù)輸入小數(shù)點(diǎn),導(dǎo)致輸入操作數(shù)不合法,如下如:7 運(yùn)算功能的響應(yīng)以加法為例,向lineEdit中輸入顯示+號(hào),并在數(shù)據(jù)成員中保存,以便后面進(jìn)行計(jì)算:8 清屏的響應(yīng)首先將lineEdit的顯示清除,再置為0;將一切輔助的數(shù)據(jù)成員數(shù)據(jù)重置到新一輪計(jì)算的開始狀態(tài),如:運(yùn)算符為空,操作數(shù)為0等。實(shí)現(xiàn)如下:9 等號(hào)的響應(yīng)根據(jù)數(shù)據(jù)成員記錄的運(yùn)算符和操作數(shù)進(jìn)行相應(yīng)的計(jì)算,并將得出的結(jié)果轉(zhuǎn)化為string顯示在lineEdi
4、t上,并重置輔助數(shù)據(jù)成員,準(zhǔn)備下一輪的計(jì)算開始。三、 程序使用示例四、 總結(jié)ü 通過計(jì)算器設(shè)計(jì),我學(xué)到了利用Qt設(shè)計(jì)簡(jiǎn)單窗口應(yīng)用程序的的方法,初步了解了使用QT工具編寫窗口程序的新穎,了解了槽和信號(hào)等基本知識(shí),學(xué)會(huì)了如何使用新工具(Qt)幫助程序開發(fā)。ü 本計(jì)算器實(shí)現(xiàn)的功能還只是很少一部分,希望隨著自身水平的提高可以將其完善起來。ü 本次程序中還有一個(gè)收獲是,冪運(yùn)算開始采用的是QQ輸入法中的特殊字符,結(jié)果無法顯示,后面換成鍵盤上的,就能顯示了。五、 參考資料1) C+ GUI QT 4編程(第二版)(Jasmin Blanchette, Mark Summerfi
5、eld) 電子工業(yè)出版社 2008六、 附程序源代碼calculator.h文件:#ifndef CALCULATOR_H#define CALCULATOR_H#include <QtGui/QWidget>#include "ui_calculator.h"class calculator : public QWidget Q_OBJECTpublic: calculator(QWidget *parent = 0, Qt:WFlags flags = 0); calculator(); private slots: void on_but0_clicked
6、(); void on_but1_clicked(); void on_but2_clicked(); void on_but3_clicked(); void on_but4_clicked(); void on_but5_clicked(); void on_but6_clicked(); void on_but7_clicked(); void on_but8_clicked(); void on_but9_clicked(); void on_butJia_clicked(); void on_butJian_clicked(); void on_butCheng_clicked();
7、 void on_butChu_clicked(); void on_butDeng_clicked(); void on_butZhengfu_clicked(); void on_butMi_clicked(); void on_butDian_clicked(); void on_butClear_clicked();private: Ui:calculatorClass ui; bool finishedOne;/是否完成了一趟計(jì)算 bool haveDian;/是否已經(jīng)輸入了點(diǎn) bool haveOpera;/是否已經(jīng)輸入過操作符 bool newInput;/清屏后的標(biāo)志 doub
8、le num1;/操作數(shù) double num2;/操作數(shù) char opera;/運(yùn)算符 QString str;/用來進(jìn)行double和string之間轉(zhuǎn)換 void clear_lineEdit();/每輸入一個(gè)操作數(shù)或操作符的小清屏 void input(char ch);/向lineEdit進(jìn)行輸入 void inputCheck();/輸入前的檢查;#endif / CALCULATOR_Hcalculator.cpp文件:#include "calculator.h"#include <math.h>#include <QString>
9、#include <QtGui>#define P 0.0001calculator:calculator(QWidget *parent, Qt:WFlags flags) : QWidget(parent, flags) ui.setupUi(this); finishedOne = true;/是否完成了一趟計(jì)算 haveDian = false;/是否已經(jīng)輸入了點(diǎn) haveOpera = false;/是否已經(jīng)輸入過操作符 newInput = true;/是否是清過屏的 num1= 0; num2= 0; opera= ' '/初始為空格void calc
10、ulator:on_but0_clicked() inputCheck(); input('0');void calculator:on_but1_clicked() inputCheck(); input('1');void calculator:on_but2_clicked() inputCheck(); input('2');void calculator:on_but3_clicked() inputCheck(); input('3');void calculator:on_but4_clicked() inputCh
11、eck(); input('4');void calculator:on_but5_clicked() inputCheck(); input('5');void calculator:on_but6_clicked() inputCheck(); input('6');void calculator:on_but7_clicked() inputCheck(); input('7');void calculator:on_but8_clicked() inputCheck(); input('8');void c
12、alculator:on_but9_clicked() inputCheck(); input('9');/乘法void calculator:on_butCheng_clicked() num1 = ui.lineEdit->text().toDouble(); clear_lineEdit(); ui.lineEdit->setText("*"); opera = '*'/記錄操作符 haveOpera = true;/加法void calculator:on_butJia_clicked() num1 = ui.lineEdit->text().toDouble(); clear_lineEdit(); ui.lineEdit->setText("+"); opera = '+'/記錄操作符 haveOpera =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園科學(xué)活動(dòng)常規(guī)
- 廣西南寧市二模數(shù)學(xué)試卷
- 廣東省中專數(shù)學(xué)試卷
- 醫(yī)院誠(chéng)信宣傳課件
- 中國(guó)錐面由任行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 設(shè)計(jì)院社會(huì)實(shí)踐報(bào)告(共10)
- 掌上音頻工作站項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 2025年中國(guó)電卡表行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資戰(zhàn)略咨詢報(bào)告
- 湖北眼科醫(yī)療設(shè)備項(xiàng)目可行性研究報(bào)告模板范本
- 2025年7月浙江高中學(xué)業(yè)水平考試數(shù)學(xué)試卷真題(含答案詳解)
- 我鎮(zhèn)征兵工作面臨的困難與對(duì)策課件
- 亞馬遜聯(lián)合運(yùn)營(yíng)合同范例
- 醫(yī)學(xué)資料檔案管理制度
- 2024年稅務(wù)師考試《財(cái)務(wù)與會(huì)計(jì)》試題及解答參考
- 兒童腎臟疾病的流行病學(xué)
- 羽毛球教學(xué)教學(xué)案
- 浙教版七年級(jí)上科學(xué)第1章探索自然的科學(xué)單元測(cè)試卷
- 安徽省蚌埠二十六中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期入學(xué)語文試題
- 山東省低溫?zé)崴孛孑椛涔┡夹g(shù)規(guī)程
- 【長(zhǎng)安的荔枝中李善德的人物形象分析7800字(論文)】
- 反詐騙宣傳課件
評(píng)論
0/150
提交評(píng)論