用C++實(shí)現(xiàn)簡(jiǎn)單計(jì)算器_第1頁(yè)
用C++實(shí)現(xiàn)簡(jiǎn)單計(jì)算器_第2頁(yè)
用C++實(shí)現(xiàn)簡(jiǎn)單計(jì)算器_第3頁(yè)
用C++實(shí)現(xiàn)簡(jiǎn)單計(jì)算器_第4頁(yè)
用C++實(shí)現(xiàn)簡(jiǎn)單計(jì)算器_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

HUBEI NORMAL UNIVERSITY 項(xiàng)目名稱 項(xiàng)目名稱 學(xué)生信息管理系統(tǒng)需求分析學(xué)生信息管理系統(tǒng)需求分析 姓姓 名名 學(xué)學(xué) 號(hào) 號(hào) 班班 級(jí)級(jí) 一 需求描述 度這次 c 課程設(shè)計(jì)作業(yè) 我們小組選擇的是設(shè)計(jì)一個(gè)簡(jiǎn)單的計(jì)算器 我們平常所 用的計(jì)算器都是可視化界面計(jì)算器 對(duì)于計(jì)算一些混合的四則算術(shù)運(yùn)算不是很方便 所以 我們此次設(shè)計(jì)的計(jì)算器則是可以進(jìn)行四則混合運(yùn)算 用戶可以從鍵盤輸入算式 可以進(jìn)行 加 減 乘 除混合運(yùn)算 運(yùn)算的優(yōu)先級(jí)也已經(jīng)考慮在內(nèi) 并且用戶可以按任何的運(yùn)算符 出現(xiàn)順序進(jìn)行輸入 輸入的計(jì)算式的長(zhǎng)也是不限定 這樣就方便了我們對(duì)于一些混合算式 的計(jì)算 但是我們的程序也還存在一定問(wèn)題 關(guān)于括號(hào) 優(yōu)先級(jí)運(yùn)算就沒(méi)有實(shí)現(xiàn) 二 系統(tǒng)總體分析設(shè)計(jì) 根據(jù)任務(wù)要求 程序的總體功能可以設(shè)計(jì)成如下圖所示 否是 是否 開(kāi)始 輸出算式及提示信 息 檢查輸入算式 字符是 否合格 除數(shù)是否不為 0 除 法 加 法 減 法 乘 法 輸出結(jié)果 是否繼續(xù) 結(jié)束 三 程序詳細(xì)功能描述 在這次 c 課程設(shè)計(jì)中 我們小組成員分工明確 在編碼過(guò)程中 我們?cè)诰幋a過(guò)程 中主要有一個(gè) counter 類 counter 里面一共有三個(gè)函數(shù) 分別是 input 輸入函數(shù) suanfa 計(jì)算函數(shù)和 show 顯示函數(shù) 體現(xiàn)了類的封裝性 另外還有一個(gè)不同函數(shù)進(jìn)行 程序說(shuō)明 本程序?qū)崿F(xiàn)加 減 乘 除的基本運(yùn)算 并能按照四則運(yùn)算的基本法則進(jìn) 行運(yùn)算 在除法運(yùn)算中 當(dāng)被除數(shù)為零的時(shí)候 系統(tǒng)會(huì)報(bào)錯(cuò) 提示被除數(shù)不能為零 則會(huì)退出程序 四 四 編碼編碼 include include using namespace std class counter private int n 計(jì)算輸入數(shù)組的長(zhǎng)度 double a 100 存放數(shù)據(jù)的數(shù)組 char fh 100 存放字符的數(shù)組 public input 輸入函數(shù) suanfa 四則運(yùn)算 show 顯示函數(shù) counter input cout 請(qǐng)輸入表達(dá)式 并且以 結(jié)尾 endl for int i 0 i a i cin fh i if fh i 為結(jié)束符標(biāo)志 n i break counter suanfa char sign for int j 0 j n j if fh j 乘法運(yùn)算 if fh j 1 乘法的優(yōu)先級(jí) a j 1 a j a j 1 a j 0 fh j else if fh j 1 a j 1 a j a j 1 a j 0 fh j else a j 1 a j a j 1 else if fh j 除法運(yùn)算 if fh j 1 除法的優(yōu)先級(jí) if a j 1 0 a j 1 a j a j 1 a j 0 fh j else cout 除數(shù)為 0 退出程序 endl 除數(shù)為零 exit 0 else if fh j 1 if a j 1 0 a j 1 a j a j 1 a j 0 else cout 除數(shù)為 0 退出程序 endl exit 0 else if a j 1 0 a j 1 a j a j 1 else cout 除數(shù)為 0 退出程序 endl exit 0 for int i 0 i n i if fh i 加法運(yùn)算 a i 1 a i a i 1 else if fh i 減法運(yùn)算 if a i a i 1 a i 1 a i 1 a i else a i 1 a i a i 1 counter show 輸出函數(shù) cout 該表達(dá)式的結(jié)果為 cout a n endl void read 程序說(shuō)明 cout t t n cout t t C 課程設(shè)計(jì) n cout t t 實(shí)驗(yàn)題目 簡(jiǎn)單的計(jì)算器 n cout t t n cout n 說(shuō)明 可以進(jìn)行四則混合運(yùn)算 但是不能進(jìn)行括號(hào)優(yōu)先級(jí)運(yùn)算 n cout endl int main char sign counter b read b input b suanfa b show while true cout 是否繼續(xù) 輸入 y 表示繼續(xù) n 表示退出 sign if sign y b input b suanfa b show else break return 0 五 五 測(cè)試報(bào)告測(cè)試報(bào)告 1 關(guān)于算法結(jié)構(gòu)的逐步完善 原來(lái)算法的源代碼如下 counter suanfa for int j 0 j n j if fh j if fh j 1 a j 1 a j a j 1 a j 0 fh j else a j 1 a j a j 1 a j 0 測(cè)試結(jié)果 測(cè)試結(jié)果 當(dāng)先輸入加減 運(yùn)算符 再輸入乘除 時(shí) 計(jì)算結(jié)果是正確的 如輸入以下測(cè)試實(shí)例 1 2 3 正確結(jié)果因?yàn)?7 1 4 2 正確結(jié)果因?yàn)?3 5 6 3 正確結(jié)果因?yàn)?3 7 2 3 正確結(jié)果因?yàn)?1 fh j else if fh j if fh j 1 a j 1 a j a j 1 a j 0 fh j else a j 1 a j a j 1 a j 0 fh j for int i 0 i n i if fh i a i 1 a i a i 1 else if fh i if a i a i 1 a i 1 a i 1 a i else a i 1 a i a i 1 但是如果先輸入乘除 時(shí) 再輸入加減 運(yùn)算符 則會(huì)出現(xiàn)錯(cuò)誤 如以下測(cè)試實(shí)例 2 3 1 正確結(jié)果因?yàn)?7 但是程序結(jié)果卻為 5 4 2 1 正確結(jié)果因?yàn)?1 但是程序結(jié)果卻為 3 改進(jìn)后的程序代碼 counter suanfa for int j 0 j n j if fh j if fh j 1 a j 1 a j a j 1 a j 0 fh j else if fh j 1 此處有修改此處有修改 a j 1 a j a j 1 a j 0 fh j else a j 1 a j a j 1 此處有修改此處有修改 else if fh j 此處有修改此處有修改 if fh j 1 a j 1 a j a j 1 a j 0 fh j else if fh j 1 a j 1 a j a j 1 a j 0 fh j else a j 1 a j a j 1 此處有修改此處有修改 for int i 0 i n i if fh i a i 1 a i a i 1 else if fh i if a i a i 1 a i 1 a i 1 a i else a i 1 a i a i 1 測(cè)試結(jié)果 測(cè)試結(jié)果 修改后的算法 對(duì)于先輸入什么運(yùn)算符號(hào) 結(jié)果都沒(méi)有影響 輸入以下測(cè)試實(shí)例 2 3 1 正確結(jié)果因?yàn)?7 4 2 1 正確結(jié)果因?yàn)?1 2 關(guān)于程序能否繼續(xù)重復(fù)的逐步完善 當(dāng)程序運(yùn)行到要選擇是否繼續(xù)運(yùn)行的時(shí)候 理想的結(jié)果是當(dāng)按 y 的時(shí)候 程序輸出 請(qǐng)輸入表達(dá)式 并且以 結(jié)尾 字樣 接著運(yùn)行程序 按 n 則退出程序 但是 現(xiàn)在的情況是不管按什么鍵結(jié)果都是 請(qǐng)按任意鍵退出程序 修改后將該段代碼放到主程序中 加一個(gè) while 循環(huán)就可以實(shí)現(xiàn)該功能 修改后的代碼為 int main char sign counter b read b input b suanfa b show while true cout 是否繼續(xù) 輸入 y 表示繼續(xù) n 表示退出 sign 3 被除數(shù)不能為零問(wèn)題的解決 在除法運(yùn)算中 被除數(shù)不能為零 當(dāng)被除數(shù)為零時(shí) 應(yīng)該報(bào)錯(cuò) 然后重新輸入 但是現(xiàn)在 就直接輸出一個(gè)亂碼 不是理想的情況 源代碼為 修改后的代碼為 if sign y b input b suanfa b show else break return 0 測(cè)試實(shí)例 測(cè)試實(shí)例 else if fh j 除法運(yùn)算 if fh j 1 除法的優(yōu)先級(jí) if a j 1 0 a j 1 a j a j 1 a j 0 fh j else cout 除數(shù)為 0 退出程序 endl 除數(shù)為零 exit 0 else if fh j 1 if a j 1 0 a j 1 a j a j 1 a j 0 else cout 除數(shù)為 0 退出程序 endl exit 0 else if a j 1 0 a j 1 a j a j 1 else cout 除數(shù)為 0 退出程序 endl exit 0 1 4 2 正確結(jié)果因?yàn)?3 6 3 2 1 正確結(jié)果因?yàn)?5 六 六 個(gè)人總結(jié)個(gè)人總結(jié) 通過(guò)這次課程設(shè)計(jì)的制作 使我對(duì)于類的封裝性 以及類函數(shù)的調(diào)用有了更深一步 的了解 在程序設(shè)計(jì)最初 我們是準(zhǔn)備將函數(shù)的輸入和結(jié)果的輸出都寫在主函數(shù)中 但是 在后來(lái)的編碼過(guò)程中 發(fā)現(xiàn)如果需要重復(fù)使用 這樣寫 很不方

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論