



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Linux 應(yīng)用與編程實習(xí)報告學(xué)院名稱專業(yè)班級學(xué)生姓名學(xué)號指導(dǎo)教師山東科技大學(xué)一、實習(xí)題目:二、實習(xí)時間:三、實習(xí)任務(wù):B2- 簡單計算器19 周 20 周實習(xí)地點:J13- 128實現(xiàn)一個簡單計算器,計算器包括加、減、乘、除四種運算。用戶通過鼠標(biāo)進行數(shù)據(jù)輸入,輸入的數(shù)據(jù)以及計算結(jié)果顯示在文本框中四、小組分工說明:獨立完成五、實習(xí)成績六、指導(dǎo)教師對實習(xí)的評語:指導(dǎo)教師(簽章):2015年月日目錄1.概述 -42.相關(guān)技術(shù) -42.1 QT 中信號和槽 -42.2字符串輸出數(shù)據(jù)組 -錯誤!未定義書簽。3.需求分析 -54.總體設(shè)計與詳細設(shè)計 -54.1系統(tǒng)模塊劃分 -54.2主要功能模塊 -55
2、.編碼實現(xiàn) -66測試情況說明 -147.實訓(xùn)中遇到的主要問題及解決方法- 158.實訓(xùn)收獲與體會 -161. 概述1.1實訓(xùn)項目簡介本次實訓(xùn)項目是應(yīng)用Linux 系統(tǒng)中的QT編譯器編寫一個界面簡潔,操作簡單的簡易計算器。該簡易計算器運用的技術(shù)主要是Linux 系統(tǒng)中 QT編譯器的一些函數(shù)以及指針等。1.2基本功能( 1)通過鼠標(biāo)點擊接收數(shù)字鍵入以及運算符。( 2)能夠進行簡單的加減乘除四則運算。( 3)一鍵清空功能。1.3附加功能( 1)鍵入數(shù)字超過 6 位,輸出窗口輸出“ error”提示。( 2)能夠進行連續(xù)加法和減法混合運算,能夠進行連續(xù)乘法和除法混合運算。( 3)鍵入的被除數(shù)為0 時
3、,輸出窗口輸出“被除數(shù)不能為0 哦”提示。( 4)連續(xù)鍵入兩個運算符時,輸出窗口輸出“只能輸入一個運算符哦”提示。( 5)進行加減法與乘除法混合運算時,輸出窗口輸出“error”提示。2. 相關(guān)技術(shù)2.1QT 中信號和槽信號槽機制與Windows 下消息機制類似,消息機制是基于回調(diào)函數(shù),Qt 中用信號與槽來代替函數(shù)指針,使程序更安全簡潔。當(dāng)對象改變其狀態(tài)時,信號就由該對象發(fā)射(emit)出去,而且對象只負責(zé)發(fā)送信號,它不知道另一端是誰在接收這個信號。這樣就做到了真正的信息封裝,能確保對象被當(dāng)作一個真正的軟件組件來使用。槽用于接收信號,而且槽只是普通的對象成員函數(shù)。一個槽并不知道是否有任何信號與
4、自己相連接。而且對象并不了解具體的通信機制。2.2 字符串輸出數(shù)據(jù)組為實現(xiàn)計算整式的顯示,并且避免鍵入下一個數(shù)之前frist和second清除不凈,在calculor.h中定義字符串, 把顯示窗口中的數(shù)據(jù)捕捉到字符串中,并隨第二個數(shù)一起顯示,從而實現(xiàn)計算整式的顯示。str=ui->textEdit->toPlainText()+QString:number(int(key);ui->textEdit->setText(str);3. 需求分析(用面向?qū)ο蠓椒ńo出系統(tǒng)的主要需求模型 ,略寫)3.1 功能需求分析基本功能:鼠標(biāo)鍵入數(shù)字及運算符,進行簡單的加減乘除四則運算。拓
5、展功能:進行連續(xù)加減或乘除運算,當(dāng)出現(xiàn)輸入被除數(shù)為 0,輸入位數(shù)過多,連續(xù)輸入多個運算符等錯誤時,輸出窗口提示相應(yīng)錯誤。3.2 數(shù)據(jù)需求分析連續(xù)輸入時的總式實時顯示,結(jié)果的顯示,錯誤類型的顯示。3.3 行為需求分析鼠標(biāo)鍵入數(shù)字及運算符。3.4 其他需求界面簡單,操作簡單。4. 總體設(shè)計與詳細設(shè)計4.1系統(tǒng)模塊劃分簡易計算器系統(tǒng)模塊模塊名稱功能簡介數(shù)字按鍵模塊運算符按鍵模塊數(shù)據(jù)轉(zhuǎn)換模塊數(shù)據(jù)計算模塊將鍵入的數(shù)字傳到數(shù)據(jù)轉(zhuǎn)換模塊中進行判斷是否連續(xù)運算,從數(shù)據(jù)計算模塊中讀取結(jié)果并顯示鍵入多位數(shù)字的轉(zhuǎn)化判斷運算符并進行計算輸入位數(shù)限制模塊限制輸入位數(shù)并進行錯誤提示4.2 主要功能模塊4.1.1系統(tǒng)主要類
6、圖calculorcalculor.cppcalculor.hmain.cppcalculor.ui4.1.2 簡易計算器程序執(zhí)行流程圖開始鍵入數(shù)字數(shù)字小于6是位否鍵入運算符是否否鍵入 =輸出 error輸出結(jié)果鍵入 AC是否結(jié)束5. 編碼實現(xiàn)calculor.cpp#include "calculor.h"#include "ui_calculor.h"calculor:calculor(QWidget *parent) :QWidget(parent),ui(new Ui:calculor)ui->setupUi(this);ui->te
7、xtEdit->setAlignment(Qt:AlignRight);ui->textEdit->setReadOnly(true);my_state=FRIST;my_sign=NO;frist=0;second=0;result=0;error=0;changdu=0;calculor:calculor()delete ui;/ 按鍵處理函數(shù)void calculor:on_pushButton_1_clicked()trans(1);error=0;changdu+;if(changdu>6)ui->textEdit->setText("e
8、rror");void calculor:on_pushButton_2_clicked()trans(2);error=0;changdu+;if(changdu>6)ui->textEdit->setText("error");void calculor:on_pushButton_3_clicked()trans(3);error=0;changdu+;if(changdu>6)ui->textEdit->setText("error");void calculor:on_pushButton_4_cl
9、icked()trans(4);error=0;changdu+;if(changdu>6)ui->textEdit->setText("error");void calculor:on_pushButton_5_clicked()trans(5);error=0;changdu+;if(changdu>6)ui->textEdit->setText("error");void calculor:on_pushButton_6_clicked()trans(6);error=0;changdu+;if(changdu&
10、gt;6)ui->textEdit->setText("error");void calculor:on_pushButton_7_clicked()trans(7);error=0;changdu+;if(changdu>6)ui->textEdit->setText("error");void calculor:on_pushButton_8_clicked()trans(8);error=0;changdu+;if(changdu>6)ui->textEdit->setText("error
11、");void calculor:on_pushButton_9_clicked()trans(9);error=0;changdu+;if(changdu>6)ui->textEdit->setText("error");void calculor:on_pushButton_10_clicked()trans(0);error=0;changdu+;if(changdu>6)ui->textEdit->setText("error");/ 加法按鍵運算函數(shù)void calculor:on_pushButt
12、on_jia_clicked()if(changdu>7)ui->textEdit->setText("error");elseif(error!=0)?ui->textEdit->setText("? ? );else?蜿?閭 ?霎灘 ?竴荳 ?隸?邂禮 ?蜩 ?if(my_state=SECOND)if(my_sign=CHU|my_sign=CHENG)ui->textEdit->setText("error");elsecal();/ ui->textEdit->setText(QS
13、tring:number(result);str=ui->textEdit->toPlainText()+'+'ui->textEdit->setText(str);frist=result;second=0;my_sign=JIA;elsemy_sign=JIA;my_state=SECOND;str=ui->textEdit->toPlainText()+'+'ui->textEdit->setText(str);error+;/ 減法運算函數(shù)void calculor:on_pushButton_jian_c
14、licked()if(changdu>6)/鍵入數(shù)據(jù)位數(shù)限制條件ui->textEdit->setText("error");elseif(error!=0)/連續(xù)鍵入兩個運算符報錯ui->textEdit->setText(“不能連續(xù)輸入兩個運算符哦”);elseerror+;if(my_state=SECOND)/連續(xù)減法運算if(my_sign=CHU|my_sign=CHENG)ui->textEdit->setText("error"); / 混合運算報錯 elsecal();/ui->textE
15、dit->setText(QString:number(result);str=ui->textEdit->toPlainText()+'-'ui->textEdit->setText(str);frist=result;second=0;my_sign=JIAN;elsemy_sign=JIAN;my_state=SECOND;str=ui->textEdit->toPlainText()+'-'ui->textEdit->setText(str);/ 乘法運算運算符函數(shù)void calculor:on_p
16、ushButton_cheng_clicked()if(changdu>6)ui->textEdit->setText("error");elseif(error!=0)ui->textEdit->setText(“不能連續(xù)鍵入兩個運算符哦”);elseerror+;if(my_state=SECOND)if(my_sign=JIA|my_sign=JIAN)ui->textEdit->setText("error");elsecal();/ ui->textEdit->setText(QString
17、:number(result); str=ui->textEdit->toPlainText()+'*' ui->textEdit->setText(str);frist=result;second=0;my_sign=CHENG;elsemy_sign=CHENG;my_state=SECOND;str=ui->textEdit->toPlainText()+'*'ui->textEdit->setText(str);/ 除法運算符函數(shù)void calculor:on_pushButton_chu_clicked
18、()if(changdu>6)ui->textEdit->setText("error");elseif(error!=0)ui->textEdit->setText(“不能連續(xù)輸入兩個運算符哦!”);elseerror+;if(my_state=SECOND)if(my_sign=JIA|my_sign=JIAN)ui->textEdit->setText("error");elsecal();/ui->textEdit->setText(QString:number(result);str=ui-
19、>textEdit->toPlainText()+'/'ui->textEdit->setText(str);frist=result;second=0;my_sign=CHU;elsemy_sign=CHU;my_state=SECOND;str=ui->textEdit->toPlainText()+'/'ui->textEdit->setText(str);/ 等于號運算函數(shù)void calculor:on_pushButton_enter_clicked()if(my_sign=CHU)&&
20、(second=0)ui->textEdit->setText("” );elsecal();ui->textEdit->setText(QString:number(result);/ shu ju hui fu frist=0; second=0; my_state=FRIST; my_sign=NO;/ 清楚鍵位函數(shù)void calculor:on_pushButton_clean_clicked()ui->textEdit->clear();my_state=FRIST;my_sign=NO;frist=0;second=0;result=
21、0;error=0;changdu=0;/ 數(shù)據(jù)轉(zhuǎn)換函數(shù)void calculor:trans(char key)if(my_state=FRIST)frist=frist*10+(int)key;ui->textEdit->setText(QString:number(frist);elsesecond=second*10+(int)key; /ui->textEdit->setText(QString:number(second);str=ui->textEdit->toPlainText()+QString:number(int(key); ui-&g
22、t;textEdit->setText(str);/ 數(shù)據(jù)運算函數(shù)void calculor:cal()changdu=0;error=0;if(my_sign=JIA)result=frist+second;else if(my_sign=JIAN)result=frist-second;else if(my_sign=CHENG)result=frist*second;else if(my_sign=CHU)result=frist/second;6測試情況說明。6.1 主要模塊測試情況(白盒)模塊 1、按鍵模塊測試用例預(yù)期結(jié)果實際結(jié)果問題描述修改方案鼠標(biāo)點擊0 9顯示窗口顯示 0顯示窗口顯示0十個鍵位9 十個數(shù)9 十個數(shù)鼠標(biāo)點擊 AC 鍵窗口中原來的數(shù)窗口中原來的數(shù)字消失歸零字消失歸零鼠標(biāo)點擊運算符窗口顯示運算符窗口顯示運算符6.2主要功能測試情況(黑盒)功能 1、鍵入數(shù)據(jù)位數(shù)限制測試用例預(yù)期結(jié)果實際結(jié)果問題描述修改方案鍵入 6 位以上的鍵入第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五專利代理人委托協(xié)議:新材料合成專利申請代理服務(wù)協(xié)議
- 2025年度民宿租賃合同(注明租期起止日期及特色服務(wù)項目)
- 二零二五年度汽車品牌授權(quán)銷售合同
- 客車買賣合同范本
- 2025年度運動場所意外傷害免責(zé)協(xié)議書
- 二零二五年度文化旅游園區(qū)入駐企業(yè)合作協(xié)議
- 2025年度跨境貿(mào)易股權(quán)分配與市場拓展協(xié)議
- 小區(qū)套間出租合同范本
- 二零二五年度酒店員工勞動權(quán)益保障與維護合同
- 2025年發(fā)動機試車臺項目發(fā)展計劃
- 陰道鏡檢查臨床醫(yī)學(xué)知識及操作方法講解培訓(xùn)PPT
- “教學(xué)評一體化”指導(dǎo)的語文教學(xué)設(shè)計以統(tǒng)編版語文四年級上冊《蟋蟀的住宅》為例
- AI09人工智能-多智能體
- 石墨烯商業(yè)計劃書
- 放射源基本知識培訓(xùn)課件
- 【革命歷史題材舞蹈創(chuàng)作手法及思考案例-以紅船為例9400字(論文)】
- 腦血管造影術(shù)后病人的護理查房
- 美術(shù)高考色彩備考教學(xué)策略
- 2023年云南省新聞系統(tǒng)事業(yè)單位人員招聘筆試題庫及答案解析
- 教學(xué)設(shè)計心肺復(fù)蘇
- 正庚烷-正辛烷連續(xù)精餾塔設(shè)計資料
評論
0/150
提交評論