中衡C面向?qū)ο笥?jì)算器程序計(jì)算機(jī)C++資料_第1頁
中衡C面向?qū)ο笥?jì)算器程序計(jì)算機(jī)C++資料_第2頁
中衡C面向?qū)ο笥?jì)算器程序計(jì)算機(jī)C++資料_第3頁
中衡C面向?qū)ο笥?jì)算器程序計(jì)算機(jī)C++資料_第4頁
中衡C面向?qū)ο笥?jì)算器程序計(jì)算機(jī)C++資料_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

******************************acou(cdr3ub-ei=h宀(opl---opl+-)(save1&s,doublenum);,voidpush2******************************acou(cdr3ub-ei=h宀(opl---opl+-)(save1&s,doublenum);,voidpush2同時(shí)也使我們掌握自頂而下的設(shè)計(jì)方法,將大問題進(jìn)行模塊化,領(lǐng)會(huì)運(yùn)算符“+”入字符棧,操作數(shù)1入數(shù)字棧數(shù)字棧模擬計(jì)算器程序設(shè)計(jì)內(nèi)容:設(shè)計(jì)一個(gè)程序來模擬一個(gè)簡單的手持計(jì)算器。程序支持算術(shù)運(yùn)算+、-、*、/、=、以及C(清除)、A(全清除)操作。程序運(yùn)行時(shí),顯示一個(gè)窗口,等待用戶輸入,用戶可以從鍵盤輸入要計(jì)算的表達(dá)式,輸入的表達(dá)式顯示在窗口中,用戶鍵入’='符號后,窗口顯示出結(jié)果。選作內(nèi)容如果用戶輸入的表達(dá)式不合法,可以判別出來并給出相應(yīng)的錯(cuò)誤提示。測試數(shù)據(jù)程序輸入不少于5種不同的表達(dá)式進(jìn)行測試。二?問題的分析級判斷是應(yīng)再次壓入運(yùn)算符,還是將數(shù)據(jù)和運(yùn)算符彈出棧,在棧外進(jìn)行運(yùn)算,再將所得的結(jié)果壓入棧,繼續(xù)進(jìn)行與計(jì)算,直至運(yùn)算結(jié)束。數(shù)字棧運(yùn)算符棧O數(shù)字棧字符棧+字符棧("cls");〃進(jìn)行全清除gotopart1;}//gotsion[i])||expression[i]=='.'){usreaasecasecase宀("cls");〃進(jìn)行全清除gotopart1;}//gotsion[i])||expression[i]=='.'){usreaasecasecase宀swifchd(o->e^的棧。是用來進(jìn)行計(jì)算的,并將計(jì)算的結(jié)果壓入棧。以便下首先提示1數(shù)棧字符棧運(yùn)算符“一”入運(yùn)算符棧頂比較后,將運(yùn)算符“一”入運(yùn)算符棧操作數(shù)2入操作數(shù)棧,運(yùn)算符“*入運(yùn)算符棧頂比較后壓入運(yùn)算符棧將操作數(shù)3壓入操作數(shù)棧當(dāng)掃描到=號時(shí),操作數(shù)3和2出棧運(yùn)算符*出棧,進(jìn)行運(yùn)算,運(yùn)算結(jié)果入操作數(shù)棧操作數(shù)6和2出棧,運(yùn)算符“一”出棧,進(jìn)行運(yùn)算,運(yùn)算結(jié)果入操作數(shù)棧13數(shù)字棧字符棧J*—1字符棧數(shù)字棧頂為空,運(yùn)算結(jié)束。主函數(shù)voidmain(),首先提示此程序emp[j]='\0';c=atof(temp);//cha符,在結(jié)構(gòu)體內(nèi)定義整型的棧頂元素top,頂為空,運(yùn)算結(jié)束。主函數(shù)voidmain(),首先提示此程序emp[j]='\0';c=atof(temp);//cha符,在結(jié)構(gòu)體內(nèi)定義整型的棧頂元素top,和存放數(shù)據(jù)及運(yùn)算符的=h(^>^s>^宀infca-cu-afor二noharo字符棧運(yùn)算符棧空,操作數(shù)棧中運(yùn)算為運(yùn)算結(jié)果數(shù)字棧設(shè)置兩個(gè)棧,運(yùn)算數(shù)棧和運(yùn)算符棧,然后,自左向右掃描表達(dá)式,遇操作數(shù)進(jìn)操作數(shù)棧,遇作符棧;若當(dāng)前操作符小于等于運(yùn)算符棧頂,次棧頂出棧,同時(shí)操作數(shù)棧頂也出棧,形成一個(gè)運(yùn)算,并將運(yùn)算的結(jié)果壓入數(shù)字棧。流程圖是否為“=”號你的選擇:";cin>>choice;while(choicmpty(save2s)//判斷運(yùn)算符棧是否為空你的選擇:";cin>>choice;while(choicmpty(save2s)//判斷運(yùn)算符棧是否為空{(diào)if(s.于查詢。根據(jù)C++課程所學(xué)的概念、理論和方法,按照C++程序p)、/slopOPHS宀.n-slor-seB)}COEN是否為運(yùn)算符YY字符棧是否為空NNY是否比字符棧頂優(yōu)先級高uJN11C入字符棧數(shù)字棧頂元素和次棧頂元素出棧,運(yùn)算符棧頂出棧,運(yùn)算結(jié)果入數(shù)字棧r類型進(jìn)行轉(zhuǎn)換push1(stack1,c);}else{i為后者,運(yùn)算完后再將所得的結(jié)果壓入棧頂,再次進(jìn)行判斷,直至棧r類型進(jìn)行轉(zhuǎn)換push1(stack1,c);}else{i為后者,運(yùn)算完后再將所得的結(jié)果壓入棧頂,再次進(jìn)行判斷,直至棧num);voidpop2(save2&s,char&op)(save1&s,doublenum);,voidpush2三?算法的設(shè)計(jì)2、設(shè)計(jì)成員函數(shù)及數(shù)據(jù)??眨魲m敒?1則空則返回1表示真,否則返回0表示假。壓入棧。若所存儲(chǔ)的內(nèi)容已經(jīng)數(shù)組的最大限度,則顯示“棧已滿”,否則將數(shù)字和字符壓入棧頂。否則將棧頂元素分別賦值給num和op。分別判斷棧內(nèi)和棧外運(yùn)算符的優(yōu)先級。算。當(dāng)遇到同級運(yùn)算符時(shí)在時(shí),先進(jìn)行棧內(nèi)運(yùn)算。通過返回值的大小選擇進(jìn)行在哪里的哪種運(yùn)算。一次的運(yùn)算。然后輸入表達(dá)式。分別清空存放數(shù)字和字符的棧。是用來進(jìn)行計(jì)算的,并將計(jì)算的結(jié)果壓入棧。以便下首先提示輸入表達(dá)式,并在表達(dá)式之后加上=,總體用一個(gè)while語句,以“=”結(jié)束。查找,若讀入的字符為數(shù)字,則繼續(xù)判斷下一個(gè)字符,直到下個(gè)字符不是數(shù)字或者斷是將棧外的運(yùn)算符壓入棧還是將站內(nèi)的數(shù)據(jù)及運(yùn)算符彈出棧進(jìn)行運(yùn)算。若為后者,運(yùn)算完后再將所得的行多個(gè)數(shù)字的計(jì)算,想到用for循環(huán)解決輸入數(shù)字上的問題,但只(save1&s,doublenum);,voidpush2棧外的運(yùn)算符壓入棧還是將站內(nèi)的數(shù)據(jù)及運(yùn)算符彈出棧進(jìn)行運(yùn)算。若數(shù)棧操作數(shù)6和2出棧,運(yùn)算符“一”出棧,進(jìn)行運(yùn)算,運(yùn)算結(jié)果入行多個(gè)數(shù)字的計(jì)算,想到用for循環(huán)解決輸入數(shù)字上的問題,但只(save1&s,doublenum);,voidpush2棧外的運(yùn)算符壓入棧還是將站內(nèi)的數(shù)據(jù)及運(yùn)算符彈出棧進(jìn)行運(yùn)算。若數(shù)棧操作數(shù)6和2出棧,運(yùn)算符“一”出棧,進(jìn)行運(yùn)算,運(yùn)算結(jié)果入屬性判斷運(yùn)算符棧是否為空將數(shù)據(jù)壓入數(shù)字棧存儲(chǔ)數(shù)字存儲(chǔ)運(yùn)算符判斷數(shù)字棧是否為空屬性和方法定義類名類型成員名描述成員類別將運(yùn)算符壓入運(yùn)算符棧ut(charop)分別判斷棧內(nèi)和棧外運(yùn)算符的優(yōu)先級。在棧內(nèi)save1&s,double&num)〃將棧頂?shù)臄?shù)據(jù)元素取出ut(charop)分別判斷棧內(nèi)和棧外運(yùn)算符的優(yōu)先級。在棧內(nèi)save1&s,double&num)〃將棧頂?shù)臄?shù)據(jù)元素取出,把計(jì)算的結(jié)果壓入棧,以便下一次運(yùn)算。(5)解決了多個(gè)多個(gè)數(shù)識發(fā)現(xiàn)到自己再學(xué)習(xí)上的存在的不足,再以后的生活學(xué)習(xí)中要多加練存放在num中在棧內(nèi)優(yōu)先級的判斷棧外優(yōu)先級的判斷進(jìn)行計(jì)算并將所得的結(jié)果壓入棧頂主要進(jìn)行運(yùn)算的函數(shù)用戶手冊程序運(yùn)行時(shí),首先顯示此程序設(shè)計(jì)者的信息。提示歡迎使用計(jì)算機(jī)請輸入表達(dá)式(輸完之后請加=),然后輸入所要進(jìn)行計(jì)算的表達(dá)式,進(jìn)行計(jì)算。計(jì)算結(jié)束后提示:繼續(xù)計(jì)算嗎?,輸入表示結(jié)束計(jì)算,并顯示謝謝使用!輸入y表示同意繼續(xù)計(jì)算,輸入nA時(shí)退出,選擇你所需的形式,進(jìn)行計(jì)算。(1)剛開始只能進(jìn)行兩個(gè)數(shù)字的運(yùn)算,不能進(jìn)行多個(gè)數(shù)字的計(jì)算,想到用for循環(huán)解決輸入數(shù)字上的問題,但只能進(jìn)行一種運(yùn)算,達(dá)不到多重運(yùn)算的要求。(2)想到在用for循環(huán)解決次問題,但改來改去都弄不好,最后經(jīng)老師提示,運(yùn)用棧的知識解決問題。(3)開始對棧一點(diǎn)都不了解,全部程序都需要重新寫,完全沒有一點(diǎn)頭緒,把課本關(guān)于棧的部分看了好多遍,和同學(xué)討論,大概知道棧是什么樣的了,開始寫我的程序了。(4)本來只是考慮到建立一個(gè)數(shù)字棧的,但這樣運(yùn)算符的優(yōu)先級不能進(jìn)行,得不出正確的結(jié)果,經(jīng)同學(xué)(5)解決了多個(gè)多個(gè)數(shù)和多個(gè)運(yùn)算符計(jì)算的問題,又想到了可不可以進(jìn)行多次運(yùn)計(jì)算的目的。說明:此程序清除的功能還不能實(shí)現(xiàn),只能進(jìn)行全清除,修改了好長時(shí)間也未能找到一個(gè)好方法解決。(save2&s,charop);分別將數(shù)字和字符壓入棧。若要從什么地方下手,感覺寫這個(gè)也不行寫那個(gè)不行,但經(jīng)過時(shí)間的磨煉,不僅進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程《(save2&s,charop);分別將數(shù)字和字符壓入棧。若要從什么地方下手,感覺寫這個(gè)也不行寫那個(gè)不行,但經(jīng)過時(shí)間的磨煉,不僅進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程《C++語言教程》的到同級運(yùn)算符時(shí)在時(shí),先進(jìn)行棧內(nèi)運(yùn)算。通過返回值的大小選擇進(jìn)行經(jīng)驗(yàn)與體會(huì)此次C++課程設(shè)計(jì),在指導(dǎo)教師的精心教導(dǎo)下,我們學(xué)會(huì)了如何用C++編寫一個(gè)簡單的應(yīng)用程序。首先要對程序的設(shè)計(jì)要求有一個(gè)比較明確的認(rèn)識,然后系統(tǒng)分析與系統(tǒng)設(shè)計(jì),最后詢。根據(jù)C++課程所學(xué)的概念、理論和方法,按照C++程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序;進(jìn)一步加深對C++語言的理解和掌握。理論聯(lián)系實(shí)際,加深和鞏固所學(xué)的理論知識,提高實(shí)踐能力和計(jì)算機(jī)的綜合運(yùn)用能力。我們編寫程序的過程是辛苦課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識、發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程隨著科學(xué)技術(shù)發(fā)展的日新日異,C++已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活和學(xué)習(xí)中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握C++軟件開發(fā)技術(shù)是十分重要的。此次課程設(shè)計(jì)使我們將理論教學(xué)中涉及到的知識點(diǎn)貫穿起來,控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,貫通的程度。對不同的數(shù)據(jù)類型、程序?qū)λ鶎W(xué)知識達(dá)到融會(huì)通過課程設(shè)計(jì),使我們在各方面的能力應(yīng)該得到鍛煉,不僅進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程《C++語言教程》的基本理論知識,理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。而且全面考核我們所掌握的基本理論知識及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的C++語言編寫調(diào)試應(yīng)用系統(tǒng)程析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。同時(shí)也使我們掌握自頂而下的設(shè)計(jì)方法,將大問題進(jìn)行模塊化,領(lǐng)會(huì)結(jié)構(gòu)化程序設(shè)計(jì)的方法。熟練掌握C++語言的基本語法,靈活運(yùn)用各種數(shù)據(jù)類型。進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序(單步調(diào)這次課程設(shè)計(jì)歷時(shí)二周,通過這次設(shè)計(jì)讓我對C++有了更新的認(rèn)識,認(rèn)識到了它的實(shí)際應(yīng)用價(jià)值,可以及大的減少工作量,節(jié)省人力物力,同時(shí)也讓我認(rèn)識發(fā)現(xiàn)到自己再學(xué)習(xí)上的存在的不足,再以后的生活學(xué)習(xí)中要多加練習(xí)編程,力求改變自己的不足。課程設(shè)計(jì)學(xué)習(xí)讓我學(xué)到了很多,學(xué)會(huì)了用所學(xué)習(xí)的知識去解決實(shí)際問題,一開始拿到題目,根本就不知道要從什么地方下手,感覺寫這個(gè)也不行寫那個(gè)不行,但經(jīng)過時(shí)間的磨練以及和同學(xué)之間的交流程序時(shí)遇到了很多問題,程序出錯(cuò)自己無法修改,后來經(jīng)過學(xué)長的指導(dǎo)和同學(xué)以及指導(dǎo)老師的幫助大部分功能不懂的,通過這次的學(xué)習(xí)都可以一一解決,但發(fā)現(xiàn)自己也有很多的不足,很多以前學(xué)過的知識點(diǎn)都不記得了,而且無法將它們聯(lián)系在一起,除了課本上的知識還有好多跟本課程有關(guān)的通過這次的學(xué)習(xí),我知道自己不僅僅要把課本上的東西學(xué)好,相關(guān)的東西,讓自己的知識面更廣,同時(shí)我也更深刻的認(rèn)識到了任何事都不可能一個(gè)人獨(dú)立幫助是非常重要的。知識點(diǎn)都不懂,所以還要了解完成,同學(xué)和老師的[1]鄭莉等編著《C++語言程序設(shè)計(jì)(第三版)》北京:清華大學(xué)出版社,operate);count(b,operate,a);〃月第1,operate);count(b,operate,a);〃月第1版。[11]胡學(xué)鋼等《數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì)指導(dǎo)》北京:清華emp[j]='\0';c=atof(temp);//chaty(save2s);voidpush1(save1&s,d[4]吳乃陵等編著《C++程序設(shè)計(jì)》北京:高等教育出版社[7]李龍澍《C++程序設(shè)計(jì)實(shí)訓(xùn)教程》北京:清華大學(xué)出版社源程序:{{}{}n"coutvv"\t*******************calculator(){};//空的構(gòu)造函數(shù)boolstan"coutvv"\t*******************calculator(){};//空的構(gòu)造函數(shù)boolsta定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。=h(^>^s>^宀infca-cu-afor二noharo}}{}{}{}{}}中{tack1,a);pop1(stack1,b);pop2(s和多個(gè)運(yùn)算符計(jì)算的問題,又想到了可不可以進(jìn)行多次運(yùn)算,當(dāng)想結(jié),“tack1,a);pop1(stack1,b);pop2(s和多個(gè)運(yùn)算符計(jì)算的問題,又想到了可不可以進(jìn)行多次運(yùn)算,當(dāng)想結(jié),“*”返回3,當(dāng)遇到“+”或“”和“*”或“/”同時(shí)存在時(shí);coutvv"\t****專業(yè)班級:08網(wǎng)工(1)班\n"{}}將棧頂?shù)倪\(yùn)算符取出,存放在op中{入操作數(shù)棧數(shù)字棧運(yùn)算符棧O運(yùn)算符“+”入運(yùn)算符棧頂比較后,將入操作數(shù)棧數(shù)字棧運(yùn)算符棧O運(yùn)算符“+”入運(yùn)算符棧頂比較后,將2,5出棧運(yùn)算,并將結(jié)果入數(shù)字棧2.5數(shù)字棧字符棧+字符棧運(yùn)和多個(gè)運(yùn)算符計(jì)算的問題,又想到了可不可以進(jìn)行多次運(yùn)算,當(dāng)想結(jié)num);voidpop2(save2&s,char&op)sum」八^目+八八八-sumua+b八八匕八b=/Bn斗^^淳俞>>^f(OPHH-*---OPHHo=h宀(opl---_opl+-)V-八/柯游孚^>^>雪(4八if(OPHH-*---OPHH2八---_+-)^>^s>^宀二mmB>-AAO-AAENDURAA-BRoublenum)//將數(shù)據(jù)壓入數(shù)字棧{if(s.top==-oublenum)//將數(shù)據(jù)壓入數(shù)字棧{if(s.top==-使用本計(jì)算器--------"<<endl;c

溫馨提示

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

評論

0/150

提交評論