C++ 計算器 課程設計模板_第1頁
C++ 計算器 課程設計模板_第2頁
C++ 計算器 課程設計模板_第3頁
C++ 計算器 課程設計模板_第4頁
C++ 計算器 課程設計模板_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

C++面向?qū)ο蟪绦蛟O計PAGE16《C++面向?qū)ο蟪绦蛟O計》課程設計報告設計題目:計算器學院名稱:專業(yè):信息與計算科學班級:學生姓名:學號:指導教師:完成時間:目錄第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章軟件設計 43.1軟件功能設計 43.2功能函數(shù)設計 43.3輸入輸出的設計 4第4章軟件實現(xiàn) 54.1軟件源代碼 54.2運行結(jié)果 12結(jié)論 15參考文獻 15

第1章概述1.1軟件實現(xiàn)的目標課程設計的任務:設計一個簡易計算器,要求源文件要采用多文件的工程結(jié)構(gòu);在源程序中必須使用類,輸入輸出要符合C++語言的特性?;竟δ埽耗苡嬎慵?、減、乘、除及帶括號和乘方的混合運算。軟件特點:可以方便快捷的直接運算帶括號的混合算式;操作簡便,都是從鍵盤直接輸入。1.2軟件實現(xiàn)方案第一步:分析題目,建立類,畫出類圖。第二步:畫出流程,根據(jù)流程圖編寫程序清單第三步:上機調(diào)試程序(使用單步調(diào)試,設置斷點、分塊調(diào)試的方法)。第四步:及時整理資料,撰寫課程設計報告中有關這個題目的內(nèi)容。1.3軟件實現(xiàn)環(huán)境硬件配置:586以上PC兼容機或品牌機,配有彩色顯示器、鼠標、鍵盤,內(nèi)存不小于64MB,硬盤自由空間不少于200MB。推薦配置為內(nèi)存128MB或256MB(或以上),硬盤自由空間500MB以上。運行環(huán)境:Windows2000/NT/Xp、VisualC++集成開發(fā)環(huán)境。第2章軟件分析2.1調(diào)查用戶對計算器軟件的要求:能夠進行復雜的運算;能夠?qū)崿F(xiàn)對算式的計算;操作方便快捷;顯示運行結(jié)果時,結(jié)果前顯示該算式;2.2軟件分析結(jié)構(gòu)圖:主程序主程序主界面主界面退出程序初始化程序退出程序初始化程序數(shù)據(jù)輸入數(shù)據(jù)輸入數(shù)據(jù)處理數(shù)據(jù)處理結(jié)果輸出結(jié)果輸出圖2.2第3章軟件設計3.1軟件功能設計流程圖:開始開始操作界面算式輸入輸入判斷錯誤類型提示輸入判斷輸入判斷輸入判斷標記標記標記算式計算結(jié)果輸出NYNYNYNY退出圖3.13.2功能函數(shù)設計1.定義界面函數(shù)voidfirst(){cout<<"計算器基本功能介紹"<<endl;cout<<endl;}2.定義判斷函數(shù)booljudge(){//判斷是不是加減乘除與浮點數(shù)}3.定義對棧函數(shù)voidtozhan(stack<float>&,stack<char>&){//加減乘除四則運算及浮點數(shù)算法}4.定義運算函數(shù)voidmem(){//初始界面顯示;數(shù)字類字符與數(shù)字轉(zhuǎn)換壓入數(shù)字棧;考慮優(yōu)先級調(diào)整運算順序;括號及輸出處理}5定義小數(shù)運算函數(shù)floatfraction(){//處理小數(shù)}3.3輸入輸出的設計①、界面設計程序運行后會出現(xiàn)一個簡捷的窗口,并有相應的操作提示語,便于用戶操作。②、功能設計數(shù)據(jù)輸入完成后,軟件運行時自動調(diào)用不同的函數(shù)模塊實現(xiàn)不同的運算,結(jié)束時將輸入算式和結(jié)果以等式的形式在界面輸出,輸出后可按任意鍵退出。第4章軟件實現(xiàn)4.1軟件源代碼#include<iostream>#include<stack>usingnamespacestd;voidfirst()//定義界面函數(shù){cout<<""<<endl;cout<<"歡迎使用計算器"<<endl;cout<<""<<endl;cout<<"【該計算器具備整型數(shù)據(jù)、浮點型數(shù)據(jù)的算術(加、減、乘、除)運算】"<<endl;cout<<"【功能。依次輸入第一個運算數(shù)、運算符(+,-,*,/),第二個運算數(shù),】"<<endl;cout<<"【然后輸出結(jié)果。實現(xiàn)單運算符表達式計算的功能。輸入的操作數(shù)可以包】"<<endl;cout<<"【含整數(shù)或浮點數(shù)。如果遇到錯誤的表達式,應輸出錯誤提示信息。表達】"<<endl;cout<<"【式可以有括號,并且+-*/分優(yōu)先級的】"<<endl;cout<<endl;}voidmem();booljudge(char,char);voidtozhan(stack<float>&,stack<char>&);floatfraction(float,float);voidmain(){mem();}voidmem(){ first();intused,pr;floatt;charc;stack<float>num;stack<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)化好的數(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)運算的標志;}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);while(!oper.empty())tozhan(num,oper);cout<<"表達式的值為:"<<num.top()<<endl;return;}else{cout<<"表達式輸入錯誤,請重新輸入!"<<endl;return;}}}booljudge(chars,chart){if((s=='*'||s=='/')&&(t=='+'||t=='-'))returntrue;if(s=='.')returntrue;returnfalse;}voidtozhan(stack<float>&num,stack<char>&oper){floata,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('/'):r=a/b;break;case('.'):r=fraction(a,b);};num.push(r);oper.pop();}floatfraction(floatm,floatn)//處理小數(shù){while(n>=1)n/=10;n+=m;returnn;}4.2運行結(jié)果結(jié)論本程序基本完成了題目要求的功能。此計算器有運算的能力。但是功能單一,每次只能進行一次運算,而不能重復操作,并且對于數(shù)據(jù)的N次平方的操作需要進行多次數(shù)據(jù)與“*”的多次重復輸入,比較復雜,在時空方面占據(jù)劣勢。本軟件應用起來不是很方便,特別是輸入的一些字符的時候,必須是英文半角,不然會提示語法錯誤,最不實際的就是不能運用求值。但是可以通過增加判斷條件,使之對輸入形式不拘一格.這次課程設計,我更加深刻地認識到了C語言,棧,C++面向?qū)ο缶幊倘咧g的區(qū)別和聯(lián)系,同時也體會到了三者聯(lián)合的優(yōu)勢,清楚的認識到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論