多項(xiàng)式類的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
多項(xiàng)式類的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
多項(xiàng)式類的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、題目:班級:姓名:學(xué)號:日期:課程設(shè)計(jì)任務(wù)書學(xué)院專業(yè)學(xué)生姓名學(xué)號設(shè)計(jì)題目多項(xiàng)式類的設(shè)計(jì)與實(shí)現(xiàn)內(nèi)容及要求:開發(fā)多項(xiàng)式類Polynomial,多項(xiàng)式的每一項(xiàng)用鏈表的結(jié)點(diǎn)表示,每項(xiàng)包含一個(gè)系數(shù) 和一個(gè)指數(shù)。例如:2x4的指數(shù)為4,系數(shù)為2。請開發(fā)一個(gè)完整的Polynomial 類,包括構(gòu)造函數(shù)、析構(gòu)函數(shù)以及“get”函數(shù)(讀取值)和“set”函數(shù)(設(shè)置 值)。該類還要提供以下重載的運(yùn)算符:(1)重載加法運(yùn)算符+,將兩個(gè)多項(xiàng)式相加。(2)重載加法運(yùn)算符一,將兩個(gè)多項(xiàng)式相減。(3)重載賦值運(yùn)算符=,將一個(gè)多項(xiàng)式賦給另外一個(gè)多項(xiàng)式。(4)重載加法運(yùn)算符水,將兩個(gè)多項(xiàng)式相乘。(5)編寫一個(gè)主函數(shù)測試多項(xiàng)式類

2、的上述功能。進(jìn)度安排:第17周:分析題目,查閱課題相關(guān)資料,進(jìn)行類設(shè)計(jì)、算法設(shè)計(jì); 第18周:程序的設(shè)計(jì)、調(diào)試與實(shí)現(xiàn);7參考文獻(xiàn)- 29 -1需求分析(1) 開發(fā)多項(xiàng)式類Polynomial,多項(xiàng)式的每一項(xiàng)用鏈表的結(jié)點(diǎn)表示,每項(xiàng)包 含一個(gè)系數(shù)和一個(gè)指數(shù)。例如:2x4的指數(shù)為4,系數(shù)為2。請開發(fā)一個(gè)完整的 Polynomial類,包括構(gòu)造函數(shù)、析構(gòu)函數(shù)以及“get”函數(shù)(讀取值)和“set” 函數(shù)(設(shè)置值)。(2) 多項(xiàng)式的定義:n個(gè)單項(xiàng)式的代數(shù)和叫多項(xiàng)式。(3) 程序測試數(shù)據(jù):Pl:2x+3x2+2x4+3x2P2:3x2+2x°3(1)2算法基本原理設(shè)有2個(gè)多項(xiàng)式pl,p2Pl:2

3、x+3x“2+2x"4+3x"2P2:3x*2+2x 3實(shí)現(xiàn)多項(xiàng)式pl和p2的計(jì)算,關(guān)鍵是對pl和p2的指數(shù)和系數(shù)進(jìn)行加減生的 操作,我們可以先編輯一個(gè)基類Polynominalo通過鏈表和重載運(yùn)算符的方法來實(shí) 現(xiàn)。(1) 多項(xiàng)式即個(gè)個(gè)單項(xiàng)式的和,我們可以把一個(gè)多項(xiàng)式分解成一項(xiàng)一項(xiàng)來 看,每一項(xiàng)用鏈表的一個(gè)節(jié)點(diǎn)表示,每個(gè)節(jié)點(diǎn)包括一個(gè)單項(xiàng)式的系數(shù)、指數(shù)和指向 該節(jié)點(diǎn)類型的一個(gè)指針。(2) 用 Polynominal 創(chuàng)建對象 pl、p2、p3,通過調(diào)用 Create(cl, el, sizel) 函數(shù)來構(gòu)建多項(xiàng)式。(3) 通過重載+、-、*以及二運(yùn)算符,對多項(xiàng)式進(jìn)行操作。(4

4、 )通H pl. Print ()來顯示結(jié)果。3類設(shè)計(jì)從上面的算法分析可以看到,本設(shè)計(jì)面臨的計(jì)算問題的關(guān)鍵是多項(xiàng)式運(yùn)算。 可以定義一個(gè)多項(xiàng)式類Polynominalo(1) 該類包括私有數(shù)據(jù)成員Node *head, Node是構(gòu)造的節(jié)點(diǎn)類型的結(jié)構(gòu) 體,包括系數(shù)、指數(shù)和指向該節(jié)點(diǎn)類型的一個(gè)指針。(2) 成員函數(shù)包括 Polynominal ()/構(gòu)造函數(shù),Polynominal (const Polynominal &)/拷貝構(gòu)造函數(shù),Polynominal () /析構(gòu)函數(shù) Node* get (int e);/讀取指數(shù)為e的項(xiàng),返回其指針,void set (double c, i

5、nt e);/設(shè)置指數(shù)為 e 的項(xiàng)的系數(shù)為 c, void Create (double *c, int *e, int n) ;/創(chuàng)建多項(xiàng)式, friend Polynominal operator + (Polynominal a, Polynominal b);/重載+運(yùn)算 符,friend Polynominal operator -(Polynominal a, Polynominal b);/重載-運(yùn) 算符,friend Polynominal operator * (Polynominal a, Polynominal b);/重載* 運(yùn)算符,friend ostream&

6、; operator« (ostream& os, const Polynominal&a) ;Polynominal& operator = (Polynominal a) ;/重載二運(yùn)算符,voidPrint (ostream& os = cout) const;/顯示函數(shù) void Copy (const Polynominal&d)/復(fù)制函數(shù)對以上進(jìn)行總結(jié),該程序只包含一個(gè)類即Polynomina,對多項(xiàng)式的所有操作 都抽象在該類中。4詳細(xì)設(shè)計(jì)程序主要分為三個(gè)部分:類聲明、類實(shí)現(xiàn)、主函數(shù)。4.1類的接口設(shè)計(jì)/類的聲明class Poly

7、nominalpublic:Polynominal () head=0; 構(gòu)造函數(shù)Polynominal (const Polynominal &);/拷貝構(gòu)造函數(shù)Polynominal()Node *q, *p;p二head;while (p)/刪除鏈表q=p->next;if (p) delete p;P二q;head二NULL;Node* get (int e) ;/讀取指數(shù)為e的項(xiàng),返回其指針void set (double c, int e) ;/設(shè)置指數(shù)為e的項(xiàng)的系數(shù)為cvoid Create (double *c, int *e, int n) ;/創(chuàng)建多項(xiàng)式fri

8、end Polynominaloperator + (Polynominal a, Polynominal b) ;/重載+運(yùn)算符friend Polynominal operator -(Polynominal a, Polynominal b) ;/重載一運(yùn)算符friend Polynominal operator * (Polynominal a, Polynominal b) ;/重載*運(yùn)算符friend ostreamfe operator<<(ostream& os, const Polynominal& a);Polynominal& oper

9、ator = (Polynominal a) ;/重載二運(yùn)算符void Print(ostream& os 二 cout) const;void Copy(const Polynominal &a);void Addr () cout<</,鏈表頭指針值為:"hedd«endl;private:Node *head;/鏈表頭指針;在程序中,聲明了個(gè)個(gè)運(yùn)算符的重載,通過Node* get(int e);讀取指數(shù)為 的項(xiàng),返回其指針,通過void set (double c, int e)設(shè)置指數(shù)為e的項(xiàng)的系數(shù)為 c,多項(xiàng)式的的系數(shù)、指數(shù)以及指針全部

10、采用了動(dòng)態(tài)內(nèi)存分配技術(shù),這些工作都是 山構(gòu)造函數(shù)和Create()函數(shù)完成,它們的清理工作在析構(gòu)函數(shù)中完成。4. 2類的實(shí)現(xiàn)/類實(shí)現(xiàn)nclude <iostream. h>#include <cstdlib>#include <cmath>#define MAXSIZE 15struct ode/鏈表結(jié)點(diǎn)int exp;/指數(shù)double coef;/系數(shù)Node *next:;void Polynominal:Copy(const Polynominal &d)/復(fù)制對象(公用函數(shù))Node *t, *s, *p;p=a. head;s二head二

11、0;while(p)t=new Node;if (head=0) head=t;t->coef=p->coef;t_exp二p_exp;p=p->next;if(s) s->next=t;s二 t;if (s) s->next二0;Polynominal: :Polynominal (const Polynominal& &)/復(fù)制構(gòu)造函數(shù)Copy (a);void Polynominal: : Create (double *c, int *e, int n) 創(chuàng)建多項(xiàng)式辻(n<l)cout«"錯(cuò)誤:要?jiǎng)?chuàng)建多項(xiàng)式的項(xiàng)數(shù)必須大于零。n"elsehead二new Node;/創(chuàng)建頭結(jié)點(diǎn)head->coef=c0;head-exp二e0;Node *q,*p=head;f

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論