![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告一元稀疏多項(xiàng)式計(jì)算器_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/20/85ec479c-6844-4ce1-bf9a-7afff3880aaa/85ec479c-6844-4ce1-bf9a-7afff3880aaa1.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告一元稀疏多項(xiàng)式計(jì)算器_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/20/85ec479c-6844-4ce1-bf9a-7afff3880aaa/85ec479c-6844-4ce1-bf9a-7afff3880aaa2.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告一元稀疏多項(xiàng)式計(jì)算器_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/20/85ec479c-6844-4ce1-bf9a-7afff3880aaa/85ec479c-6844-4ce1-bf9a-7afff3880aaa3.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告一元稀疏多項(xiàng)式計(jì)算器_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/20/85ec479c-6844-4ce1-bf9a-7afff3880aaa/85ec479c-6844-4ce1-bf9a-7afff3880aaa4.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告一元稀疏多項(xiàng)式計(jì)算器_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/20/85ec479c-6844-4ce1-bf9a-7afff3880aaa/85ec479c-6844-4ce1-bf9a-7afff3880aaa5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)報(bào)告1. 需求分析【問題描述】設(shè)計(jì)一個(gè)一元稀疏多項(xiàng)式簡單計(jì)算器.【基本要求】一元稀疏多項(xiàng)式基本功能包括:1) 輸入并建立多項(xiàng)式;2) 輸出多項(xiàng)式, 輸出形式為整數(shù)序列: n, c1, e1 , c2, e2, , cn, en,其中 n 是多項(xiàng)式的項(xiàng)數(shù), ci 和 ei 分別是第 i 項(xiàng)的系數(shù)和指數(shù),序列按指數(shù)降序排列;3)多項(xiàng)式 a 和 b 相加,建立多項(xiàng)式a+b;4)多項(xiàng)式 a 和 b 相減,建立多項(xiàng)式a-b;【測(cè)試數(shù)據(jù)】1) (2x+5x 8-3.1x 11)+(11x 9-5x8+7)=(-3.1x 11+11x8+2x+7)9-32152-3159-32)(-1.2x +6x
2、+4.4x -x)-(7.8x+4.4x -6x )=(-7.8x-1.2x +12x -x)3) (x5+x 4+x3 +x2+x+1)-(-x 4-x3)=(x 5+x 2+x+1)4) (x3+x)-(-x 3-x)=01002001002001005) (x +x)+(x+x)=(x+2x+x)6) (x3+x 2+x)+0=x 3+x 2+x7) 互換上述測(cè)試數(shù)據(jù)中的前后兩個(gè)多項(xiàng)式.2. 概要設(shè)計(jì)ADT Polynomial數(shù)據(jù)對(duì)象 : D=a i|ai TermSet, i=1,2, ,m,m 0,TermSet 中的每個(gè)元素包含一個(gè)表示系數(shù)的實(shí)數(shù)和表示指數(shù)的整數(shù)數(shù)據(jù)對(duì)象 : R1
3、=<a i,ai-1 >|ai,ai-1 D,且 ai-1中的指數(shù)值小于 ai 中的指數(shù) ,i=2, ,m基本操作:CreatePolyn(void)Result: 指數(shù)由大到小輸入 m 項(xiàng)的系數(shù)和指數(shù) ,建立一元多項(xiàng)式pPrintPoly(LNode Head)Result: 輸出一元多項(xiàng)式AddPoly(LNode H1,LNode H2)Condition: 一元多項(xiàng)式 pa,pb 已存在Result: 完成多項(xiàng)式相加運(yùn)算 ,即 pa=pa+pb,并銷毀一元多項(xiàng)式pb.SubtractPoly(LNode H1,LNode H2)Condition: 一元多項(xiàng)式 pa,pb
4、已存在Result: 完成多項(xiàng)式相減運(yùn)算 ,即 pa=pa-pb,并銷毀一元多項(xiàng)式pb.ADT Polynomial3. 詳細(xì)設(shè)計(jì)【數(shù)據(jù)類型定義】typedef struct nodeint expn,coef;struct node *next;Nodetype,*LNode;/定義結(jié)點(diǎn)類型【函數(shù)原型定義】LNode CreatePolyn(void);Void PrintPoly(LNode Head);LNode AddPolyn(LNode H1,LNode H2);LNode SubPolyn(LNode H1,LNode H2);【核心算法描述】CreatePolyn()LNode
5、 CreatePolyn(void)/ 創(chuàng)建表達(dá)式LNode Head,p,pre,pree;int x,z;Head=(LNode)malloc(sizeof(Nodetype);Head->next=NULL;printf(" 當(dāng)你輸入的系數(shù)為0 時(shí),輸入將結(jié)束!n");printf(" 請(qǐng)輸入第一項(xiàng)系數(shù):");scanf("%d",&x);if(x=0)p=(LNode)malloc(sizeof(LNode);p->coef=0;p->expn=0;Head->next=p;p->next
6、=NULL;while(x!=0)printf(" 請(qǐng)輸入指數(shù) :");scanf("%d",&z);p=(LNode)malloc(sizeof(Nodetype);p->coef=x;p->expn=z;pre=Head;while(pre->next&&pre->next->expn>=z)/原有項(xiàng)指數(shù)大于插入項(xiàng)pree=pre;pre=pre->next;p->next=pre->next;/ 插入項(xiàng)pre->next=p;if(pre->expn=p-&g
7、t;expn)/ 原有項(xiàng)指數(shù)等于插入項(xiàng)pre->coef+=p->coef;pre->next=p->next;free(p);if(pre->coef=0)/ 系數(shù)為 0pree->next=pre->next;free(pre);printf(" 請(qǐng)輸入系數(shù) :");scanf("%d",&x);if(Head->next=NULL)/多項(xiàng)式空pre=(LNode)malloc(sizeof(LNode);pre->coef=0;pre->expn=0;pre->next=He
8、ad->next;Head->next=pre;return Head;PrintPolyn()void PrintPolyn(LNode Head)/ 輸出表達(dá)式LNode pre;pre=Head->next;if(pre->expn=0)/ 指數(shù)為printf("%d",pre->coef);0elseprintf("%d*X(%d)",pre->coef,pre->expn);pre=pre->next;while(pre)/ 系數(shù)不為0if(pre->expn=0)/ 指數(shù)為 0if(pre
9、->coef>0)printf("+%d",pre->coef);else if(pre->coef<0)printf("%d",pre->coef);else/指數(shù)不為0if(pre->coef>0)printf("+%d*X(%d)",pre->coef,pre->expn);else if(pre->coef<0)printf("%d*X(%d)",pre->coef,pre->expn);pre=pre->next;/
10、 遍歷每一項(xiàng)printf("n");AddPolyn()LNode AddPolyn(LNode H1,LNode H2)/ 表達(dá)式相加LNode H3,p1,p2,p3,pre;/p1第一個(gè)多項(xiàng)式的項(xiàng),prep 的前一項(xiàng)H3=(LNode)malloc(sizeof(LNode);H3->next=NULL;/ 建立一個(gè)空的多項(xiàng)式p1=H1->next;/第一個(gè)多項(xiàng)式的第一項(xiàng)p2=H2->next;pre=H3;/while(p1&&p2)if(p1->expn>p2->expn)/ 第一個(gè)多項(xiàng)式的項(xiàng)的指數(shù)大于第二個(gè)的p
11、3=(LNode)malloc(sizeof(LNode);p3->expn=p1->expn;p3->coef=p1->coef;p3->next=pre->next;pre->next=p3;pre=p3;p1=p1->next;else if(p1->expn<p2->expn)/ 第一個(gè)多項(xiàng)式的項(xiàng)的指數(shù)小于第二個(gè)的p3=(LNode)malloc(sizeof(LNode);p3->expn=p2->expn;p3->coef=p2->coef;p3->next=pre->next;p
12、re->next=p3;pre=p3;p2=p2->next;else if(p1->coef+p2->coef!=0)/相加為不 0,指數(shù)相同系數(shù)相加p3=(LNode)malloc(sizeof(LNode);p3->expn=p1->expn;p3->coef=p1->coef+p2->coef;p3->next=pre->next;pre->next=p3;pre=p3;p1=p1->next;p2=p2->next;else/相加為 0p1=p1->next;p2=p2->next;whi
13、le(p2)p3=(LNode)malloc(sizeof(LNode);p3->expn=p2->expn;p3->coef=p2->coef;p3->next=pre->next;pre->next=p3;pre=p3;p2=p2->next;while(p1)p3=(LNode)malloc(sizeof(LNode);p3->expn=p1->expn;p3->coef=p1->coef;p3->next=pre->next;pre->next=p3;pre=p3;p1=p1->next;r
14、eturn H3;Substract()LNode SubstractPolyn(LNode H1,LNode H2)/ 表達(dá)式相減/ 讓系數(shù)變負(fù),代入加法LNode H3,pre;pre=H2->next;while(pre)pre->coef=-pre->coef;pre=pre->next;H3=AddPolyn(H1,H2);pre=H2->next;while(pre)pre->coef=-pre->coef;pre=pre->next;return H3;【函數(shù)調(diào)用關(guān)系】main()調(diào)用 CreatePoly(),PrintPoly(),AddPoly(),scanf()函數(shù)輸入, printf()函數(shù)輸出。4. 運(yùn)行記錄5. 總結(jié)首次做課程設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年5G網(wǎng)絡(luò)通信設(shè)備采購合同標(biāo)準(zhǔn)
- 2025年醋酸乙烯酯項(xiàng)目建議書
- 2025年摻混肥項(xiàng)目合作計(jì)劃書
- 2025年本地網(wǎng)傳輸系統(tǒng)項(xiàng)目合作計(jì)劃書
- 強(qiáng)化法治教育促進(jìn)遵紀(jì)守法計(jì)劃
- 學(xué)習(xí)困難學(xué)生支持方案計(jì)劃
- 水庫管理與調(diào)度方案計(jì)劃
- 選擇合適的理財(cái)工具計(jì)劃
- 2025年金屬門窗及類似制品項(xiàng)目發(fā)展計(jì)劃
- 2025年中國顯控系統(tǒng)行業(yè)供需態(tài)勢(shì)、競(jìng)爭格局及投資前景分析報(bào)告(智研咨詢)
- DL∕T 5810-2020 電化學(xué)儲(chǔ)能電站接入電網(wǎng)設(shè)計(jì)規(guī)范
- ISO9001、ISO14001和ISO45001質(zhì)量環(huán)境及職業(yè)健康安全三個(gè)體系的對(duì)比
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)基礎(chǔ)教程(高校創(chuàng)新創(chuàng)業(yè)教育課程)全套教學(xué)課件
- 2024年內(nèi)蒙古交通職業(yè)技術(shù)學(xué)院單招職業(yè)技能測(cè)試題庫完整
- 天津和平區(qū)2024屆高三一模數(shù)學(xué)試題(解析版)
- 人教版高中物理必修二同步練習(xí)及答案
- 《行政倫理學(xué)教程(第四版)》課件 第7、8章?行政人格、行政組織倫理
- 2024年江蘇蘇??毓杉瘓F(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 工商聯(lián)業(yè)務(wù)工作培訓(xùn)
- 商業(yè)街消防安全培訓(xùn)
- 湖北省曾都區(qū)烏鴉山礦區(qū)建筑用輝綠巖礦礦產(chǎn)資源開發(fā)利用與生態(tài)復(fù)綠方案
評(píng)論
0/150
提交評(píng)論