




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)報(bào)告題目:一元多項(xiàng)式加法班級:08113701姓名:韓校歡學(xué)號:0811370115完成日期:2010年11月20日一、需求分析一元多項(xiàng)式加法的任務(wù)主要是對用戶輸入的合法的兩個(gè)一元多項(xiàng)式進(jìn)行加法運(yùn)算并輸出計(jì)算后的結(jié)果。(1)輸入的形式和輸入值的范圍:用戶只需輸入多項(xiàng)式每一項(xiàng)的指數(shù)e和系數(shù)m(必須成對輸入,常數(shù)項(xiàng)的指數(shù)為0),其中e必須是正整數(shù)(0,1,2……),m必須是實(shí)數(shù)。規(guī)定多項(xiàng)式最多只能有20項(xiàng)。(2)輸出的形式:(m0,e0)(m1,e1)(m2,e2)…………(3)程序所能達(dá)到的功能:計(jì)算用戶輸入的兩個(gè)多項(xiàng)式的加法結(jié)果(4)測試數(shù)據(jù):輸入被加的多項(xiàng)式為(1.24)(32)來檢驗(yàn)當(dāng)用戶不按順序輸入時(shí)程序的處理能力輸入字母時(shí),輸入H來檢驗(yàn)程序處理錯(cuò)誤的能力輸入被加的多項(xiàng)式(40)(1.25)(266)(57)(208)(1410)輸入加的多項(xiàng)式(23)(155)(3.28)(209)(1210)(5.611)(8012)(5613)(414)(7.315)(116)(117)(118)(119)(120)(121)(122)(123)(124)(125)二、概要設(shè)計(jì)線性表的抽象數(shù)據(jù)類型定義:ADTList{數(shù)據(jù)對象:D={ai|ai∈ElemSet,i=1,2,……,n,n≥0}數(shù)據(jù)關(guān)系:R1={<ai-1,ai>|ai-1,ai∈D,i=1,2,……,n}基本操作:Init(&L)操作結(jié)果:構(gòu)造一個(gè)空的線性表L。Destroy(&L)初始條件:線性表L已經(jīng)存在。操作結(jié)果:銷毀線性表L。}ADTList本程序的主函數(shù)順序執(zhí)行各個(gè)函數(shù),只有一個(gè)主函數(shù)模塊,所以沒有模塊的調(diào)用。三、詳細(xì)設(shè)計(jì)全部程序:#include<iostream.h>#include<stdlib.h>#defineOK1#defineERROR0typedefintStatus;typedefstructxiang{//項(xiàng)的表示floatcoef;//系數(shù)intexpn;//指數(shù)structxiang*next;}xiang,*term;StatusInit(term&L){//創(chuàng)建一個(gè)空鏈表 L=(term)malloc(sizeof(xiang)); if(!L)exit(ERROR); L->next=NULL; returnOK;}//InitStatuscreat(term&p){//輸入多項(xiàng)式的系數(shù)和指數(shù),建立一元多項(xiàng)式的有序鏈表ptermq; q=(term)malloc(sizeof(xiang)); if(!q)exit(ERROR); p->next=q; charh;//用于判斷用戶是否輸入結(jié)束 intd;//用于判斷用戶是否順序輸入 for(inti=1;i<=20;i++){cout<<"請輸入第"<<i<<"項(xiàng)的系數(shù)(實(shí)數(shù))"<<endl; cin>>q->coef; cout<<"請輸入第"<<i<<"項(xiàng)的指數(shù)(正整數(shù))"<<endl;cin>>q->expn;if(i!=1){ if(d>q->expn) {cout<<"您沒有順序輸入,程序結(jié)束"<<endl; exit(ERROR);} }//判斷用戶是否順序輸入 d=q->expn; if(i==20){ cout<<"您已輸入到規(guī)定的最大項(xiàng)數(shù)"<<endl; q->next=NULL; returnOK;}//限定用戶最多只能輸入20項(xiàng)cout<<"還需要繼續(xù)輸入嗎?(Y/N請輸入小寫)"<<endl; cin>>h; if(h=='n'){q->next=NULL;returnOK;} if(h!='y'){cout<<"您輸入了錯(cuò)誤的字符,程序結(jié)束"<<endl;exit(ERROR);}termr; r=(term)malloc(sizeof(xiang)); if(!r)exit(ERROR);q->next=r; q=r; }//for q->next=NULL; returnOK;}//creatintqiuxiao(inta,intb){ //判斷a,b的大小 if(a!=b){ if(a<b)return1; elsereturn2; }//if elsereturn0;}Statusadd(term&pa,termpb){ //多項(xiàng)式加法:pa=pa+pb,利用兩個(gè)多項(xiàng)式的結(jié)點(diǎn)構(gòu)成“和多項(xiàng)式”//“和多項(xiàng)式”存儲在線性鏈表pa中 termqa,qb,s;qa=pa->next; qb=pb->next; s=pa; intc;while(qa&&qb){ c=qiuxiao(qa->expn,qb->expn); switch(c){ case1: s=qa; qa=qa->next; break; case2: termo;o=qb->next; s->next=qb; s=qb; qb->next=qa; qb=o; break; case0: floatx;x=qa->coef+qb->coef; if(x!=0.0){ termu;qa->coef=x; s=qa; qa=qa->next; u=qb;qb=qb->next; free(u); }//ifelse{s->next=qa->next;free(qa);qa=s->next; termu;u=qb;qb=qb->next;free(u); }//elsebreak;}//switch }//while if(qb)s->next=qb;//鏈接Pb中剩余結(jié)點(diǎn) free(pb);//釋放Pb的頭結(jié)點(diǎn) returnOK;}//addStatusshow(termp){ cout<<"計(jì)算結(jié)果如下:"<<endl; termk; k=p->next; for(inti=1;i<=40;i++){ cout<<"("<<k->coef<<","<<k->expn<<")";if(!(k->next))returnOK; k=k->next; }//for returnOK;}//showvoidmain(void){ termm1,m2; Init(m1); Init(m2); cout<<"請按指數(shù)遞增的順序輸入多項(xiàng)式的每一項(xiàng)(最多只能輸入20項(xiàng))"<<endl; cout<<"請輸入被加的多項(xiàng)式"<<endl; creat(m1); cout<<"請輸入加的多項(xiàng)式"<<endl; creat(m2); add(m1,m2); show(m1);}函數(shù)的調(diào)用關(guān)系圖反映如下:
四、調(diào)試分析該程序在調(diào)試的時(shí)候發(fā)現(xiàn)在建立鏈表m1和m2時(shí)在處理數(shù)據(jù)時(shí)會出現(xiàn)多種問題,特別是鏈表的尾節(jié)點(diǎn)的next一定要賦值NULL,所以要在每個(gè)結(jié)束語句前加上q->next=NULL。還有就是多種結(jié)束語句的位置一定要放的恰到好處。函數(shù)creat的空間復(fù)雜度為O(n),函數(shù)add的最大空間復(fù)雜度為O(n1+n2)。經(jīng)過程序的調(diào)試收獲很多,單單寫一個(gè)程序算法(簡單的)不是很難,但是到調(diào)試的時(shí)候就會有很多錯(cuò)誤,經(jīng)過調(diào)試可以培養(yǎng)我們小心謹(jǐn)慎的辦事態(tài)度。五、用戶使用說明在執(zhí)行該程序時(shí),首先要根據(jù)提示順序(指數(shù)遞增的順序)輸入每一項(xiàng)的系數(shù)(實(shí)數(shù))和指數(shù)(整數(shù)),在遇到系統(tǒng)提示是否繼續(xù)輸入的時(shí)候要輸入字母小寫y(繼續(xù))或n(輸入結(jié)束),當(dāng)用戶輸完第20項(xiàng)時(shí),系統(tǒng)不再提示用戶是否繼續(xù)輸入而自動運(yùn)行下邊程序,因?yàn)樵摮绦蛳拗屏硕囗?xiàng)式的最大項(xiàng)數(shù)不能超過20。當(dāng)用戶輸完以上數(shù)據(jù)后,系統(tǒng)便會自動輸出計(jì)算結(jié)果。六、測試結(jié)果輸入被加的多項(xiàng)式為(1.24)(32)時(shí)系統(tǒng)提示出錯(cuò)自動結(jié)束程序當(dāng)用戶遇到提示是否繼續(xù)輸入字符時(shí)輸入字母H系統(tǒng)提示輸入錯(cuò)誤的字符,程序自動結(jié)束。當(dāng)用戶輸入被加的多項(xiàng)式(4,0)(1.2,5)(26,6)(5,7)(20,8)(14,10)輸入加的多項(xiàng)式(2,3)(15,5)(3.2,8)(20,9)(12,10)(5.6,11)(80,12)(56,13)(4,14)(7.3,15)(1,16)(1,17)(1,18)(1
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何有效記錄工作進(jìn)度計(jì)劃
- 倉庫貨物拆零與分揀管理策略計(jì)劃
- 2025年路面清潔裝備合作協(xié)議書
- 如何制定品牌宣傳計(jì)劃
- 2025年優(yōu)良動植物新品種項(xiàng)目合作計(jì)劃書
- 班主任與學(xué)科教師協(xié)作計(jì)劃
- 2025年鈷粉系列合作協(xié)議書
- 2025年中國頁巖氣行業(yè)市場現(xiàn)狀及投資態(tài)勢分析報(bào)告(智研咨詢)
- 2025年氣體摻混設(shè)備合作協(xié)議書
- 2025年動葉可調(diào)軸流電站用風(fēng)機(jī)項(xiàng)目發(fā)展計(jì)劃
- 人教三年級數(shù)學(xué)下冊表格式全冊
- QC課題提高檢查井周邊壓實(shí)
- 應(yīng)征公民體格檢查表(征兵)
- ACL磁致伸縮液位計(jì)說明書
- 優(yōu)秀教研組評比制度及實(shí)施細(xì)則
- 慈善祖師—太乙救苦天尊經(jīng)文選集拼音版
- 3建筑工程規(guī)劃放線、驗(yàn)線多測合一成果報(bào)告書
- JJF 1752-2019全自動封閉型發(fā)光免疫分析儀校準(zhǔn)規(guī)范(高清版)
- GB 1886.300-2018 食品安全國家標(biāo)準(zhǔn) 食品添加劑 離子交換樹脂(高清版)
- 尾礦庫安全技術(shù)規(guī)程釋義
- 如何寫數(shù)學(xué)新授課教學(xué)設(shè)計(jì)
評論
0/150
提交評論