版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY數(shù)據(jù)結(jié)構(gòu)課程設計報告課設題目: 利用棧計算簡單表達式 專 業(yè): 汽車電子工程 班 級: T1323-14 姓 名: 華勝 完成日期: 2015-01-16 指導教師: 付勇智 目錄1.課程設計題目與內(nèi)容32.需求分析32.1要求42.2任務描述42.3運行環(huán)境42.4開發(fā)工具33.總體設計4 3.1設計任務與目標4 3.2程序中的功能函數(shù)5 3.3方案設計與論證54算法說明6 4.1程序所含函數(shù)6 4.2函數(shù)間的調(diào)用關(guān)系74.3函數(shù)調(diào)用詳細說明84.4函數(shù)流程圖85詳細設計說明95.1數(shù)據(jù)結(jié)構(gòu)設計9 5.2模塊接
2、口設計106.程序運行10 6.1 函數(shù)主界面10 6.2 計算表達式11 6.3保存結(jié)果136.4查看記錄146.5清空記錄166.6幾種輸入錯誤176.7程序退出197.編程心得與體會198.程序源代碼21利用棧計算表達式1.題目描述及其要求:棧是計算機中常用的一種數(shù)據(jù)結(jié)構(gòu),具有廣泛的使用。利用棧的性質(zhì)及其操作原理編寫一個使用棧計算表達式的程序有助于更好的掌握棧的使用規(guī)則和原理應用。數(shù)據(jù)結(jié)構(gòu)課程設計是理解和掌握數(shù)據(jù)結(jié)構(gòu)的重要環(huán)節(jié),主要任務是實現(xiàn)各種數(shù)據(jù)組織中的數(shù)據(jù)邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)以及有關(guān)操作的算法。使學生學會分析研究計算機加工的數(shù)據(jù)結(jié)構(gòu)的特性,以便為應用涉及的數(shù)據(jù)選擇適當?shù)倪壿嫿Y(jié)構(gòu)、存儲
3、結(jié)構(gòu)及相應的算法。另一方面,通過團隊合作、文檔編制、主頁設計等環(huán)節(jié)對學生進行全方位的訓練,最終達到培養(yǎng)學生的數(shù)據(jù)抽象能力和軟件設計的能力。通過全部過程培養(yǎng)和鍛煉學生的鉆研能力、動手能力、分析問題和解決問題的實際能力。題目要求:(1)按照分析、設計、編碼、調(diào)試、測試的軟件過程完成這個應用程序。(2)為各項操作功能設計一個菜單,應用程序運行后,先顯示這個菜單,然后用戶通過菜單項選擇希望進行的操作項目。輸入要求: (1)應用程序運行后在屏幕上顯示一個菜單。用戶可以根據(jù)需求,選定相應的操作項目。進入每個操作后,根據(jù)應用程序的提示信息,從鍵盤輸入相應的信息。程序根據(jù)用戶輸入的信息完成相應的處理,實現(xiàn)要求
4、的功能。(2)能對輸入的數(shù)據(jù)進行簡單的校驗。輸出要求: (1)應用程序運行后,要在屏幕上顯示一個菜單。 (2)要求用戶輸入數(shù)據(jù)時,給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式以及結(jié)束方式等。(3)在程序完成處理后,要清楚地給出程序的處理結(jié)果:如:從鍵盤輸入一個表達式,屏幕要輸出正確結(jié)果。實現(xiàn)要求: 采用模塊化程序設計的方法,將程序中的各項功能用函數(shù)實現(xiàn)。2.需求分析2.1要求1) 遵循軟件開發(fā)過程的基本規(guī)范;能靈活應用,具備運用數(shù)據(jù)結(jié)構(gòu)知識和C語言編程解決實際問題的能力。2) 運用結(jié)構(gòu)化程序設計方法,按照課程設計題目要求,完成包括需求分析、數(shù)據(jù)結(jié)構(gòu)設計、概要設計、詳細設計、編寫代碼、調(diào)試
5、和測試C程序等過程。3) 學會利用數(shù)組、結(jié)構(gòu)體、鏈表進行相關(guān)信息表示。4) 功能模塊劃分清晰,系統(tǒng)結(jié)構(gòu)圖符合功能操作要求,且有詳盡的功能描述5) 各主要功能模塊有詳盡的流程圖及描述,用函數(shù)的形式實現(xiàn),且調(diào)用入口、功能、出口等關(guān)系正確。6) 所設計的C程序較好的可讀性和可靠性;程序書寫風格規(guī)范,注釋清晰。7) 界面友好(良好的人機互交),凡需要輸入信息時,都有較詳盡的提示信息,并對輸入信息有較完善的值域分析。8) 程序經(jīng)上機調(diào)試通過,不應出現(xiàn)語法型、功能型錯誤,并獲得滿意的結(jié)果。9) 學會通過各功能性測試用例測試程序的能力,盡可能避免原則性錯誤的出現(xiàn)。10) 掌握編寫、調(diào)試和測試C語言程序的基本
6、技巧,充分理解結(jié)構(gòu)化程序設計的基本方法。11) C語言課程設計報告的內(nèi)容反應實際設計過程,且符合格式要求,條理清晰,內(nèi)容充實。2.2任務描述(1)能從鍵盤輸入一個數(shù)學表達式。(2)能計算一個數(shù)學表達式。(3)能保存一個數(shù)學表達式。(4)能讀取保存的記錄。(5)能清空已保存的記錄。2.3運行環(huán)境1) Windows XP/ 7系統(tǒng)2) VC+6.0編譯環(huán)境2.4開發(fā)工具C語言3.總體設計3.1設計任務與目標編寫程序?qū)崿F(xiàn)表達式求值,即驗證某算術(shù)表達式的正確性,若正確,則計算該算術(shù)表達式的值。主要功能描述如下:1、從鍵盤上輸入表達式,以“=” 號結(jié)束表達式。2、分析該表達式是否合法:(1)是數(shù)字,則
7、判斷該數(shù)字的合法性。若合法,則壓入數(shù)據(jù)到堆棧中。(2)是規(guī)定的運算符,則根據(jù)規(guī)則進行處理。在處理過程中,將計算該表達式的值。(3)若是其它字符,則返回錯誤信息。3、若上述處理過程中沒有發(fā)現(xiàn)錯誤,則認為該表達式合法,并在屏幕上打印處理結(jié)果。附加功能:1. 規(guī)定表達式的合法性2. 小數(shù)計算3. 計算記錄的保存與查看4. 判斷表達式的合法性(1)規(guī)定表達式的合法性,括號配對,不能出現(xiàn)“6+3”、“6+3”等符號重疊的情況。(2)表達式開頭只能是數(shù)字或“(”,表達式中只能有一個“=”。3.2程序中的功能函數(shù):void initstack():初始化堆棧int check():語法檢查并計算int Pu
8、sh (czs *nu, double da):將操作數(shù)壓入堆棧char procede(char top,char code):處理操作碼int change_opnd(char code):將字符型操作碼轉(zhuǎn)換成優(yōu)先級int push (czm *op,char co):將操作碼壓入堆棧char pop (czm *op):將操作碼彈出堆棧double caculate(czm *op,czs *nu):簡單計算+,-,*,/double Pop (czs *nu):彈出操作數(shù)3.3方案設計與論證1. 定義一個expression全局表達式結(jié)構(gòu)體EXPRESS 1000存放計算過的表達式(e
9、xpress MAXSIZE)和計算結(jié)果(result)、一個計量器(i)、一個表達式字符串、一個操作碼棧和一個操作數(shù)棧;2. 把表達式字符串從頭到尾逐一掃描,將輸入的表達式進行語法檢查;3. 第一個字符只能是數(shù)字或“(”,最重一個字符只能是“=”;4. 表達式括號必須配對,中間不能出現(xiàn)“=”;5. 在“(”前面只能是“+、*、/、( ”,在“+、*、/、=、)”前面只能是數(shù)字或“)”;6. 把表達式字符串從頭到尾逐一掃描,直到表達式掃描完畢,操作碼棧為空;7. 把字符根據(jù)運算優(yōu)先級別選擇操作;8. 把表達式中的數(shù)值部分字符串轉(zhuǎn)成數(shù)值壓入操作數(shù)棧;9. 是“(”直接壓入到操作碼棧,級別比操作碼
10、棧頂元素高的,把運算符壓入操作碼棧;10. 級別比操作碼棧低的,彈出操作碼棧的棧頂元素和操作數(shù)棧的兩個棧頂元素,進行運算后再壓入操作數(shù)棧;11. 是“)”,若操作碼棧頂是“(”,把彈出操作碼棧頂元素,否則“)”視為級別最低的元素,重復7;12. 最后計算出結(jié)果并將其存放在EXPRESS i,計量器加1;13. 重復計算后,將結(jié)果保存在文件里,并統(tǒng)計計算次數(shù);14. 查看多次計算結(jié)果,以表形式輸出;15. 查看本次計算記錄,以表形式輸出;16. 清除計算記錄,重新計算。4算法說明4.1程序所含函數(shù):主要函數(shù):void main()/主函數(shù)void stack1(czm *op,czs *nu)/
11、程序主菜單void stack2(czm *op,czs *nu)/第二層計算選擇,子菜單void load()/顯示所有計算記錄void save()/保存計算結(jié)果void shown()/顯示本次計算結(jié)果void result(czm *op,czs *nu)/計算結(jié)果double caculate(czm *op,czs *nu /簡單計算+,-,*,/表達式處理函數(shù):int check()/語法檢查double change_num(char str)/數(shù)字字符串轉(zhuǎn)成double型數(shù)字char procede(char top,char code)/處理操作碼,判斷棧的操作int ch
12、ange_opnd(char code)/字符型操作碼轉(zhuǎn)換優(yōu)先級,非表達式字符返回-2棧操作函數(shù):double Get (czs *nu)/查看操作數(shù)棧棧頂double pop (czs *nu)/操作數(shù)棧出棧int Push (czs *nu,double da)/壓入操作數(shù)棧int Empty (czs *nu)/判空void Initstack(czs *nu) /初始化棧char get(czm *op)/查看棧頂char pop(czm *op)/出棧int push(czm *op,char co)/壓棧int empty(czm *op)/判空void initstack(czm
13、 *op)/初始化棧4.2函數(shù)間的調(diào)用關(guān)系:l main():主函數(shù) stack1();load() stack1();l stack1()程序模式函數(shù)清空文件exit();check()result(op,nu) stack2()stack1(); load stack1();l stack2()子菜單 save() stack2(); shown() stack2();l result(op,nu)計算結(jié)果initstack(op) Initstack(nu) push (op,=) Push (nu,change_num(str2);change_opnd(*ps) push (op,*
14、ps);procede(get (op),*ps) pop (op); Push (nu,caculate(op,nu)l caculate(op,nu) b=Pop (nu) a= Pop (nu) pop (op)4.3函數(shù)調(diào)用詳細說明 main()函數(shù):調(diào)用了一個函數(shù)stack1(),stack1()判斷執(zhí)行查看所有計算記錄函數(shù)load(),或是清空以往的所有計算記錄,或是退出程序,或是檢查輸入表達式語法check()并計算表達式result(op,nu)的操作。 result(op,nu)函數(shù):是計算表達式,調(diào)用了初始化棧函數(shù)和字符級別判斷change_opnd(*ps),若是數(shù)字,則
15、調(diào)用轉(zhuǎn)化數(shù)字change_num(str2)然后壓入操作數(shù)棧,若是運算符,剛調(diào)用判斷操作procede(get (op),*ps),若是“”,則彈出操作碼棧的棧頂元素和操作數(shù)棧的兩個棧頂元素,進行運算caculate(op,nu)后再壓入操作數(shù)棧,計算完畢后按stack1()順序運行。 stack2()函數(shù):在計算結(jié)果后調(diào)用跟隨的選擇菜單,進行查看結(jié)果shown()、保存結(jié)果save()、查看計算記錄load()、回到主菜單的操作。4.4函數(shù)流程圖:load()main()Stack1()result()save()Check()Exit()Start2()shown()5詳細設計說明5.1數(shù)
16、據(jù)結(jié)構(gòu)設計1)表達式可以用一個字符串表示,計算結(jié)果可以用一個雙精度浮點數(shù)即小數(shù)表示,結(jié)構(gòu)簡單,可以使用一段連續(xù)的地址空間,故定義一個結(jié)構(gòu)體表示即可。定義如下: struct expression/表達式結(jié)構(gòu)double result;char expressMAXSIZE;EXPRESSN;2)使用棧計算表達式時可以定義兩個棧存放數(shù)字的操作數(shù)棧(czs)和存放計算字符(+、-、*、/、(、))的操作碼棧(czm)。它們的定義如下: typedef struct/操作碼棧定義char codeMAXSIZE;int top;czm;typedef struct/操作數(shù)棧定義double data
17、MAXSIZE;int top;czs;3)宏定義:在本程序的開頭定義了兩個宏定義變量,用來對后面出現(xiàn)的相同變量進行替換。#define MAXSIZE 1000#define N 10004)全局變量:int i=05.2模塊接口設計系統(tǒng)以主函數(shù)void main()為入口,通過調(diào)用void warning()函數(shù),提示用戶使用該程序應注意的問題,通過調(diào)用void stack1()函數(shù),導入程序調(diào)用,系統(tǒng)接收用戶輸入的選擇,調(diào)用相應的函數(shù),進入到下一級菜單進行相關(guān)工作。6.程序運行6.1 函數(shù)主界面6.2 計算表達式6.3保存結(jié)果6.4查看記錄6.5清空記錄6.6幾種輸入錯誤6.7程序退出7
18、編程心得及體會數(shù)據(jù)結(jié)構(gòu)、高級語言和算法設計與分析這三門課程是構(gòu)成程序設計理論底層的黃金三角形。數(shù)據(jù)結(jié)構(gòu)重點討論程序設計中如何分析、規(guī)劃和存儲實現(xiàn)相關(guān)的數(shù)據(jù)以及關(guān)系。數(shù)據(jù)結(jié)構(gòu)詳細介紹了程序設計中各種常見的數(shù)據(jù)存儲結(jié)構(gòu),對于程序設計有著至關(guān)重要的作用。如果說理論課是學習和掌握各種數(shù)據(jù)結(jié)構(gòu)的存儲關(guān)系及邏輯關(guān)系,那么課程設計就是對知識掌握程度的一種檢測?!皩W而不思則罔,思而不學則殆”,學習是為了掌握知識,也為了應用于實際。一周的課程設計實踐,在同學和老師的幫助下,我完成了既定的任務,實現(xiàn)了要求的程序功能,這使我對數(shù)據(jù)結(jié)構(gòu)及編程有了更進一步的認識和了解,要想學好它要重在實踐,要通過不斷的實際操作才能更好
19、地學習它。通過課程設計這一實踐環(huán)節(jié),加深了我對本學期所學知識的理解,也提高了我運用所學知識分析問題和解決實際問題的能力。在此過程中我 也發(fā)現(xiàn)自己好多不足之處,首先是自己對語言的一些標準庫函數(shù)不太了解,其次,對于數(shù)據(jù)結(jié)構(gòu)的把我也不夠深刻,如棧的常見操作,還有對函數(shù)調(diào)用的正確使用不夠熟悉,有時對語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐,我在這幾個方面的認識有所提高。通過這一周的實踐學習,我不僅認識和體驗了按照分析、設計、調(diào)試和測試的軟件開發(fā)過程,更從中深刻認識到了“世上無難事,只要肯攀登”的道理。雖然自己在此過程中曾花費大量時間去修改一個小錯誤,但是當最后看自己的程序完成了既定的任務時,當看著程序一
20、步步實現(xiàn)自己的想法時,心中成功的喜悅之情真是難于言表,憑此不懈的精神奮斗,還有什么困難能攔得住自己前進的步伐呢?老師說“我要的不是你們的程序,而是你們能有所收獲。”“課設是幫助你們掌握所學知識的良好途徑?!币苍S我們所學的數(shù)據(jù)結(jié)構(gòu)知識對于編程來說至少冰山一角,想要達到一般程序員的水準也需要一個漫長的過程,只要你愿意學,就一定能有所收獲和成就。這次的課程實踐雖然很苦,但快樂也有。多掌握一門知識,對我們的學習和生活一定有重要的幫助。數(shù)據(jù)結(jié)構(gòu)這門課固然難學且枯燥,很多內(nèi)容太過抽象,很多數(shù)據(jù)結(jié)構(gòu)類型需要通過畫示意圖才能理解,如棧。前人為我們樹立了榜樣,我們也要努力前行。8.程序源代碼#include #
21、include #include #include #define MAXSIZE 100#define N 1000int i=0;/表達式數(shù)struct expression/表達式結(jié)構(gòu)double result;char expressMAXSIZE;EXPRESSN;/表達式的一個整體容器stypedef struct/操作碼棧定義char codeMAXSIZE;int top;czm;typedef struct/操作數(shù)棧定義double dataMAXSIZE;int top;czs;/-操作數(shù)棧棧操作-:void Initstack(czs *nu)nu-top=-1;int
22、Empty(czs *nu)/判空if(nu-top=-1)return 0;else return 1;int Push(czs *nu,double da)/壓棧if(nu-top=MAXSIZE-1)printf(提醒:操作數(shù)棧已滿.);return 0;nu-top+;nu-datanu-top=da;return 1;double Pop(czs *nu)/出棧double a=0;if(nu-top=-1)printf(提醒:操作數(shù)棧已滿.);return a;a=nu-datanu-top;nu-top-;return a;double Get(czs *nu)/查看棧頂if(n
23、u-top!=-1)return nu-datanu-top;return 0;/-操作碼棧棧操作-:void initstack(czm *op)/初始化棧op-top=-1;int empty(czm *op)/判空if(op-top=-1)return 0;else return 1;int push(czm *op,char co)/壓棧if(op-top=MAXSIZE-1)printf(操作碼棧已滿.);return 0;op-top+;op-codeop-top=co;return 1;char pop(czm *op)/出棧char a=0;if(op-top=-1)print
24、f(提醒:操作碼棧是空的.);return a;a=op-codeop-top;op-top-;return a;char get(czm *op)/查看棧頂char a=0;if(op-top=-1)printf(提醒:操作碼棧是空的.);return a;elsereturn op-codeop-top;/-結(jié)束棧定義操作-/-函數(shù)操作-:int change_opnd(char code)/將字符型操作碼轉(zhuǎn)換成優(yōu)先級,非表達式字符反回-2switch(code)case =:return 1;break;case ):return 2;break;case +:return 3;brea
25、k;case -:return 3;break;case *:return 4;break;case /:return 4;break;case (:return 0;break;/操作碼級別=0;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 0:case .: return -1;/操作數(shù)級別=-1;default: return -2;/其它符號級別=-2char procede(char top,char code)/處理操作碼,判斷棧的操作if(change_opnd(code)=0)/(入棧re
26、turn ();elseif(change_opnd(code)=2 & change_opnd(top)=0)/(和)同時出現(xiàn),(出棧,)不入棧return (=);elseif(change_opnd(code);elsereturn ();/入棧double change_num(char str)/數(shù)字字符串轉(zhuǎn)成double型數(shù)字char *s=str;int i,j;int p=1,q=0;/p=小數(shù)點前位數(shù),q=小數(shù)點后位數(shù)char d=.,z=0;double da=0;if(strstr(str,d)=0)/判斷是否有小數(shù)點p=strlen(str);elseif(strstr
27、(str,d)=str)/沒有輸入小數(shù)點前的數(shù),如.032p=1;q=strlen(str)-1;strcpy(str,strcat(z,str);elsep=strstr(str,d)-str;q=strlen(str)-p-1;for(i=0;ip;i+)/小數(shù)點前的各位數(shù)乘以各自的階數(shù),然后疊加:123=1*100+2*10+3*1da=da+(int)stri-48)*pow(10,p-i-1);for(j=0;j0|*p=.)if(change_opnd(*p)!=3)printf(n表達式只能以數(shù)字或(開頭,請重新輸入:);gets(EXPRESSi.express);p=EXPR
28、ESSi.express;n=0;continue;elseif(change_opnd(*p)=-2)printf(n表達式%c為非法字符.請重新輸入:,*p);gets(EXPRESSi.express);p=EXPRESSi.express;n=0;continue;else/合法剛跳到下一個字符p=p+1;continue;if(change_opnd(*p)=0)/(前一個字符只能是+、-、*、/、(if(change_opnd(*(p-1)3&change_opnd(*(p-1)!=-2)if(change_opnd(*(p-1)!=0)printf(n表達式%c不符合語法.請重新
29、輸入:,*p);gets(EXPRESSi.express);p=EXPRESSi.express;n=0;continue;if(change_opnd(*p)=2) / )后面只能是+ - * / =if(change_opnd( *(p+1) )=0)printf(n表達式%c或%c不符合語法.請重新輸入:,*p,*(p+1);gets(EXPRESSi.express);p=EXPRESSi.express;n=0;continue;if(change_opnd(*p)=-1)/+、-、*、/、=、)前一個字符只能是數(shù)字和)if(change_opnd(*(p-1)=2)printf(
30、n表達式%c或%c不符合語法,請重新輸入:,*(p-1),*p);gets(EXPRESSi.express);p=EXPRESSi.express;n=0;continue;if(change_opnd(*p)=4)if(change_opnd(*(p-1)!=-1) if(change_opnd(*(p-1)!=2)printf(n表達式%c或%c不符合語法,請重新輸入:,*(p-1),*p);gets(EXPRESSi.express);p=EXPRESSi.express;n=0;continue;if(change_opnd(*p)=1)/判斷表達式中是否有=重復出現(xiàn),最后括號是否配
31、對if(*(p+1)!=0)printf(n表達式中=,只能出現(xiàn)在表達式結(jié)束處.請重新輸入:);gets(EXPRESSi.express);p=EXPRESSi.express;n=0;continue;if(n!=0)printf(n表達式括號不配.請重新輸入:);gets(EXPRESSi.express);p=EXPRESSi.express;n=0;continue;p=p+1;return 1;double caculate(czm *op,czs *nu)/簡單計算+,-,*,/double b=Pop(nu),a=Pop(nu);switch(pop(op)case +:ret
32、urn(a+b);break;case -:return(a-b);break;case *:return(a*b);break;case /:return(a/b);break;return 0;void result(czm *op,czs *nu)/計算結(jié)果char str2MAXSIZE=,str32=0;char *ps=EXPRESSi.express;initstack(op);/初始化棧Initstack(nu);push(op,=);while(!(*ps=)&(get(op)=)/檢查是表達式和操作碼是否到尾if(change_opnd(*ps)=-1)/操作數(shù)處理whil
33、e(change_opnd(*ps)=-1)strncpy(str3,ps,1);/數(shù)字字符一個個取出放在str2strcat(str2,str3);ps+;Push(nu,change_num(str2);strcpy(str2,);else /操作碼處理switch(procede(get(op),*ps)case :Push(nu,caculate(op,nu);continue;break;if(*ps=)&get(op)=)ps+;continue;if(*ps=|get(op)=)continue;/表達式和操作碼有一個到尾,則跳出繼續(xù)循環(huán)ps+;EXPRESSi.result=G
34、et(nu);printf(nt 表達式:%st計算結(jié)果:%lfn,EXPRESSi.express,EXPRESSi.result);printf(t-n);i+;/表達式個數(shù)加1;void shown()/顯示計算結(jié)果int n;for(n=0;n0;n-)/記錄最后一個#號位置,即未保存的結(jié)果的開始位置,重復保存只會追加if(EXPRESSn-1.express0=#)break;strcpy(EXPRESSi.express,#表達式個數(shù):);/每次保存都統(tǒng)計計算次數(shù)EXPRESSi.result=i-n;i+;for(m=n;mi;m+)if(fwrite(&EXPRESSm,siz
35、eof(struct expression),1,fp)!=1)/將表達式和計算結(jié)果存到文件中printf(file write errorn);fclose(fp);printf(*提醒:計算記錄已經(jīng)保存n);void load()/顯示所有計算記錄int m;struct expression eN;FILE *fp;printf(n);if(fp=fopen(calculate.dat,rb)=NULL)/空文件printf(n-n);printf(*提醒:沒有記錄信息,請進行計算并保存信息:n);return;for(m=0;fread(&em,sizeof(struct expression),1,fp);m+)/按照expression結(jié)構(gòu)一個個讀取printf(n%d -n,m+1);printf(t 表達式:%st計算結(jié)果:%.2lfn,em.express,ei.result);if(em.express0=#)/控制輸出不同次計算的記錄m=-1;printf(n);printf(n-n);fclose(fp);printf(n);void warning()printf(n-提示-n);printf(計算表達式時,請用戶正確輸入表達式,不得出現(xiàn)非法字符及字符重復出現(xiàn)n);printf(表達式以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年高中英語Unit1SchoollifeSectionⅦGuidedWriting教師用書教案牛津譯林版必修1
- 2024-2025學年高中歷史課時分層作業(yè)一1.1統(tǒng)一中國的第一個皇帝秦始皇含解析新人教版選修4
- 2025年度虛擬現(xiàn)實VR教育內(nèi)容開發(fā)與運營合同3篇
- 旅游地產(chǎn)尾盤銷售代理合同(2025版)9篇
- 2025年土地租賃合同終止及合同解除條件協(xié)議
- 2025臨時土地出租及設施建設合作協(xié)議3篇
- 2025年度大型企業(yè)人力資源成本控制與預算合同3篇
- 2024食品行業(yè)供應鏈管理服務合作協(xié)議3篇
- 2024石油化工公司化工產(chǎn)品供應承包合同
- 2025年度知識產(chǎn)權(quán)保護委托維權(quán)服務協(xié)議3篇
- 中國華能集團公司風力發(fā)電場運行導則(馬晉輝20231.1.13)
- 中考語文非連續(xù)性文本閱讀10篇專項練習及答案
- 2022-2023學年度六年級數(shù)學(上冊)寒假作業(yè)【每日一練】
- 法人不承擔責任協(xié)議書(3篇)
- 電工工具報價單
- 反歧視程序文件
- 油氣藏類型、典型的相圖特征和識別實例
- 流體靜力學課件
- 顧客忠誠度論文
- 實驗室安全檢查自查表
- 證券公司績效考核管理辦法
評論
0/150
提交評論