




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目:一元多項(xiàng)式的加法減法乘法的實(shí)現(xiàn)姓 名:系:軟件工程系專 業(yè):軟件工程專業(yè)年 級(jí):2014學(xué) 號(hào):指導(dǎo)教師:黃思先職 稱:副教授完成起止日期:2016.6.5 - 2016.7.12016年07月1日福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院課程設(shè)計(jì)結(jié)果評(píng)定評(píng)價(jià)內(nèi)容評(píng)價(jià)指標(biāo)評(píng)分權(quán)值評(píng)定成績(jī)業(yè)務(wù)水平有扎實(shí)的基礎(chǔ)理論知識(shí)和課程知識(shí);能正確設(shè)計(jì)實(shí)驗(yàn)方案;獨(dú)立進(jìn)行實(shí)驗(yàn)工作;能運(yùn)用所學(xué)課程知識(shí)和技能去發(fā)現(xiàn)與解決實(shí)際問(wèn)題0.2設(shè)計(jì)質(zhì)量實(shí)驗(yàn)正確,分析處理科學(xué);設(shè)計(jì)結(jié)果有應(yīng)用價(jià)值;圖紙繪制符合國(guó)家標(biāo)準(zhǔn),質(zhì)量符合要求;計(jì)算及測(cè)試結(jié)
2、果準(zhǔn)確;工作中有創(chuàng)新意識(shí);對(duì)前人工作有改進(jìn)或突破,或有獨(dú)特見(jiàn)解; 0.4工作量、工作態(tài)度按期完成規(guī)定的任務(wù),工作量飽滿,難度較大;工作努力,遵守紀(jì)律;工作作風(fēng)嚴(yán)謹(jǐn)務(wù)實(shí)0.2報(bào)告質(zhì)量文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,書寫工整規(guī)范,圖表完備、整潔、正確;0.2合 計(jì)1.0指導(dǎo)教師簽字:評(píng)定日期:專心-專注-專業(yè)目錄一、 問(wèn)題分析和任務(wù)定義1二、 程序設(shè)計(jì)內(nèi)容1三、 程序調(diào)試與測(cè)試7四、 實(shí)驗(yàn)心得9五、 程序編碼9一、問(wèn)題分析及任務(wù)定義順序結(jié)構(gòu)、動(dòng)態(tài)鏈表結(jié)構(gòu)下的一元多項(xiàng)式的加法、減法、乘法的實(shí)現(xiàn)。 【問(wèn)題描述和基本要求】 設(shè)有一元多項(xiàng)式Am(x)和Bn(x). Am(x)=A0+A1x1+
3、A2x2+A3x3+ +Amxm Bn(x)=B0+B1x1+B2x2+B3x3+ +Bnxn 請(qǐng)實(shí)現(xiàn)求M(x)= Am(x)+Bn(x)、M(x)= Am(x)-Bn(x)和M(x)= Am(x)×Bn(x)。 要求: 1) 首先判定多項(xiàng)式是否稀疏2) 分別采用順序和動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn);3) 結(jié)果M(x)中無(wú)重復(fù)階項(xiàng)和無(wú)零系數(shù)項(xiàng);4) 要求輸出結(jié)果的升冪和降冪兩種排列情況二、課程設(shè)計(jì)的內(nèi)容2.1函數(shù)多項(xiàng)式創(chuàng)建函數(shù)PolyNode *Creatpoly()多項(xiàng)式輸出函數(shù)void Prin_poly(PolyNode *h)多項(xiàng)式升序排列函數(shù)void Insortup(PolyNode
4、*h)多項(xiàng)式降序排列函數(shù)void Insortdown(PolyNode *h)多項(xiàng)式合并函數(shù)void UnitePoly(PolyNode *h)多項(xiàng)式相乘函數(shù)PolyNode *polymuti(PolyNode *h1,PolyNode *h2)多項(xiàng)式相加函數(shù)PolyNode *addition(PolyNode *ha, PolyNode *hb)多項(xiàng)式相減函數(shù)PolyNode *subduction (PolyNode *ha, PolyNode *hb)2.2設(shè)計(jì)各個(gè)模塊的流程圖(1) main()開始定義*h1,*h2,*h創(chuàng)建多項(xiàng)式A輸出文字合并同類項(xiàng)排序輸出多項(xiàng)式A創(chuàng)建多項(xiàng)式
5、B輸出文字 合并同類項(xiàng)排序輸出多項(xiàng)式BadditionYa=1NYsubductiona=2NYa=3polymuti結(jié)束(2) void Insortup(PolyNode *h)開始p=h>next結(jié)束NP!=NULLYp=h>nexts=h>nextNs=s>nexts>exp與s>next>exp互換s>coef與s>nextcoef互換Ys>next!=NULLs>exp>s>nextexpYN(3)void Insortdown(PolyNode *h)開始p=h>next結(jié)束NP!=NULLYp=
6、h>nexts=h>nextNs=s>nexts>exp與s>next>exp互換s>coef與s>nextcoef互換Ys>next!=NULLs>exp>s>nextexpYN(4) PolyNode *polymuti(PolyNode *h1,PolyNode *h2)(5)void UnitePoly(PolyNode *h) (6) PolyNode *addition(PolyNode *ha, PolyNode *hb)開始 三、程序調(diào)試與測(cè)試 相加結(jié)果相減結(jié)果相乘結(jié)果四、 實(shí)驗(yàn)心得在本次課程設(shè)計(jì)中,我明白
7、了理論應(yīng)與實(shí)際相結(jié)合,上機(jī)練習(xí)是提高編程能力最有效的辦法,這次實(shí)驗(yàn)提高了我編寫大型程序的能力以及查閱資料并從中獲得有效資料的能力。這次課程設(shè)計(jì)加深了我對(duì)數(shù)據(jù)結(jié)構(gòu)的進(jìn)一步理解。五、程序編碼實(shí)驗(yàn)程序:#include<stdio.h>#include <stdlib.h>#include <conio.h>typedef struct Nodeint coef;/系數(shù)int exp;/指數(shù)struct Node *next;PolyNode;PolyNode *Creatpoly()/創(chuàng)建多項(xiàng)式的單鏈表PolyNode *h,*p,*q;h=(PolyNode
8、*)malloc(sizeof(PolyNode);p=h;p->next=NULL;printf("請(qǐng)輸入多項(xiàng)式的系數(shù)及其指數(shù)a b,當(dāng)系數(shù)輸入0時(shí)停止輸入n");q=(PolyNode *)malloc(sizeof(PolyNode);scanf("%d %d",&q->coef,&q->exp);while(q->coef!=0)p->next=q;p=q;q=(PolyNode *)malloc(sizeof(PolyNode);scanf("%d %d",&q->
9、coef,&q->exp);p->next=NULL;return(h);void Prin_poly(PolyNode *h)/將多項(xiàng)式輸出函數(shù)PolyNode *p;p=h->next;while(p!=NULL)if(p->coef>0&&p!=h->next)if(p->exp>0)printf("+%dx%d",p->coef,p->exp);else if(p->exp<0)printf("+%dx(%d)",p->coef,p->ex
10、p);elseprintf("+%d",p->coef);else if(p->coef<0&&p!=h->next)if(p->exp>0)printf("%dx%d",p->coef,p->exp);else if(p->exp<0)printf("%dx(%d)",p->coef,p->exp);elseprintf("%d",p->coef);else if(p->exp>0)printf("
11、%dx%d",p->coef,p->exp);else if(p->exp<0)printf("%dx(%d)",p->coef,p->exp);else printf("%d",p->coef);p=p->next;void Insortup(PolyNode *h)/排序函數(shù),使多項(xiàng)式中的各項(xiàng)按X的升冪排列PolyNode *s,*p;int t,m;for(p=h->next;p!=NULL;p=p->next)/類似于冒泡排序for(s=h->next;s->nex
12、t!=NULL;s=s->next)if(s->exp>s->next->exp)t=s->exp;m=s->coef;s->coef=s->next->coef;s->exp=s->next->exp;s->next->coef=m;s->next->exp=t;void Insortdown(PolyNode *h)/排序函數(shù),使多項(xiàng)式中的各項(xiàng)按X的降冪排列PolyNode *s,*p;int t,m;for(p=h->next;p!=NULL;p=p->next)/類似于冒泡
13、排序for(s=h->next;s->next!=NULL;s=s->next)if(s->exp<s->next->exp)t=s->exp;m=s->coef;s->coef=s->next->coef;s->exp=s->next->exp;s->next->coef=m;s->next->exp=t;void UnitePoly(PolyNode *h)/合并同類項(xiàng)PolyNode *p1,*p2,*q1,*q2,*temp;q1=h;p1=q1->next;whil
14、e(p1!=NULL)p2=p1->next;q2=p1;while(p2!=NULL)if(p1->exp=p2->exp)p1->coef=p1->coef+p2->coef;if(p1->coef=0)temp=p2;q2->next=p2->next;free(temp);temp=p1;q1->next=p1->next;p1=q1;free(temp);break;elsetemp=p2;q2->next=p2->next;p2=p2->next;free(temp);elseq2=p2;p2=p2
15、->next;q1=p1;p1=p1->next;PolyNode *polymuti(PolyNode *h1,PolyNode *h2)/多項(xiàng)式相乘PolyNode *h,*p,*p1,*p2,*q;p1=h1->next;h=p=(PolyNode *)malloc(sizeof(PolyNode);p->next=NULL;while(p1)p2=h2->next;while(p2)q=(PolyNode *)malloc(sizeof(PolyNode);q->coef=p1->coef*p2->coef;q->exp=p1-&g
16、t;exp+p2->exp;p->next=q;p=q;p2=p2->next;p1=p1->next;p->next=NULL;return(h);PolyNode *addition(PolyNode *ha, PolyNode *hb)/一元多項(xiàng)式相加函數(shù),用于將兩個(gè)多項(xiàng)式相加,然后將和多項(xiàng)式存放在多項(xiàng)式ha中,并將多項(xiàng)式hb刪除 PolyNode *p,*q,*pre,*temp; int sum; p=ha->next; q=hb->next; pre=ha; while(p!=NULL&&q!=NULL) if(p->
17、exp<q->exp) pre->next=p; pre=pre->next; p=p->next; else if(p->exp=q->exp) sum=p->coef+q->coef; if(sum!=0) p->coef=sum; pre->next=p;pre=pre->next;p=p->next; temp=q;q=q->next;free(temp); else /如果系數(shù)和為零,則刪除結(jié)點(diǎn)p與q,并將指針指向下一個(gè)結(jié)點(diǎn) temp=p->next;free(p);p=temp; temp=q
18、->next;free(q);q=temp; else pre->next=q; pre=pre->next; q=q->next; if(p!=NULL) /將多項(xiàng)式A中剩余的結(jié)點(diǎn)加入到和多項(xiàng)式中 pre->next=p; else pre->next=q; return ha;PolyNode *subduction(PolyNode *ha, PolyNode *hb)/一元多項(xiàng)式相減函數(shù),用于將兩個(gè)多項(xiàng)式相減,然后將差多項(xiàng)式存放在多項(xiàng)式ha中,并將多項(xiàng)式hb刪除 PolyNode *p,*q,*pre,*temp; int sum; p=ha->
19、;next; q=hb->next; pre=ha; while(p!=NULL&&q!=NULL) if(p->exp<q->exp) pre->next=p; pre=pre->next; p=p->next; else if(p->exp=q->exp) sum=p->coef-q->coef; if(sum!=0) p->coef=sum; pre->next=p;pre=pre->next;p=p->next; temp=q;q=q->next;free(temp); el
20、se /如果系數(shù)和為零,則刪除結(jié)點(diǎn)p與q,并將指針指向下一個(gè)結(jié)點(diǎn) temp=p->next;free(p);p=temp; temp=q->next;free(q);q=temp; else pre->next=q; pre=pre->next; q=q->next; if(p!=NULL) /將多項(xiàng)式A中剩余的結(jié)點(diǎn)加入到和多項(xiàng)式中 pre->next=p; else pre->next=q; return ha;main() int a=-1;PolyNode *h1,*h2,*h;h1=Creatpoly();printf("該多項(xiàng)式為P
21、1(x)=");UnitePoly(h1);Insortup(h1);Prin_poly(h1);printf("n");h2=Creatpoly();printf("該多項(xiàng)式為P2(x)=");UnitePoly(h2);Insortup(h2);Prin_poly(h2);printf("n");printf("輸入1查看兩多項(xiàng)式相加結(jié)果n輸入2查看兩多項(xiàng)式相減結(jié)果n輸入3查看兩多項(xiàng)式相乘結(jié)果n");scanf("%d",&a);if(a=1)printf("相加后的多項(xiàng)式n&qu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 獸醫(yī)病理解剖學(xué)練習(xí)題庫(kù)+參考答案解析
- 工程測(cè)量員中級(jí)習(xí)題及答案(附解析)
- 2025年2月高壓電工(運(yùn)行)模擬習(xí)題(附答案解析)
- 2024年2月生命科學(xué)模擬練習(xí)題(含答案解析)
- 貨代企業(yè)品牌建設(shè)與市場(chǎng)推廣考核試卷
- 一年級(jí)下數(shù)學(xué)課件-統(tǒng)計(jì)-人教
- 糖果品牌形象代言人選擇與效果評(píng)估考核試卷
- 液體閃爍計(jì)數(shù)試劑的制備與應(yīng)用考核試卷
- 海水淡化處理技術(shù)在城市建設(shè)中的應(yīng)用考核試卷
- 大班組教育教學(xué)學(xué)期末總結(jié)
- 基于深度學(xué)習(xí)的西北地區(qū)沙塵天氣級(jí)聯(lián)預(yù)測(cè)模型研究
- 《危險(xiǎn)化學(xué)品企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化規(guī)范》專業(yè)深度解讀與應(yīng)用培訓(xùn)指導(dǎo)材料之2:5管理要求-5.1 安全領(lǐng)導(dǎo)力(雷澤佳編制-2025A0)
- 《醫(yī)療素養(yǎng)提升》課件
- 2025年人教版(2024)小學(xué)數(shù)學(xué)一年級(jí)下冊(cè)期中考試測(cè)試卷附參考答案
- 血液透析患者預(yù)防跌倒
- 餡料間管理制度
- 智能座艙試題答案及解析
- 2024年度云南省二級(jí)造價(jià)工程師之安裝工程建設(shè)工程計(jì)量與計(jì)價(jià)實(shí)務(wù)強(qiáng)化訓(xùn)練試卷B卷附答案
- 統(tǒng)編版二年級(jí)語(yǔ)文下冊(cè)第五單元自測(cè)卷(含答案)
- 電力工程項(xiàng)目管理試題及答案
- 車位租賃協(xié)議書范本
評(píng)論
0/150
提交評(píng)論