版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.wd.wd.wd.武漢理工大學(xué)華夏學(xué)院課程設(shè)計(jì)報(bào)告書(shū)課程名稱:數(shù)據(jù)構(gòu)造與算法分析題 目:用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法運(yùn)算系 名:信息工程系 專業(yè)班級(jí): 物聯(lián)網(wǎng)工程1122班 姓 名: 隋明超學(xué) 號(hào): 10213312201指導(dǎo)教師:司曉梅2014年 1 月3日武漢理工大學(xué)華夏學(xué)院信息工程系課 程 設(shè) 計(jì) 任 務(wù) 書(shū)課程名稱: 數(shù)據(jù)構(gòu)造與算法分析 指導(dǎo)教師: 司曉梅 班級(jí)名稱: 物聯(lián)網(wǎng)1121-2 開(kāi)課系、教研室: 信息系計(jì)算機(jī) 一、課程設(shè)計(jì)目的與任務(wù)?數(shù)據(jù)構(gòu)造?課程設(shè)計(jì)是為訓(xùn)練學(xué)生的數(shù)據(jù)組織能力和提高程序設(shè)計(jì)能力而設(shè)置的增強(qiáng)實(shí)踐能力的課程。目的:學(xué)習(xí)數(shù)據(jù)構(gòu)造課程,旨在使學(xué)生學(xué)會(huì)分析研究數(shù)據(jù)
2、對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)的組織方法,以便選擇適宜的數(shù)據(jù)的邏輯構(gòu)造和存儲(chǔ)構(gòu)造以及相應(yīng)操作,把現(xiàn)實(shí)世界中的問(wèn)題轉(zhuǎn)換為計(jì)算機(jī)內(nèi)部的表示和處理,這就是一個(gè)良好的程序設(shè)計(jì)技能訓(xùn)練的過(guò)程。提高學(xué)生的程序設(shè)計(jì)能力、掌握 基本知識(shí)、 基本技能,提高算法設(shè)計(jì)質(zhì)量與程序設(shè)計(jì)素質(zhì)的培養(yǎng)就是本門(mén)課程的課程設(shè)計(jì)的目的。任務(wù):根據(jù)題目要求,完成算法設(shè)計(jì)與程序?qū)崿F(xiàn),并按規(guī)定寫(xiě)出課程設(shè)計(jì)報(bào)告。二、課程設(shè)計(jì)的內(nèi)容與 基本要求設(shè)計(jì)題目:用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算問(wèn)題描述輸入并建設(shè)兩個(gè)多項(xiàng)式并輸出多項(xiàng)式設(shè)計(jì)一個(gè)程序:對(duì)兩個(gè)多項(xiàng)式進(jìn)展加、減法運(yùn)算,建設(shè)一個(gè)新多項(xiàng)式并輸出。實(shí)現(xiàn)提示:選擇單鏈表存儲(chǔ)多項(xiàng)式 具體要完成的任務(wù)是: A.
3、 編制完成上述問(wèn)題的C語(yǔ)言程序、進(jìn)展程序調(diào)試并能得出正確的運(yùn)行結(jié)果。B. 寫(xiě)出標(biāo)準(zhǔn)的課程設(shè)計(jì)報(bào)告書(shū);三、課程設(shè)計(jì)步驟及時(shí)間進(jìn)度和場(chǎng)地安排時(shí)間:本課程設(shè)計(jì)安排在第18周 地點(diǎn):現(xiàn)代教育中心具體時(shí)間安排如下:第一天:布置題目,確定任務(wù)、查找相關(guān)資料第二天第四天:功能分析,編寫(xiě)程序,調(diào)試程序、運(yùn)行系統(tǒng);第五天上午:撰寫(xiě)設(shè)計(jì)報(bào)告;第五天下午:程序驗(yàn)收、辯論。四、課程設(shè)計(jì)考核及評(píng)分標(biāo)準(zhǔn)課程設(shè)計(jì)考核將綜合考慮學(xué)生的系統(tǒng)設(shè)計(jì)方案、運(yùn)行結(jié)果、課程設(shè)計(jì)報(bào)告書(shū)的質(zhì)量、態(tài)度、考勤、辯論情況等各因素。具體評(píng)分標(biāo)準(zhǔn)如下:1設(shè)計(jì)方案正確,具有可行性、創(chuàng)新性; 30分2系統(tǒng)開(kāi)發(fā)效果較好; 20分3設(shè)計(jì)報(bào)告標(biāo)準(zhǔn)、課程設(shè)計(jì)報(bào)告
4、質(zhì)量高; 20分4課程設(shè)計(jì)辯論時(shí),問(wèn)題答復(fù)正確; 20分5態(tài)度認(rèn)真、刻苦鉆研、遵守紀(jì)律; 10分 按上述五項(xiàng)分別記分后求和,總分按五級(jí)制記載最后成績(jī)。優(yōu)秀10090分,良好8089分,中等7079分,及格6069分,不及格059分設(shè)計(jì)題目:用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法運(yùn)算2.開(kāi)發(fā)環(huán)境、采用的語(yǔ)言:(1)Windows XP中文操作系統(tǒng)(2) Visual C+ 6.03.設(shè)計(jì)思想對(duì)你的整個(gè)設(shè)計(jì)思路作出說(shuō)明:3.1問(wèn)題描述:輸入并建設(shè)兩個(gè)多項(xiàng)式并輸出多項(xiàng)式,對(duì)兩個(gè)多項(xiàng)式進(jìn)展加、減法運(yùn)算,建設(shè)一個(gè)新多項(xiàng)式并輸出。3.2問(wèn)題思考:用C語(yǔ)言編寫(xiě)一段程序,該程序的功能相當(dāng)于一個(gè)一元多項(xiàng)式的計(jì)算器,能夠
5、實(shí)現(xiàn)按照指數(shù)降冪建設(shè)并輸出多項(xiàng)式,并且能夠完成多個(gè)多項(xiàng)式的相加、相減運(yùn)算及結(jié)果輸出的功能。此程序的數(shù)據(jù)構(gòu)造是選擇用帶表頭結(jié)點(diǎn)的單鏈表存儲(chǔ)多項(xiàng)式。雖然一元多項(xiàng)式可以用順序和鏈表存儲(chǔ)結(jié)果表示,但順序構(gòu)造的最大長(zhǎng)度很難確定。比方當(dāng)多項(xiàng)式的系數(shù)較大時(shí),此時(shí)就會(huì)浪費(fèi)存儲(chǔ)空間,所以應(yīng)該選用鏈表構(gòu)造來(lái)存儲(chǔ)一元多項(xiàng)式。但鏈表的構(gòu)造體可以用來(lái)存儲(chǔ)多項(xiàng)式的系數(shù)、指數(shù)、下一個(gè)指針3個(gè)元素,這樣便于實(shí)現(xiàn)任意多項(xiàng)式的加法、減法運(yùn)算。3.3功能設(shè)計(jì):1多項(xiàng)式建設(shè):提示用戶輸入兩個(gè)多項(xiàng)式A和B,輸入形式為:先輸入多項(xiàng)式A的項(xiàng)數(shù),回車輸入多項(xiàng)式A第一項(xiàng)的系數(shù),空格隔開(kāi)輸入多項(xiàng)式A第一項(xiàng)的指數(shù),繼續(xù)輸入多項(xiàng)式A的其他項(xiàng),輸入方
6、式與上同;再建設(shè)多項(xiàng)式B,數(shù)據(jù)輸入方式與建設(shè)多項(xiàng)式A一樣。2功能項(xiàng):設(shè)計(jì)一個(gè)功能項(xiàng),分別為1.輸出多項(xiàng)式a和b 2.輸出多項(xiàng)式a+b 3.輸出多項(xiàng)式a-b 4.退出3執(zhí)行操作:此時(shí)用戶可以根據(jù)需要選擇功能項(xiàng)中四項(xiàng)進(jìn)展輸出。4.程序總的流程圖:通過(guò)設(shè)計(jì)思想,可設(shè)計(jì)出如圖4-1所示的一元多項(xiàng)式總流程圖:開(kāi)場(chǎng)申請(qǐng)結(jié)點(diǎn)空間+num輸入多項(xiàng)式的項(xiàng)數(shù)指針數(shù)組tempi中i=1num輸入多項(xiàng)式各項(xiàng)的系數(shù) M, 指數(shù) N輸出已輸入的多項(xiàng)式 進(jìn)展多項(xiàng)式的輸出、加法、減法運(yùn)算完畢否是是否輸入正確圖4.1一元多項(xiàng)式總流程圖5.數(shù)據(jù)構(gòu)造說(shuō)明及模塊算法說(shuō)明或流程圖:、5.1存儲(chǔ)構(gòu)造:一元多項(xiàng)式的表示在計(jì)算機(jī)內(nèi)可以用鏈表
7、來(lái)表示,為了節(jié)省存儲(chǔ)空間,只存儲(chǔ)多項(xiàng)式中系數(shù)非零的項(xiàng)。鏈表中的每一個(gè)結(jié)點(diǎn)存放多項(xiàng)式的一個(gè)系數(shù)非零項(xiàng),它包含三個(gè)域,分別存放該項(xiàng)的系數(shù)、指數(shù)以及指向下一個(gè)多項(xiàng)式項(xiàng)結(jié)點(diǎn)的指針。創(chuàng)立一元多項(xiàng)式鏈表,對(duì)一元多項(xiàng)式的運(yùn)算中會(huì)出現(xiàn)的各種可能情況進(jìn)展分析,實(shí)現(xiàn)一元多項(xiàng)式的相加、相減操作。5.2 基本算法:1一元多項(xiàng)式的建設(shè):輸入多項(xiàng)式采用頭插法的方式,輸入多項(xiàng)式中的一個(gè)項(xiàng)的系數(shù)和指數(shù),就產(chǎn)生一個(gè)新的結(jié)點(diǎn),建設(shè)起它的右指針,并用頭結(jié)點(diǎn)指向它;為了判斷一個(gè)多項(xiàng)式是否輸入完畢,定義一個(gè)完畢標(biāo)志,當(dāng)輸入非0時(shí)就繼續(xù);輸入為0時(shí),就完畢一個(gè)多項(xiàng)式的輸入。2顯示一元多項(xiàng)式:如果系數(shù)是大于0的話就輸出的形式;如果系數(shù)是小
8、于0的話就輸出的形式;如果指數(shù)為0的話就直接輸出;如果指數(shù)是1的話就直接輸出;如果指數(shù)是-1的話,就直接輸出。3一元多項(xiàng)式加法運(yùn)算 :從兩個(gè)多項(xiàng)式的頭部開(kāi)場(chǎng)判斷,當(dāng)兩個(gè)多項(xiàng)式的某一項(xiàng)度不為空時(shí),假設(shè)P、Q分別指向多項(xiàng)式A和多項(xiàng)式B中當(dāng)前進(jìn)展比較的結(jié)點(diǎn),然后比較兩個(gè)結(jié)點(diǎn)中的指數(shù)項(xiàng),有三種情況:1、當(dāng)P所指結(jié)點(diǎn)的指數(shù)小于Q的話,就應(yīng)該復(fù)制P的結(jié)點(diǎn)到多項(xiàng)式鏈中。2、P所指結(jié)點(diǎn)的指數(shù)如果大于Q的指數(shù)的話,就應(yīng)該復(fù)制Q的結(jié)點(diǎn)到多項(xiàng)式鏈中。3、當(dāng)P所指結(jié)點(diǎn)的指數(shù)等于Q所指結(jié)點(diǎn)的指數(shù)時(shí),那么將兩個(gè)結(jié)點(diǎn)中的系數(shù)相加,假設(shè)和不為0,那么修改P所指結(jié)點(diǎn)的系數(shù)值,同時(shí)釋放Q所指結(jié)點(diǎn);假設(shè)和為0,從多項(xiàng)式A的鏈表中刪
9、除相應(yīng)結(jié)點(diǎn),并釋放P、Q所指結(jié)點(diǎn)。加法流程圖如圖5.2-1所示:開(kāi)場(chǎng)定義存儲(chǔ)結(jié)果的空鏈 r是 否輸出存儲(chǔ)多項(xiàng)式的和的鏈r完畢是否同指數(shù)項(xiàng)系數(shù)相加后存入r中把p中各項(xiàng)系數(shù)改變符號(hào)后存入r中直接把q中各項(xiàng)存入r存儲(chǔ)多項(xiàng)式2的空鏈Q(jìng)是否為空存儲(chǔ)多項(xiàng)式1的空鏈P是否為空合并同類項(xiàng)圖5.2-1一元多項(xiàng)式加法運(yùn)算流程圖4一元多項(xiàng)式的減法從兩個(gè)多項(xiàng)式的頭部開(kāi)場(chǎng)判斷,當(dāng)兩個(gè)多項(xiàng)式的某一項(xiàng)度不為空時(shí),假設(shè)P、Q分別指向多項(xiàng)式A和多項(xiàng)式B中當(dāng)前進(jìn)展比較的結(jié)點(diǎn),然后比較兩個(gè)結(jié)點(diǎn)中的指數(shù)項(xiàng),有三種情況:1、當(dāng)P所指結(jié)點(diǎn)的指數(shù)小于Q的話,就應(yīng)該復(fù)制P的結(jié)點(diǎn)到多項(xiàng)式鏈中。2、P所指結(jié)點(diǎn)的指數(shù)如果大于Q的指數(shù)的話,就應(yīng)該復(fù)
10、制Q的結(jié)點(diǎn)到多項(xiàng)式鏈中,并將建設(shè)的結(jié)點(diǎn)系數(shù)變?yōu)橄喾磾?shù)。3、當(dāng)P所指結(jié)點(diǎn)的指數(shù)等于Q所指結(jié)點(diǎn)的指數(shù)時(shí),并將Q的結(jié)點(diǎn)系數(shù)變?yōu)橄喾磾?shù),并將兩個(gè)結(jié)點(diǎn)中的系數(shù)相加,假設(shè)和不為0,那么修改P所指結(jié)點(diǎn)的系數(shù)值,同時(shí)釋放Q所指結(jié)點(diǎn);假設(shè)和為0,從多項(xiàng)式A的鏈表中刪除相應(yīng)結(jié)點(diǎn),并釋放P、Q所指結(jié)點(diǎn)。減法流程圖如圖5.2-2所示:開(kāi)場(chǎng)定義存儲(chǔ)結(jié)果的空鏈 r是 否輸出存儲(chǔ)多項(xiàng)式的和的鏈r完畢是否同指數(shù)項(xiàng)系數(shù)相加后存入r中把p中各項(xiàng)系數(shù)改變符號(hào)后存入r中直接把q中各項(xiàng)存入r存儲(chǔ)多項(xiàng)式2的空鏈Q(jìng)是否為空存儲(chǔ)多項(xiàng)式1的空鏈P是否為空合并同類項(xiàng)圖5.2-2 一元多項(xiàng)式減法運(yùn)算流程圖6. 程序運(yùn)行說(shuō)明及結(jié)果截圖:6.1歡迎界
11、面:程序翻開(kāi),首先顯示上的是歡迎界面,在歡迎界面下方有第一個(gè)多項(xiàng)式的輸入模塊。圖 6.1歡迎界面6.2輸入界面:看到輸入界面后,輸入第一個(gè)多項(xiàng)式的項(xiàng)數(shù),接下來(lái)輸入這個(gè)多項(xiàng)式第一項(xiàng)的系數(shù),空格繼續(xù)輸入這個(gè)多項(xiàng)式的指數(shù)?;剀?yán)^續(xù)輸入下一項(xiàng),輸入完后回車輸入下一個(gè)多項(xiàng)式圖6.2輸入界面6.3功能選項(xiàng):當(dāng)數(shù)據(jù)輸入完成后進(jìn)入功能選項(xiàng),在功能選項(xiàng)可以選擇自己想要實(shí)現(xiàn)的功能進(jìn)展操作。圖6.3功能選項(xiàng)6.4多項(xiàng)式輸出:在執(zhí)行操作中選擇1,輸出多項(xiàng)式a和b。圖6.4多項(xiàng)式輸出6.5多項(xiàng)式相加:在執(zhí)行操作中選擇2,輸出多項(xiàng)式a+b。圖6.5多項(xiàng)式相加6.6多項(xiàng)式相減:在執(zhí)行操作中選擇3,輸出多項(xiàng)式a-b。圖6.6
12、多項(xiàng)式相減7. 程序調(diào)試及測(cè)試過(guò)程記載:本次課程設(shè)計(jì)中,經(jīng)過(guò)反復(fù)調(diào)試,程序已經(jīng)可以正常運(yùn)行。在設(shè)計(jì)該算法時(shí),出現(xiàn)了一些問(wèn)題,例如在建設(shè)鏈表時(shí)頭指針的設(shè)立導(dǎo)致了之后運(yùn)用到相關(guān)的指針時(shí)沒(méi)能很好的移動(dòng)指針出現(xiàn)了數(shù)據(jù)重復(fù)輸出或是輸出系統(tǒng)缺省值,不能實(shí)現(xiàn)算法。實(shí)現(xiàn)加法時(shí)該鏈表并沒(méi)有向通常那樣通過(guò)建設(shè)第三個(gè)鏈表來(lái)存放運(yùn)算結(jié)果,而是再度利用了鏈表之一來(lái)進(jìn)展節(jié)點(diǎn)的比較插入刪除等操作。為了使輸入數(shù)據(jù)按指數(shù)降序排列,可在數(shù)據(jù)的輸入后先做一個(gè)節(jié)點(diǎn)的排序函數(shù),通過(guò)對(duì)鏈表排序后再進(jìn)展之后加減運(yùn)算。8. 總結(jié)及心得體會(huì):在這次課程設(shè)計(jì)中,我遇到了不少困難,但是在我的堅(jiān)持和虛心請(qǐng)教中都得到順利解決。在這次課程設(shè)計(jì)中,我發(fā)現(xiàn)
13、理論必須和實(shí)踐相結(jié)合,才能真正學(xué)會(huì)程序設(shè)計(jì),才能完成一個(gè)課題。在這次設(shè)計(jì)中我參考了不少書(shū)籍,從中學(xué)到了課堂中無(wú)法學(xué)到的許多東西,對(duì)此我感到很興奮。原來(lái)不斷的學(xué)習(xí),不斷的探索是苦中帶著甜,雖然經(jīng)歷了不少?gòu)澛?,?jīng)歷了不少挫折,但當(dāng)程序調(diào)試成功后,當(dāng)運(yùn)行能到達(dá)要求后,我感到十二分成就感。面對(duì)課題,要展現(xiàn)自信出來(lái),這是成功的一半,在這個(gè)設(shè)計(jì)過(guò)程中,不懂的可以虛心向教師請(qǐng)教,與同學(xué)交流經(jīng)歷。態(tài)度是成功的基石!在我這課題中,關(guān)鍵在于對(duì)一元多項(xiàng)式的表示及相加的操作。這個(gè)實(shí)際問(wèn)題,在學(xué)習(xí)過(guò)的知識(shí)中找到一種適宜的模型來(lái)模擬,數(shù)據(jù)構(gòu)造的選擇是主要,而對(duì)于編寫(xiě)代碼,所涉及的并不是很復(fù)雜,對(duì)于鏈表數(shù)據(jù)存儲(chǔ)訪問(wèn)方式,在
14、C語(yǔ)言的學(xué)習(xí)過(guò)程中已經(jīng)有過(guò)很多講解,為了進(jìn)一步了解,我還閱讀了一些數(shù)據(jù)構(gòu)造中關(guān)于鏈表的表達(dá)。對(duì)于這個(gè)課題,運(yùn)用C語(yǔ)言簡(jiǎn)單一點(diǎn)的構(gòu)造化程序設(shè)計(jì)已足能滿足要求而不至于構(gòu)造過(guò)于復(fù)雜,為了簡(jiǎn)便的實(shí)現(xiàn)插入操作,我選擇了一個(gè)帶表頭結(jié)點(diǎn)的鏈表。在寫(xiě)源代碼時(shí)要注意指針使用的正確性,為產(chǎn)生的新結(jié)點(diǎn)需及時(shí)分配存儲(chǔ)空間。在設(shè)計(jì)中將問(wèn)題抽象化,而完成后在運(yùn)行時(shí),可以說(shuō)是用抽象的數(shù)據(jù)模型來(lái)解決實(shí)際問(wèn)題。我的這個(gè)課題相比較于其他同學(xué)來(lái)說(shuō),是相對(duì)簡(jiǎn)單的一點(diǎn)的。在現(xiàn)實(shí)中,很多功能現(xiàn)在都沒(méi)法實(shí)現(xiàn),還有不少操作需進(jìn)一步完善,這次程序設(shè)計(jì)有很多缺乏處,可能是因?yàn)榻?jīng)歷缺乏,對(duì)問(wèn)題預(yù)期不夠等一些不可預(yù)見(jiàn)的原因所致,這些都是我以后要汲取
15、的教訓(xùn)。9. 附錄:源代碼注意要加上詳細(xì)的注釋#include#includetypedef struct Polynomial float coef; int expn; struct Polynomial *next;*Polyn,Polynomial; /Polyn為結(jié)點(diǎn)指針類型void Insert(Polyn p,Polyn h) if(p-coef=0) free(p); /系數(shù)為0的話釋放結(jié)點(diǎn) else Polyn q1,q2; q1=h;q2=h-next; while(q2&p-expnexpn) /查找插入位置 q1=q2; q2=q2-next; if(q2&p-expn
16、=q2-expn) /將指數(shù)一樣相項(xiàng)合并 q2-coef+=p-coef; free(p); if(!q2-coef) /系數(shù)為0的話釋放結(jié)點(diǎn) q1-next=q2-next; free(q2); else /指數(shù)為新時(shí)將結(jié)點(diǎn)插入 p-next=q2; q1-next=p; /InsertPolyn CreatePolyn(Polyn head,int m)/建設(shè)一個(gè)頭指針為head、項(xiàng)數(shù)為m的一元多項(xiàng)式 int i; Polyn p; p=head=(Polyn)malloc(sizeof(struct Polynomial); head-next=NULL; for(i=0;icoef,&
17、p-expn); Insert(p,head); /調(diào)用Insert函數(shù)插入結(jié)點(diǎn) return head;/CreatePolynvoid DestroyPolyn(Polyn p)/銷毀多項(xiàng)式p Polyn q1,q2; q1=p-next; q2=q1-next; while(q1-next) free(q1); q1=q2;/指針后移 q2=q2-next; void PrintPolyn(Polyn P) Polyn q=P-next; int flag=1;/項(xiàng)數(shù)計(jì)數(shù)器 if(!q) /假設(shè)多項(xiàng)式為空,輸出0 putchar(0); printf(n); return; while
18、(q) if(q-coef0&flag!=1) putchar(+); /系數(shù)大于0且不是第一項(xiàng) if(q-coef!=1&q-coef!=-1)/系數(shù)非1或-1的普通情況 printf(%g,q-coef); if(q-expn=1) putchar(X); else if(q-expn) printf(X%d,q-expn); else if(q-coef=1) if(!q-expn) putchar(1); else if(q-expn=1) putchar(X); else printf(X%d,q-expn); if(q-coef=-1) if(!q-expn) printf(-1)
19、; else if(q-expn=1) printf(-X); else printf(-X%d,q-expn); q=q-next; flag+; /while printf(n);/PrintPolynint compare(Polyn a,Polyn b) if(a&b) if(!b|a-expnb-expn) return 1; else if(!a|a-expnexpn) return -1; else return 0; else if(!a&b) return -1;/a多項(xiàng)式已空,但b多項(xiàng)式非空 else return 1;/b多項(xiàng)式已空,但a多項(xiàng)式非空/comparePoly
20、n AddPolyn(Polyn pa,Polyn pb)/求解并建設(shè)多項(xiàng)式a+b,返回其頭指針 Polyn qa=pa-next; Polyn qb=pb-next; Polyn headc,hc,qc; hc=(Polyn)malloc(sizeof(struct Polynomial);/建設(shè)頭結(jié)點(diǎn) hc-next=NULL; headc=hc; while(qa|qb) qc=(Polyn)malloc(sizeof(struct Polynomial); switch(compare(qa,qb) case 1: qc-coef=qa-coef; qc-expn=qa-expn; q
21、a=qa-next; break; case 0: qc-coef=qa-coef+qb-coef; qc-expn=qa-expn; qa=qa-next; qb=qb-next; break; case -1: qc-coef=qb-coef; qc-expn=qb-expn; qb=qb-next; break; /switch if(qc-coef!=0) qc-next=hc-next; hc-next=qc; hc=qc; else free(qc);/當(dāng)相加系數(shù)為0時(shí),釋放該結(jié)點(diǎn) /while return headc;/AddPolynPolyn SubtractPolyn(P
22、olyn pa,Polyn pb)/求解并建設(shè)多項(xiàng)式a+b,返回其頭指針 Polyn h=pb; Polyn p=pb-next; Polyn pd; while(p) /將pb的系數(shù)取反 p-coef*=-1; p=p-next; pd=AddPolyn(pa,h); for(p=h-next;p;p=p-next) /恢復(fù)pb的系數(shù) p-coef*=-1; return pd;/SubtractPolynint main() int m,n,flag=0; float x; Polyn pa=0,pb=0,pc,pd,pe,pf;/定義各式的頭指針,pa與pb在使用前付初值NULL pri
23、ntf(*歡迎您的使用*n); printf(請(qǐng)輸入多項(xiàng)式a的項(xiàng)數(shù):); scanf(%d,&m); pa=CreatePolyn(pa,m);/建設(shè)多項(xiàng)式a printf(*n); printf(請(qǐng)輸入多項(xiàng)式b的項(xiàng)數(shù):); scanf(%d,&n); pb=CreatePolyn(pb,n);/建設(shè)多項(xiàng)式b /輸出菜單 printf(*n); printf(功能項(xiàng):nt1.輸出多項(xiàng)式a和bnt2.建設(shè)多項(xiàng)式a+bnt3.建設(shè)多項(xiàng)式a-bn); printf(t4.退出n*請(qǐng)輸入功能項(xiàng)編號(hào)*n); for(;flag=0) printf(執(zhí)行操作:); scanf(%d,&flag); if(flag=1) printf(多項(xiàng)式a:);PrintPolyn(pa); printf(多項(xiàng)式b:);PrintPolyn(pb);printf(*請(qǐng)輸入功能項(xiàng)編號(hào)*n);continue; if(flag=2) pc=Add
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單詞卡印刷品產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 個(gè)人用紙香皂產(chǎn)品供應(yīng)鏈分析
- 商業(yè)評(píng)估行業(yè)經(jīng)營(yíng)分析報(bào)告
- 用戶可編程的未配置擬人機(jī)器人細(xì)分市場(chǎng)深度研究報(bào)告
- 發(fā)掘領(lǐng)域的研究行業(yè)經(jīng)營(yíng)分析報(bào)告
- 基金投資咨詢行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 大米拋光機(jī)產(chǎn)品供應(yīng)鏈分析
- 冷熱飲料機(jī)出租行業(yè)營(yíng)銷策略方案
- 移動(dòng)無(wú)線電話細(xì)分市場(chǎng)深度研究報(bào)告
- 家用電動(dòng)水果榨汁機(jī)產(chǎn)品供應(yīng)鏈分析
- 水利工程監(jiān)理工作程序
- 醫(yī)學(xué)影像診斷學(xué)-教案
- 小學(xué)語(yǔ)文單元教學(xué)內(nèi)容整合策略
- 血液及骨髓細(xì)胞形態(tài)學(xué)專項(xiàng)考核試題
- 水稻高產(chǎn)栽培技術(shù)的優(yōu)化研究
- 海洋牧場(chǎng)建設(shè)與規(guī)劃
- 律師執(zhí)業(yè)風(fēng)險(xiǎn)及防范措施
- 急性腎損傷完
- 社區(qū)矯正人員居住地變更申請(qǐng)書(shū)
- 運(yùn)動(dòng)員宣誓詞
- 生物傳感器技術(shù)在電子元件中的應(yīng)用
評(píng)論
0/150
提交評(píng)論