數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多項(xiàng)式問(wèn)題_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多項(xiàng)式問(wèn)題_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多項(xiàng)式問(wèn)題_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多項(xiàng)式問(wèn)題_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多項(xiàng)式問(wèn)題_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)課程設(shè)計(jì)題目: 多 項(xiàng) 式 問(wèn) 題 目 錄一、問(wèn)題描述-3二、需求分析-4三、概要設(shè)計(jì)-41.概要設(shè)計(jì)目的與要求-42.概要設(shè)計(jì)內(nèi)容-43.功能算法描述與數(shù)據(jù)結(jié)構(gòu)說(shuō)明-5四、詳細(xì)設(shè)計(jì)-5五、系統(tǒng)測(cè)試-8六、使用說(shuō)明-9七、總結(jié)及心得體會(huì) -10多項(xiàng)式問(wèn)題一問(wèn)題描述 給你九個(gè)整數(shù),這九個(gè)整數(shù)分別是x的8次方至0次方的系數(shù),請(qǐng)你按照多項(xiàng)式的一半形式合理地構(gòu)造(去除不必要的)。例如九個(gè)系數(shù)分別是為0,0,0,1,22,-333,0,1,-1,你要構(gòu)造并輸出一行多項(xiàng)式:x5 + 22x4 333x3 + x 1。它的格式規(guī)則如下:1.多項(xiàng)式的項(xiàng)必須按其指數(shù)從高到低排列。2.指數(shù)必須跟

2、在符號(hào)“”后顯示。3.有常數(shù)的只顯示常數(shù)項(xiàng)(無(wú)需跟x0)。4.只顯示系數(shù)不為0的項(xiàng);若系數(shù)全為0,需顯示常數(shù)項(xiàng)。5.在多項(xiàng)式中唯一需要空格的地方是項(xiàng)與項(xiàng)之間的加號(hào)或減號(hào)的兩邊需加上空格。6.如果首項(xiàng)的系數(shù)是正數(shù),則系數(shù)前不加符號(hào);如果首項(xiàng)的系數(shù)是負(fù)數(shù),則符號(hào)與數(shù)字之間不加空格,就如:-3x2 + -2x。7.系數(shù)為1,指數(shù)為0時(shí),系數(shù)的1才顯示(推廣到系數(shù)為-1)。輸入/輸出說(shuō)明1.輸入/輸出方式為文件方式,輸入文件有一行或多行的系數(shù),系數(shù)之間有空格分隔。2.每行共有九個(gè)系數(shù),每個(gè)系數(shù)的絕對(duì)值為小于1000的整數(shù)。輸出文件包含構(gòu)造完地多項(xiàng)式,每行一個(gè)多項(xiàng)式。輸入范例0 0 0 1 22 -33

3、3 0 1 -10 0 0 0 0 0 -55 5 0輸出范例x5 + 22x4 333x3 + x 1-55x2 + 5x二需求分析2.1可行性研究該程序主要從技術(shù)的角度來(lái)分析可行性。技術(shù)上的可行性研究主要分析技術(shù)條件能否順利完成開(kāi)發(fā)工作,硬、軟件能否滿(mǎn)足開(kāi)發(fā)者的需要等。該系統(tǒng)采用了windows 7操作系統(tǒng)結(jié)合visual c+ 6.0等軟件開(kāi)發(fā)平臺(tái)已成熟可行。硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來(lái)越快,容量越來(lái)越大,可靠性越來(lái)越高,其硬件平臺(tái)也比較能滿(mǎn)足此系統(tǒng)的需要。2.2結(jié)構(gòu)與主要功能模塊從實(shí)現(xiàn)多項(xiàng)式輸出過(guò)程的角度來(lái)分析,至少需要這樣一些子功能模塊。如:1. 多項(xiàng)式創(chuàng)建功能;

4、2. 多項(xiàng)式輸出功能;3. 釋放多項(xiàng)式功能;4. 操作界面顯示功能;三概要設(shè)計(jì)1.概要設(shè)計(jì)目的與要求通過(guò)多項(xiàng)式程序設(shè)計(jì),使我們進(jìn)一步掌握和利用c+語(yǔ)言進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì)的能力;進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程設(shè)計(jì)的思想和方法;初步掌握開(kāi)發(fā)一個(gè)小型系統(tǒng)程序設(shè)計(jì)的基本方法;學(xué)會(huì)調(diào)試一個(gè)較長(zhǎng)程序的基本方法;以及掌握書(shū)寫(xiě)課程設(shè)計(jì)開(kāi)發(fā)文檔的能力(書(shū)寫(xiě)課程設(shè)計(jì)報(bào)告)??傊?,通過(guò)本課程設(shè)計(jì)加深對(duì)c+語(yǔ)言及數(shù)據(jù)結(jié)構(gòu)課程所學(xué)知識(shí)的理解,進(jìn)一步鞏固c+語(yǔ)言語(yǔ)法規(guī)則,在程序中體現(xiàn)出算法的思想,提高程序的運(yùn)行效率。學(xué)會(huì)編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腸+語(yǔ)言程序,從而具備解決綜合性實(shí)際問(wèn)題的能力。2.概要設(shè)計(jì)內(nèi)容多項(xiàng)式

5、輸出程序具有以下基本功能:1創(chuàng)建多項(xiàng)式。接收輸入的數(shù)據(jù),并保存到鏈表中。2txt文檔輸入輸出功能。3 清除內(nèi)存內(nèi)容,釋放創(chuàng)建的鏈表,退出程序。3.功能算法描述與數(shù)據(jù)結(jié)構(gòu)說(shuō)明該多項(xiàng)式程序除了main()函數(shù)外,主要有以下函數(shù):node *createpolyn()void firstnode(node *p)void othernode(node *p)void printpolyn(node *pa)void deletechain(node *h)下面對(duì)這些函數(shù)逐一介紹。.main()函數(shù)main函數(shù)主要調(diào)用其他函數(shù),用來(lái)實(shí)現(xiàn)輸入、顯示功能。在main()函數(shù)中,定義一維數(shù)組p用來(lái)保存多項(xiàng)式

6、的系數(shù),pa定義程序所需鏈表的頭指針。在程序開(kāi)始要求輸入多項(xiàng)式的系數(shù),隨后創(chuàng)建鏈表以保存多項(xiàng)式,再顯示出構(gòu)建的符合要求的多項(xiàng)式。.node *createpolyn()該函數(shù)功能是創(chuàng)建新的多項(xiàng)式鏈表。使用for語(yǔ)句,控制輸入多項(xiàng)式的每一項(xiàng)。.void firstnode(node *p)該函數(shù)功能是判斷輸出多項(xiàng)式第一項(xiàng)。對(duì)于第一項(xiàng)的系數(shù)為1或-1,指數(shù)為0或-1等五種情況進(jìn)行討論。.void othernode(node *p)該函數(shù)功能是判斷輸出多項(xiàng)式除第一項(xiàng)外的其它項(xiàng)。對(duì)于第一項(xiàng)的系數(shù)為1或-1,指數(shù)為0或-1等五種情況進(jìn)行討論。.void printpolyn(node *pa)該函數(shù)功

7、能:顯示構(gòu)造的符合要求的多項(xiàng)式鏈表。在該函數(shù)中調(diào)用、函數(shù),進(jìn)行多項(xiàng)式的輸出。.void deletechain(node *h)該函數(shù)的功能是釋放掉創(chuàng)建的鏈表,釋放內(nèi)存。四詳細(xì)設(shè)計(jì)下面討論重要函數(shù)具體實(shí)現(xiàn)過(guò)程:1. node *createpolyn() 定義int i=9計(jì)數(shù),當(dāng)i0時(shí),for語(yǔ)句反復(fù)提示用戶(hù)輸入該多項(xiàng)式的每一項(xiàng)的指數(shù)。當(dāng)i=1時(shí),輸入完畢,該鏈表也創(chuàng)建完畢。詳細(xì)的實(shí)現(xiàn)過(guò)程如下:node *createpolyn()node *head,*pa,*s;int i; pa=head=new node;/創(chuàng)建一個(gè)新的結(jié)點(diǎn)head-next=null; for (i = 9; i

8、0;i-) / 依次輸入9項(xiàng) s=new node; s-next=null;s-coef = p9-i;s-exp=i-1;/x指數(shù)從8遞減到0if(s-coef !=0)/系數(shù)不為零時(shí),結(jié)點(diǎn)p鏈接spa-next=s;pa=s;return head;2. void firstnode(node *p) 對(duì)多項(xiàng)式第一項(xiàng)輸出可能性進(jìn)行多種分類(lèi)討論。void firstnode(node *p)/輸出多項(xiàng)式第一個(gè)結(jié)點(diǎn)/指數(shù)不為1且不為0,系數(shù)絕對(duì)值不為1(正常的輸出)if(p-exp!=1&p-exp&fabs(p-coef)!=1)if(p-coef0)outfilecoefxexp;els

9、eoutfilecoefxexp;if(p-exp=0)/指數(shù)為0,即常數(shù)項(xiàng)if(p-coef0)outfilecoef;elseoutfilecoef; /指數(shù)大于0且不為1,系數(shù)絕對(duì)值為1if(p-exp0&fabs(p-coef)=1&p-exp!=1)if(p-coef0)outfilexexp;elseoutfile-xexp;if(p-exp=1&fabs(p-coef)!=1)/指數(shù)為1且系數(shù)絕對(duì)值不為1if(p-coef0&p-coef!=1)outfilecoefcoefcoef!=-1)outfilecoefexp=1&fabs(p-coef)=1)/指數(shù)為1且系數(shù)絕對(duì)值為

10、1if(p-coef=1)outfilex;elseoutfilenext=null)/首項(xiàng)判斷,如果首項(xiàng)無(wú),則顯示“0”outfilenext);p=pa-next-next;/定義指針p指向pa的下下個(gè)指針while(p!=null)othernode(p);p=p-next;/將p指向下個(gè)一個(gè)結(jié)點(diǎn) outfileendl;五系統(tǒng)測(cè)試該程序在vc6.0中調(diào)試通過(guò),沒(méi)有錯(cuò)誤和警告,運(yùn)行結(jié)果經(jīng)過(guò)檢驗(yàn)為正確。以下圖為該程序運(yùn)行結(jié)果效果圖: 圖5-1 范例 圖5-2 一行輸出 圖5-3 多行輸出六使用說(shuō)明1打開(kāi)1.txt文件,在里面任意輸入9個(gè)整數(shù),每個(gè)數(shù)字間要有空格,可以輸入一行或者多行,輸入多行的時(shí)候需要換行。 2.編譯運(yùn)行后,打開(kāi)2.txt文件,即可看到輸出的符合要求的多項(xiàng)式。七總結(jié)及心得體會(huì)通過(guò)這次課程設(shè)計(jì)練習(xí),使我更深刻地理解了c+語(yǔ)言的精髓-指針的使用。完成整個(gè)程序設(shè)計(jì)有很大的收獲,對(duì)指針掌握的更加熟練。同時(shí)通過(guò)直接對(duì)單鏈表的操作,加深了對(duì)數(shù)據(jù)結(jié)構(gòu)的理解和認(rèn)識(shí)。并在完成課程設(shè)計(jì)的過(guò)程作主動(dòng)查閱了相關(guān)資料,學(xué)到了不少課本上沒(méi)有的技術(shù)知識(shí)。經(jīng)過(guò)這次課程設(shè)計(jì),我深刻認(rèn)識(shí)到算法在程序設(shè)計(jì)中的重要性,如何讓程序簡(jiǎn)單、易讀是這個(gè)課程設(shè)計(jì)的難點(diǎn)。程序總是由若干個(gè)函數(shù)構(gòu)成的,這些相應(yīng)的函數(shù)體現(xiàn)了算法的基本思想。編程是一件枯燥乏味工作,但是只要認(rèn)真專(zhuān)研,我們會(huì)從中學(xué)到很多

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論