一元多項式

1 、問題描述:

功能:設(shè)計一個一元多項式加法器。

輸入并建立多項式,實現(xiàn)兩個多項式的加法運算。

要求:

1) 界面友好,函數(shù)功能要劃分好

2) 總體設(shè)計應(yīng)畫出流程圖

3) 程序要加必要的注釋

4) 要提供程序測試方案

5) 程序一定要經(jīng)得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。


2 、問題的解決方案:

1) 多項式的表達:n,c1,e1,c2,e2,…cn,en,其中, n 是多項式項數(shù),ciei分別是第 i 項的系數(shù)和指數(shù),序列按指數(shù)降序或者升序排列;

2)利用線性結(jié)構(gòu)存儲多項式的每一項。

3)多項式加法運算即轉(zhuǎn)化為線性表的條件歸并運算。


功能實現(xiàn)

一、設(shè)計流程:

任務(wù)設(shè)計分為三步:1、完成兩個一元多項式相加;2、對序列進行排序;3、實現(xiàn)友好的人機交互。


二、方法構(gòu)造

????步驟一:實現(xiàn)兩個一元多項式相加,我的設(shè)計流程是,創(chuàng)建三個鏈表,依次儲存第一個多項式的系數(shù)和指數(shù),第二個多項式的系數(shù)和指數(shù),兩個多項式和/差 的系數(shù)和指數(shù)。

????如圖所示:

插入函數(shù)的具體實現(xiàn)過程

(1) 當(dāng)p結(jié)點的指數(shù)expn小于p2的指數(shù)expn就將p插入到p2的前面。


(2) 當(dāng)p結(jié)點的指數(shù)exon等于p2的指數(shù)expn就將p和p2的系數(shù)加起來合并放到p2的位置上


(3) 當(dāng)p結(jié)點的指數(shù)expn大于p2的指數(shù)expn就將p插入到p2的前面。


功能二輸出多項式(A+B).主要的方法是建立一個新的鏈表C,將A和B合并并插入C鏈表中

(1) 比較A和B中的結(jié)點如果A中結(jié)點的指數(shù)大于B中結(jié)點的指數(shù)就將A中該結(jié)點插入到C鏈表中


(2)比較A和B中的結(jié)點如過A中結(jié)點的指數(shù)小于B中結(jié)點的指數(shù)就將B中該結(jié)點插入到C鏈表中


(3) 比較A和B中的結(jié)點如過A中結(jié)點的指數(shù)等于B中結(jié)點的指數(shù)就將A和B合并為一個結(jié)點插入到C中


這兩個主要的功能就是這樣實現(xiàn)的

?? 步驟二:對序列進行排序。

??????? 排序方法我用的是冒泡排序,根據(jù)指數(shù)大小對每個結(jié)點進行排序,然后輸出,這個排序方法我想大家應(yīng)該都了解,就不多說了,想具體了解各種排序方法的同學(xué),可進入visualgo.net這個網(wǎng)站深度學(xué)習(xí)(這個網(wǎng)站也是身邊同學(xué)分享給我的);


???步驟三:實現(xiàn)良好的人機交互。

任何一個程序的設(shè)計都必須要有實用意義,否則毫無價值,任務(wù)要求是做一元稀疏多項式的加法計算器,但只能實現(xiàn)加法一個功能遠遠滿足不了實用的要求,所以我們可以添加“減、乘、除”這三個功能。減法的功能實現(xiàn)和加法基本類似,只需修改一下運算方法就行了,乘除的計算量比較大,可以遍歷第一個表的每個結(jié)點對第二個表每個結(jié)點進行‘乘/除’運算,應(yīng)給會多出來很多數(shù)據(jù),

數(shù)學(xué)基礎(chǔ)還算可以的同學(xué)可以在下面自己進行探討延伸。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容