《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報(bào)告一元稀疏多項(xiàng)式計(jì)算器

上傳人:仙*** 文檔編號(hào):29864904 上傳時(shí)間:2021-10-08 格式:DOC 頁(yè)數(shù):15 大小:105.02KB
收藏 版權(quán)申訴 舉報(bào) 下載
《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報(bào)告一元稀疏多項(xiàng)式計(jì)算器_第1頁(yè)
第1頁(yè) / 共15頁(yè)
《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報(bào)告一元稀疏多項(xiàng)式計(jì)算器_第2頁(yè)
第2頁(yè) / 共15頁(yè)
《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報(bào)告一元稀疏多項(xiàng)式計(jì)算器_第3頁(yè)
第3頁(yè) / 共15頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報(bào)告一元稀疏多項(xiàng)式計(jì)算器》由會(huì)員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報(bào)告一元稀疏多項(xiàng)式計(jì)算器(15頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報(bào)告 一元稀疏多項(xiàng)式計(jì)算器 班級(jí): 軟件1408 學(xué)號(hào):1130505140831 姓名: 齊瑞征 指導(dǎo)老師: 石鋒 [問(wèn)題描述] 設(shè)計(jì)簡(jiǎn)單的一個(gè)一元稀疏多項(xiàng)式計(jì)算器。 [基本要求] 一元稀疏多項(xiàng)式簡(jiǎn)單計(jì)算器的基本功能是: (1) 輸入并建立多項(xiàng)式,以帶頭結(jié)點(diǎn)的單鏈表存儲(chǔ); (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

2、) 多項(xiàng)式a和b相加,建立多項(xiàng)式a+b; (4) 多項(xiàng)式a和b相減,建立多項(xiàng)式a-b; (5) 多項(xiàng)式a和b相乘,建立多項(xiàng)式a*b; [數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)] 在模擬多項(xiàng)式時(shí),為了簡(jiǎn)化處理,只取最核心的兩個(gè)數(shù)據(jù):多項(xiàng)式的系數(shù)和指數(shù),具體數(shù)據(jù)結(jié)構(gòu)定義如下: typedef struct node{ int xs; /*系數(shù)*/ int zs; /*指數(shù)*/ struct node * next; /*next指針*/ }Dnode,* Dnodelist; [功能函數(shù)設(shè)計(jì)] (1)鏈表初始化函數(shù)Creat_node(

3、) (2)多項(xiàng)式數(shù)據(jù)的輸入函數(shù)input() (3)數(shù)據(jù)的插入函數(shù)Insert_node() (4)多項(xiàng)式的顯示函數(shù)output() (6)多項(xiàng)式的運(yùn)算函數(shù):新建鏈表存儲(chǔ)計(jì)算后的多項(xiàng)式 多項(xiàng)式相乘Mulresult() 多項(xiàng)式相加Addresult() 多項(xiàng)式相減Subresult() (7)主函數(shù)main() 創(chuàng)建兩個(gè)多項(xiàng)式的鏈表并且初始化,分別調(diào)用相應(yīng)的多項(xiàng)式創(chuàng)建函數(shù),創(chuàng)建成功后選擇運(yùn)算方式,再將運(yùn)算結(jié)果輸出顯示。 【實(shí)現(xiàn)過(guò)程】 1、在D:根目錄下建立文件夾,命名方式為“班級(jí)”+“順序號(hào)(兩位)+“姓名”,例如你是商務(wù)1419班的,你在學(xué)生花名

4、冊(cè)上的順序號(hào)是05號(hào),你的姓名是張有才,則文件夾的名 字是“商務(wù)141905張有才”。這個(gè)文件夾就是你的工作文件夾。 2、 在VC中創(chuàng)建c++源程序,命名為“poly.c”,保存在工作文件夾中; 3、在poly.c中輸入以下內(nèi)容并編譯,使沒(méi)有語(yǔ)法錯(cuò)誤: #include #include typedef struct node{ int xs; int zs; struct node * next; }Dnode,* Dnodelist; /*定義結(jié)構(gòu)體*/ Dnod

5、elist Creat_node(void) /*鏈表初始化*/ { Dnodelist D; D=(Dnodelist)malloc(sizeof(Dnode)); if(D) D->next=NULL; return D; } 4、回答問(wèn)題,以上程序中,Creat_node(void)函數(shù)的功能是什么? 答:創(chuàng)建鏈表里面的一個(gè)節(jié)點(diǎn)。 5、在poly.c中完成如下函數(shù),并編譯。 int Insert_node(Dnodelist D,int xs,int zs) /*插入函數(shù)*/ { Dnod

6、elist p; Dnodelist q; Dnodelist r; p=D; while(p->next) { r=p; p=p->next; if(zs==p->zs) { p->xs=p->xs+xs; return 1; } else if(zs>p->zs) { q=Creat_node(); q->xs=xs; q->zs=zs; r->next=q; q->next=p;

7、return 1; } }/*while(p->next)*/ q=Creat_node(); q->xs=xs; q->zs=zs; q->next=p->next; p->next=q; return 1; free(p); free(q); free(r); } 函數(shù)功能:將一項(xiàng)合并到多項(xiàng)式中。 參數(shù)說(shuō)明: D:一個(gè)帶頭結(jié)點(diǎn)的單鏈表的頭指針,其中按指數(shù)降序存放一個(gè)一元多項(xiàng)式的數(shù)據(jù); xs:要合并的項(xiàng)的系數(shù); zs:要合并的項(xiàng)的指數(shù)。 6、在poly.c中完成如下函數(shù),并編譯。 void outpu

8、t(Dnodelist D){ Dnodelist r; r=D->next; printf("%dx^%d",r->xs,r->zs); r=r->next; while(r!=NULL) { if(r->xs>0) printf("+%dx^%d",r->xs,r->zs); else printf("%dx^%d",r->xs,r->zs); r=r->next; } printf("\n"); } 函數(shù)功能:以類(lèi)似“-3*x^100+2*x^10-10”的形式輸出D中存放的多項(xiàng)式數(shù)據(jù)。 7、在poly.c中輸入以下函數(shù)

9、,并編譯。 Dnodelist input(void){ Dnodelist D; int xs, zs; D = Creat_node(); printf("請(qǐng)輸入系數(shù)和指數(shù)(系數(shù),指數(shù)):"); scanf("%d,%d", &xs, &zs); while(xs!=0 && zs!=0){ Insert_node(D, xs, zs); printf("請(qǐng)輸入系數(shù)和指數(shù)(系數(shù),指數(shù)):"); scanf("%d,%d", &xs, &zs); } return D; } 你認(rèn)為以上函數(shù)的功能是什么? 答

10、:從鍵盤(pán)輸入系數(shù)和指數(shù)存放在鏈表中。 8、在poly.c中輸入以下main()函數(shù),并編譯。 void main(void){ Dnodelist D; D = input(); output(D); } 9、運(yùn)行你的程序,輸入以下數(shù)據(jù): -3,100 2,10 -10,1 0,0 將你的程序的運(yùn)行結(jié)果的界面粘貼在下面: 10、在poly.c中完成以下函數(shù),其功能是計(jì)算D1和D2中兩個(gè)多項(xiàng)式的和,函數(shù)返回和多項(xiàng)式。 Dnodelist Addresult(Dnodelist D1,Dnodelist D2) { Dnodelist

11、 D; Dnodelist p,q; int x,z; D=Creat_node(); p=D1->next; q=D2->next; while(q) { x=q->xs; z=q->zs; Insert_node(D,x,z); q=q->next; } while(p) { x=p->xs; z=p->zs; Insert_node(D,x,z); p=p->next; } return D; } 11、在poly.c中完成以下兩個(gè)函數(shù),其功能分別是是計(jì)算兩個(gè)多項(xiàng)式的差

12、和乘積。 Dnodelist Subresult(Dnodelist D1, Dnodelist D2){ Dnodelist D; Dnodelist p,q; int x,z; D=Creat_node(); p=D1->next; q=D2->next; while(p&&q) { if((p->zs)<(q->zs)) { x=-(q->xs); z=q->zs; Insert_node(D,x,z); q=q->next; } else if((p->zs)>(q->

13、zs)) { x=p->xs; z=p->zs; Insert_node(D,x,z); p=p->next; } else { z=q->zs; x=(p->xs)-(q->xs); Insert_node(D,x,z); p=p->next; q=q->next; } } while(p) { x=p->xs; z=p->zs; Insert_node(D,x,z); p=p->next; } whi

14、le(q) { x=-(q->zs); z=q->zs; Insert_node(D,x,z); q=q->next; } return D; } Dnodelist Mulresult(Dnodelist D1, Dnodelist D2){ Dnodelist D; Dnodelist p,q; int x,z; D=Creat_node(); p=D1->next; q=D2->next; while(q) { while(p) {

15、 x=p->xs*q->xs; /*系數(shù)相乘,指數(shù)相加*/ z=p->zs+q->zs; Insert_node(D,x,z); p=p->next; } p=D1->next; q=q->next; } return D; } 12、 編寫(xiě)main函數(shù),功能輸入兩個(gè)多項(xiàng)式的數(shù)據(jù),計(jì)算并輸出和、差、積多項(xiàng)式,把程序運(yùn)行結(jié)果的界面粘貼在下面。 [收獲和建議] 1、通過(guò)本次課程設(shè)計(jì),你都有哪些收獲,請(qǐng)寫(xiě)在下面。 通過(guò)這次課程設(shè)計(jì),我感覺(jué)到要真正做出一個(gè)程序并不很容易,但只要用心去做,總會(huì)有收獲,特別是當(dāng)我遇

16、到問(wèn)題,查資料,問(wèn)同學(xué),想盡辦法去解決,最后終于找到方法時(shí),心里的那份喜悅之情真是難以形容.編寫(xiě)程序中遇到問(wèn)題再所難免,應(yīng)耐心探究其中的原因,從出現(xiàn)問(wèn)題的地方起,并聯(lián)系前后程序,仔細(xì)推敲,逐個(gè)排查.直到最終搞清為止。 “享受制作過(guò)程 追求更加完美”是我對(duì)實(shí)訓(xùn)的總結(jié)。 2、 你對(duì)這門(mén)課程教學(xué)內(nèi)容和方法有什么好的建議,請(qǐng)寫(xiě)在下面。 通過(guò)這次課程設(shè)計(jì)我覺(jué)得我們學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》的方法存在一定的弊端,《數(shù)據(jù)結(jié)構(gòu)》的效果直接影響到我們對(duì)其它專(zhuān)業(yè)課的學(xué)習(xí)和今后業(yè)務(wù)的成長(zhǎng)。我覺(jué)得我們對(duì)于《數(shù)據(jù)結(jié)構(gòu)》的學(xué)習(xí)不僅包括理論部分的學(xué)習(xí),還要讓我們勤動(dòng)手,多實(shí)踐?!≌麄€(gè)實(shí)驗(yàn)過(guò)程要結(jié)合教學(xué)進(jìn)度與我們的實(shí)際情況,制定實(shí)驗(yàn)的內(nèi)容。實(shí)驗(yàn)分兩部分,一是驗(yàn)證性的,主要結(jié)合課堂理論教學(xué)內(nèi)容展開(kāi),學(xué)生可以對(duì)在課堂上學(xué)到的基本算法進(jìn)行驗(yàn)證;二是設(shè)計(jì)性實(shí)驗(yàn),堅(jiān)持“學(xué)以致用”的原則,目的是讓學(xué)生充分利用所學(xué)的理論知識(shí)進(jìn)行相對(duì)復(fù)雜的應(yīng)用設(shè)計(jì),以進(jìn)一步提高綜合能力和創(chuàng)新實(shí)踐能力。而在傳統(tǒng)的課堂教學(xué)中,一般采用的是“教師――黑板——學(xué)生”的教學(xué)模式,這對(duì)大多數(shù)教師和學(xué)生來(lái)說(shuō),“教”和“學(xué)”很難在課堂中得到良好的協(xié)調(diào),因而也就難以對(duì)教學(xué)內(nèi)容進(jìn)行及時(shí)而有效地消化,“聽(tīng)懂但不會(huì)做”是大部分學(xué)生的通病,從而使教學(xué)效果受到影響。所以我希望以后的數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)能夠注重實(shí)驗(yàn)上機(jī).

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!