![C++ 計算器課程設(shè)計模板_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/b0da88e5-5c08-4987-bcda-d3dadf7c9da8/b0da88e5-5c08-4987-bcda-d3dadf7c9da81.gif)
![C++ 計算器課程設(shè)計模板_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/b0da88e5-5c08-4987-bcda-d3dadf7c9da8/b0da88e5-5c08-4987-bcda-d3dadf7c9da82.gif)
![C++ 計算器課程設(shè)計模板_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/b0da88e5-5c08-4987-bcda-d3dadf7c9da8/b0da88e5-5c08-4987-bcda-d3dadf7c9da83.gif)
![C++ 計算器課程設(shè)計模板_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/b0da88e5-5c08-4987-bcda-d3dadf7c9da8/b0da88e5-5c08-4987-bcda-d3dadf7c9da84.gif)
![C++ 計算器課程設(shè)計模板_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/b0da88e5-5c08-4987-bcda-d3dadf7c9da8/b0da88e5-5c08-4987-bcda-d3dadf7c9da85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C+面向?qū)ο蟪绦蛟O(shè)計C+面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告 設(shè) 計 題 目 :計 算 器學(xué)院名稱: 專 業(yè): 信息與計算科學(xué) 班 級: 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 完成時間: 16目 錄第1章 概述21.1 軟件實現(xiàn)的目標21.2 軟件實現(xiàn)方案21.3 軟件實現(xiàn)環(huán)境2第2章 軟件分析32.1 調(diào)查32.2軟件分析3第3章 軟件設(shè)計43.1 軟件功能設(shè)計43.2 功能函數(shù)設(shè)計43.3 輸入輸出的設(shè)計4第4章 軟件實現(xiàn)54.1軟件源代碼54.2運行結(jié)果12結(jié) 論15參 考 文 獻15第1章 概述1.1 軟件實現(xiàn)的目標 課程設(shè)計的任務(wù):設(shè)計一個簡易計算器,要求源文件要采用多文件的工程結(jié)構(gòu);在源程序中
2、必須使用類,輸入輸出要符合C+語言的特性?;竟δ埽耗苡嬎慵?、減、乘、除及帶括號和乘方的混合運算。軟件特點:可以方便快捷的直接運算帶括號的混合算式;操作簡便,都是從鍵盤直接輸入。1.2 軟件實現(xiàn)方案第一步:分析題目,建立類,畫出類圖。 第二步:畫出流程,根據(jù)流程圖編寫程序清單 第三步:上機調(diào)試程序(使用單步調(diào)試,設(shè)置斷點、分塊調(diào)試的方法)。 第四步:及時整理資料,撰寫課程設(shè)計報告中有關(guān)這個題目的內(nèi)容。 1.3 軟件實現(xiàn)環(huán)境硬件配置:586以上PC兼容機或品牌機,配有彩色顯示器、鼠標、鍵盤,內(nèi)存不小于64MB,硬盤自由空間不少于200MB。推薦配置為內(nèi)存128MB或256MB(或以上),硬盤自由
3、空間500MB以上。運行環(huán)境:Windows2000/NT/Xp、Visual C+集成開發(fā)環(huán)境。第2章 軟件分析2.1 調(diào)查用戶對計算器軟件的要求: 能夠進行復(fù)雜的運算; 能夠?qū)崿F(xiàn)對算式的計算; 操作方便快捷; 顯示運行結(jié)果時,結(jié)果前顯示該算式;2.2軟件分析結(jié)構(gòu)圖:主程序主界面退出程序初始化程序數(shù)據(jù)輸入數(shù)據(jù)處理結(jié)果輸出圖2.2第3章 軟件設(shè)計3.1 軟件功能設(shè)計流程圖:開始操作界面算式輸入輸入判斷錯誤類型提示輸入判斷輸入判斷輸入判斷標記標記標記算式計算結(jié)果輸出NYNYNYNY退出圖3.13.2 功能函數(shù)設(shè)計 1.定義界面函數(shù) void first() cout<<"計
4、算器基本功能介紹"<<endl; cout<<endl; 2.定義判斷函數(shù) bool judge() /判斷是不是加減乘除與浮點數(shù)3.定義對棧函數(shù) void tozhan(stack<float>&,stack<char>&) /加減乘除四則運算及浮點數(shù)算法4.定義運算函數(shù) void mem() /初始界面顯示;數(shù)字類字符與數(shù)字轉(zhuǎn)換壓入數(shù)字棧;考慮優(yōu)先級調(diào)整運算順序;括號及輸出處理5定義小數(shù)運算函數(shù)float fraction() /處理小數(shù)3.3 輸入輸出的設(shè)計、界面設(shè)計程序運行后會出現(xiàn)一個簡捷的窗口,并有相應(yīng)的操作提
5、示語,便于用戶操作。、功能設(shè)計數(shù)據(jù)輸入完成后,軟件運行時自動調(diào)用不同的函數(shù)模塊實現(xiàn)不同的運算,結(jié)束時將輸入算式和結(jié)果以等式的形式在界面輸出,輸出后可按任意鍵退出。第4章 軟件實現(xiàn)4.1軟件源代碼#include <iostream> #include <stack> using namespace std; void first() /定義界面函數(shù) cout<<"-"<<endl; cout<<" 歡迎使用計算器 "<<endl; cout<<"-"&
6、lt;<endl; cout<<"【該計算器具備整型數(shù)據(jù)、浮點型數(shù)據(jù)的算術(shù)(加、減、乘、除)運算 】"<<endl; cout<<"【功能。依次輸入第一個運算數(shù)、運算符(+,-,*,/),第二個運算數(shù),】"<<endl; cout<<"【然后輸出結(jié)果。實現(xiàn)單運算符表達式計算的功能。輸入的操作數(shù)可以包】"<<endl; cout<<"【含整數(shù)或浮點數(shù)。如果遇到錯誤的表達式,應(yīng)輸出錯誤提示信息。表達】"<<endl;
7、cout<<"【式可以有括號,并且+-*/分優(yōu)先級的 】"<<endl; cout<<endl;void mem(); bool judge(char,char); void tozhan(stack<float>&,stack<char>&); float fraction(float,float); void main() mem(); void mem() first();int used,pr; float t; char c; stack<float> num; stack&l
8、t;char> oper; t=0;pr=0;used=0; cout<<"請輸入待求表達式:"<<endl; while(cin>>c, !cin.eof() if (isdigit(c) used=1; t=t*10+(c-'0'); continue; /將輸入的數(shù)字類字符轉(zhuǎn)換成數(shù)字; if (c='+'|c='-'|c='*'|c='/'|c='.') if(used) num.push(t);t=0; used=0; /將轉(zhuǎn)化好
9、的數(shù)字壓入數(shù)字棧; if (oper.empty()|oper.top()='(') oper.push(c);continue; /向操作符棧里壓入第一個操作符;解決括號問題; while(!judge(c,oper.top() tozhan(num,oper); if (oper.empty()|oper.top()='(') break; /根據(jù)運算符號優(yōu)先級,調(diào)整運算順序,并處理優(yōu)先運算部分; oper.push(c); continue; if (c='(') pr+;oper.push(c);continue; /括號入棧,作為括號內(nèi)
10、運算的標志; if (c=')') pr-; /括號結(jié)束,整理括號內(nèi)的運算結(jié)果; if (used) num.push(t);t=0;used=0; while(!oper.empty() if (oper.top()='(') break; tozhan(num,oper); oper.pop(); continue; if (c='=') /遇到=號,輸出結(jié)果; if (pr) cout<<"括號數(shù)目不匹配,請檢查并重新輸入!"<<endl;return; if (used) num.push(t)
11、; while(!oper.empty() tozhan(num,oper); cout<<"表達式的值為: "<<num.top()<<endl; return; else cout<<"表達式輸入錯誤,請重新輸入!"<<endl ; return; bool judge(char s,char t) if (s='*'|s='/')&&(t='+'|t='-') return true; if (s='.
12、') return true; return false; void tozhan(stack<float>& num,stack<char>& oper) float a,b,r; b=num.top();num.pop(); a=num.top();num.pop(); switch( oper.top() ) case ('+'):r= a+b;break; case ('-'):r= a-b;break; case ('*'):r= a*b;break; case ('/')
13、:r= a/b;break; case ('.'):r=fraction(a,b); ; num.push(r); oper.pop(); float fraction(float m, float n) /處理小數(shù) while (n>=1) n/=10; n+=m; return n; 4.2運行結(jié)果 結(jié) 論本程序基本完成了題目要求的功能。此計算器有運算的能力。但是功能單一,每次只能進行一次運算,而不能重復(fù)操作,并且對于數(shù)據(jù)的N次平方的操作需要進行多次數(shù)據(jù)與“*”的多次重復(fù)輸入,比較復(fù)雜,在時空方面占據(jù)劣勢。 本軟件應(yīng)用起來不是很方便,特別是輸入的一些字符的時候,必須是英文半角,不然會提示語法錯誤,最不實際的就是不能運用求值。但是可以通過增加判斷條件,使之對輸入形式不拘一格. 這次課程設(shè)計,我更加深刻地認識到了C語言,棧,C+面向?qū)ο缶幊倘咧g的區(qū)別和聯(lián)系,同時也體會到了三者聯(lián)合的優(yōu)勢,清楚的認識到基礎(chǔ)的重要性。甚至連復(fù)雜的程式都可以用簡
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地基買賣合同
- 委托咨詢服務(wù)協(xié)議書
- 競賽保密協(xié)議
- 北京物聯(lián)網(wǎng)技術(shù)合同
- 2024公司股東合作合同(32篇)
- 旅行社勞動用工合同
- 私人養(yǎng)殖場租賃合同
- 工作解決方案探討
- 離婚財產(chǎn)協(xié)議書覽
- 合作協(xié)議醫(yī)療器械
- 運動康復(fù)機構(gòu)跌倒風險管理措施
- 開學(xué)安全第一課主題班會課件
- 殘疾人的就業(yè)創(chuàng)業(yè)與自我發(fā)展
- 全套課件-建筑工程質(zhì)量與安全管理
- 醫(yī)院感染的中心靜脈導(dǎo)管相關(guān)血流感染預(yù)防
- DBJ33T 1286-2022 住宅工程質(zhì)量常見問題控制標準
- 北師大版七年級上冊數(shù)學(xué)期末考試試題及答案
- 《工業(yè)廢水臭氧催化氧化深度處理技術(shù)規(guī)程》(T-SDEPI 030-2022)
- 多元化與平等待遇管理制度
- 2025年統(tǒng)編版中考語文課內(nèi)文言文《唐雎不辱使命》三年中考試題+模擬題(學(xué)生版+解析)
- 生日快樂祝福含生日歌相冊課件模板
評論
0/150
提交評論