版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
用C語言實(shí)現(xiàn)一元多項(xiàng)式的加減法計算課程設(shè)計武漢理工大學(xué)華夏學(xué)院課程設(shè)計報告書課程名稱:數(shù)據(jù)結(jié)構(gòu)與算法分析題目:用C語言實(shí)現(xiàn)一元多項(xiàng)式的加減法計算系名:信息工程系專業(yè)班級:姓名:學(xué)號:指導(dǎo)教師:7>2014年1月3日武漢理工大學(xué)華夏學(xué)院信息工程系課程設(shè)計任務(wù)書課程名稱:數(shù)據(jù)結(jié)構(gòu)與算法分析指導(dǎo)教師班級名稱:開課系、教研室:一、課程設(shè)計目的與任務(wù)《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計是為訓(xùn)練學(xué)生的數(shù)據(jù)組織能力和提高程序設(shè)計能力而設(shè)置的增強(qiáng)實(shí)踐能力的課程。目的:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程,旨在使學(xué)生學(xué)會分析研究數(shù)據(jù)對象的特性,學(xué)會數(shù)據(jù)的組織方法,以便選擇合適的數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)以及相應(yīng)操作,把現(xiàn)實(shí)世界中的問題轉(zhuǎn)換為計算機(jī)內(nèi)部的表示和處理,這就是一個良好的程序設(shè)計技能訓(xùn)練的過程。提高學(xué)生的程序設(shè)計能力、掌握基本知識、基本技能,提高算法設(shè)計質(zhì)量與程序設(shè)計素質(zhì)的培養(yǎng)就是本門課程的課程設(shè)計的目的。任務(wù):根據(jù)題目要求,完成算法設(shè)計與程序?qū)崿F(xiàn),并按規(guī)定寫出課程設(shè)計報告。二、課程設(shè)計的內(nèi)容與基本要求設(shè)計題目:用C語言實(shí)現(xiàn)一元多項(xiàng)式的加減法計算〔問題描述〕輸入并建立兩個多項(xiàng)式并輸出多項(xiàng)式設(shè)計一個程序:對兩個多項(xiàng)式進(jìn)行加、減法運(yùn)算,建立一個新多項(xiàng)式并輸出。〔實(shí)現(xiàn)提示〕:選擇單鏈表存儲多項(xiàng)式具體要完成的任務(wù)是:A.編制完成上述問題的C語言程序、進(jìn)行程序調(diào)試并能得出正確的運(yùn)行結(jié)果。B.寫出規(guī)范的課程設(shè)計報告書;三、課程設(shè)計步驟及時間進(jìn)度和場地安排時間:本課程設(shè)計安排在第18周地點(diǎn):現(xiàn)代教育中心具體時間安排如下:第一天:布置題目,確定任務(wù)、查找相關(guān)資料第二天~第四天:功能分析,編寫程序,調(diào)試程序、運(yùn)行系統(tǒng);第五天上午:撰寫設(shè)計報告;第五天下午:程序驗(yàn)收、答辯。四、課程設(shè)計考核及評分標(biāo)準(zhǔn)課程設(shè)計考核將綜合考慮學(xué)生的系統(tǒng)設(shè)計方案、運(yùn)行結(jié)果、課程設(shè)計報告書的質(zhì)量、態(tài)度、考勤、答辯情況等各因素。具體評分標(biāo)準(zhǔn)如下:(1)設(shè)計方案正確,具有可行性、創(chuàng)新性;30分(2)系統(tǒng)開發(fā)效果較好;20分(3)設(shè)計報告規(guī)范、課程設(shè)計報告質(zhì)量高;20分(4)課程設(shè)計答辯時,問題回答正確;20分(5)態(tài)度認(rèn)真、刻苦鉆研、遵守紀(jì)律;10分按上述五項(xiàng)分別記分后求和,總分按五級制記載最后成績。優(yōu)秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),不及格(0~59分)設(shè)計題目用C語言實(shí)現(xiàn)一元多項(xiàng)式的加減法計算〔問題描述〕輸入并建立兩個多項(xiàng)式并輸出多項(xiàng)式開發(fā)環(huán)境、采用的語言開發(fā)環(huán)境:vc6.0/windowsxp采用的語言:C語言設(shè)計思想我的設(shè)計思想是輸入按冪項(xiàng)從大到小輸入一元多項(xiàng),并將一元多項(xiàng)式相等冪項(xiàng)進(jìn)行加減運(yùn)算,在加法運(yùn)算中將無相等冪項(xiàng)直接輸入到結(jié)果單鏈表中,在減法運(yùn)算中將被減的一元多項(xiàng)式的無相等冪項(xiàng)直接輸入到結(jié)果單鏈表中,將減項(xiàng)的一元多項(xiàng)式的無相等冪項(xiàng)變號后輸出到結(jié)果單鏈表中,輸入2個方程式之后可以得出2式相加、相減的全部結(jié)果,也是簡化了算法運(yùn)行時間難度。雖然浪費(fèi)了一些計算能力,但是簡化了代碼復(fù)雜度。程序總的流程圖圖一:程序流程圖數(shù)據(jù)結(jié)構(gòu)說明及模塊算法說明數(shù)據(jù)結(jié)構(gòu)說明:使用單鏈表來表示一元多項(xiàng)式:typedefstructlinklistintmi;//mi是冪項(xiàng)intxishu;//xishu是系數(shù)structlinklist*next;//next*list;模塊算法說明listcreatpolyvoid創(chuàng)建一個新的一元多項(xiàng)式,用do循環(huán)輸入一元多項(xiàng)式,以“系數(shù),冪項(xiàng)”的格式輸入數(shù)據(jù),當(dāng)系數(shù)與冪項(xiàng)同時為零時停止輸入。voidprintpolylisthead輸出一個一元多項(xiàng)式,將多項(xiàng)式從頭到尾輸出,使用一個IF語句來區(qū)分第一項(xiàng)前是否有加號,使用一個whlie在當(dāng)p-不為NULL時,進(jìn)行循環(huán)輸出+ax^b的形式,當(dāng)a為零時輸出空白,當(dāng)b為零時輸出+ax,當(dāng)a0時輸出-ax^b的形式,等等。以應(yīng)對多項(xiàng)式中出現(xiàn)的各種情況。listaddpolylistpa,listpb 將兩個多項(xiàng)式執(zhí)行pa+pb的計算,從高冪次項(xiàng)向低冪次項(xiàng),無等冪項(xiàng)直接將數(shù)值輸出結(jié)果單鏈表,有等冪項(xiàng)兩系數(shù)相加后輸出到結(jié)果單鏈表中。listmisepolylistpa,listpb 將兩個多項(xiàng)式執(zhí)行pa-pb的計算,從高冪次項(xiàng)向低冪次項(xiàng),無等冪項(xiàng)的pa式中直接將數(shù)值輸出結(jié)果單鏈表、pb式中將系數(shù)變號后輸出到結(jié)果單鏈表中,有等冪項(xiàng)兩系數(shù)相減后輸出到結(jié)果單鏈表中。intmainvoid 主函數(shù),具有部分交互界面以及各個函數(shù)的調(diào)用過程。可以在主函數(shù)中選擇是否不斷的進(jìn)行運(yùn)算,用一個while來循環(huán)整個程序。程序運(yùn)行說明及結(jié)果截圖程序開始運(yùn)行輸入第一個一元多項(xiàng)式:圖二:算法的開始輸入第一個一元多項(xiàng)式之后輸入第二個一元多項(xiàng)式:圖三:第一個多項(xiàng)式輸入結(jié)束程序運(yùn)算后得到結(jié)果:圖四:運(yùn)算結(jié)束之后得到結(jié)果按下1后程序繼續(xù)運(yùn)行:圖五:按下1后程序繼續(xù)運(yùn)行程序調(diào)試及測試過程記載本程序從源碼開始經(jīng)過多次調(diào)試,一開始創(chuàng)建一元多項(xiàng)式并沒有遇到什么問題,但是在一元多項(xiàng)式的加法時遇到一些問題,在不從高到低的順序輸入時會導(dǎo)致計算混亂,多出很多項(xiàng)。后來將項(xiàng)從高到底順序輸入,并且沒有重復(fù)冪項(xiàng)時,此問題解決。然后是減法運(yùn)算,若第一個多項(xiàng)式中沒有比如5次冪項(xiàng),而第二個多項(xiàng)式中有5次冪項(xiàng),1式減2式的結(jié)果卻為正的五次冪項(xiàng),經(jīng)過修改后,無此問題。最后是輸出時產(chǎn)生的問題,第一項(xiàng)的輸出若為正的情況是沒有符號的,若第一項(xiàng)系數(shù)為零時還會輸出一個零的情況,還有加法運(yùn)算或者減法運(yùn)算后,其計算結(jié)果前面沒有‘+’號的情況,最后將程序制作成可以自動識別正負(fù)項(xiàng)以及零項(xiàng)??偨Y(jié)及心得體會這次數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計讓我加深了對數(shù)據(jù)結(jié)構(gòu)的理解,同時也明白了更多知識。讓我加深了對單鏈表的運(yùn)用。在制作這個程序的同時,加深了我對C語言的運(yùn)用以及理解,讓我的編譯水平的到了一定的提高。我覺得自己的能力提高了,也讓我明白數(shù)據(jù)結(jié)構(gòu)在生活中的運(yùn)用。我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫大型程序的能力。培養(yǎng)了基本的、良好的程序設(shè)計技能以及合作能力。這次課程設(shè)計同樣提高了我的綜合運(yùn)用所學(xué)知識的能力。并對VC有了更深入的了解。《數(shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程,上機(jī)實(shí)習(xí)是對學(xué)生全面綜合素質(zhì)進(jìn)行訓(xùn)練的一種最基本的方法,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個教學(xué)環(huán)節(jié)。上機(jī)實(shí)習(xí)一方面能使書本上的知識變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的;另一方面,上機(jī)實(shí)習(xí)是對學(xué)生軟件設(shè)計的綜合能力的訓(xùn)練,包括問題分析,總體結(jié)構(gòu)設(shè)計,程序設(shè)計基本技能和技巧的訓(xùn)練。附錄:源代碼#include#include#includetypedefstructlinklistintmi;intxishu;structlinklist*next;*list;listcreatpolyvoidinta,n;inti1;listhead,s,p;printf"輸入一元多項(xiàng)式(以0,0標(biāo)志結(jié)束):\n";printf"要求:按冪從大到小的次序輸入各個結(jié)點(diǎn)\n";headlistmallocsizeofstructlinklist;head-nextNULL;phead;doprintf"第%d次-系數(shù),冪:",i;i++;scanf_s"%d,%d",&a,&n;ifa!0||n!0slistmallocsizeofstructlinklist;s-xishua;s-min;s-nextNULL;p-nexts;ps;whilea!0||n!0;printf"\n";returnhead;voidprintpolylistheadlistp;intfirst1;phead-next;whilep!NULLiffirstifp-xishu1printf"x^%d",p-mi;elseifp-xishu0printf"";elseifp-mi0printf"%d",p-xishu;elseprintf"%dx^%d",p-xishu,p-mi;first0;elseifp-xishu0ifp-mi1printf"+%dx",p-xishu;elseifp-mi0printf"+%d",p-xishu;elseprintf"+%dx^%d",p-xishu,p-mi;elseifp-xishu0ifp-mi1printf"%dx",p-xishu;elseifp-mi0printf"%d",p-xishu;elseprintf"%dx^%d",p-xishu,p-mi;elseprintf"";pp-next;printf"\n";listaddpolylistpa,listpb/*兩個多項(xiàng)式的加法運(yùn)算*/intn;listpc,s,p;/*pc是新產(chǎn)生的鏈表頭結(jié)點(diǎn)指針*/papa-next;pbpb-next;pclistmallocsizeofstructlinklist;/*產(chǎn)生附加的表頭結(jié)點(diǎn)*/pc-nextNULL;ppc;/*P指向PC鏈表的最后結(jié)點(diǎn)*/whilepa!NULL&&pb!NULLifpa-mipb-mislistmallocsizeofstructlinklist;/*建新結(jié)點(diǎn)*/s-mipa-mi;s-xishupa-xishu;s-nextNULL;p-nexts;ps;papa-next;elseifpa-mipb-mislistmallocsizeofstructlinklist;s-mipb-mi;s-xishupb-xishu;s-nextNULL;p-nexts;ps;pbpb-next;else/*兩項(xiàng)冪相等*/npa-xishu+pb-xishu;ifn!0slistmallocsizeofstructlinklist;s-xishun;s-mipa-mi;s-nextNULL;p-nexts;ps;papa-next;pbpb-next;whilepa!NULLslistmallocsizeofstructlinklist;s-mipa-mi;s-xishupa-xishu;s-nextNULL;p-nexts;ps;papa-next;whilepb!NULLslistmallocsizeofstructlinklist;s-mipb-mi;s-xishu-pb-xishu;s-nextNULL;p-nexts;ps;pbpb-next;returnpc;listmisepolylistpa,listpb/*兩個多項(xiàng)式的減法運(yùn)算*/intn;listpc,s,p;/*pc是新產(chǎn)生的鏈表頭結(jié)點(diǎn)指針*/papa-next;pbpb-next;pclistmallocsizeofstructlinklist;/*產(chǎn)生附加的表頭結(jié)點(diǎn)*/pc-nextNULL;ppc;/*P指向PC鏈表的最后結(jié)點(diǎn)*/whilepa!NULL&&pb!NULLifpa-mipb-mislistmallocsizeofstructlinklist;/*建新結(jié)點(diǎn)*/s-mipa-mi;s-xishupa-xishu;s-nextNULL;p-nexts;ps;papa-next;elseifpa-mipb-mislistmallocsizeofstructlinklist;s-mipb-mi;s-xishu-pb-xishu;s-nextNULL;p-nexts;ps;pbpb-next;else/*兩項(xiàng)冪相等*/npa-xishu-pb-xishu;ifn!0slistmallocsizeofstructlinklist;s-xishun;s-mipa-mi;s-nextNULL;p-nexts;ps;papa-next;pbpb-next;whilepa!NULLslistmallocsizeofstructlinklist;s-mipa-mi;s-xishupa-xishu;s-nextNULL;p-nexts;ps;papa-next;whilepb!NULLslistmallocsizeofstructlinklist;s-mipb-mi;s-xishu-pb-xishu;s-nextNULL;p-nexts;ps;pbpb-next;returnpc;intmainvoidintchoose;dolistpoly1,poly2,poly3,poly4,poly5;printf"建立第1個一元多項(xiàng)式\n";poly1creatpoly;printf"建立第2個一元多項(xiàng)式\n";poly2creatpoly;poly3addpolypoly1,poly2;poly4misepolypoly1,poly2;poly5misepolypoly2,poly1;printf"第1個一元多項(xiàng)式為\n";printpolypoly1;printf"第2個一
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【2021屆備考】2020全國名?;瘜W(xué)試題分類解析匯編:H單元-水溶液中的離子平衡
- 四川省綿陽2024-2025學(xué)年高二上學(xué)期數(shù)學(xué)期末模擬試題(六)(含答案)
- 【同步課堂】2020年化學(xué)人教版選修5教案:2-2-芳香烴
- 2023年職工醫(yī)保門診報銷新規(guī)定
- 上冊《角的初步認(rèn)識》課件設(shè)計
- 【備考專題】高考語文專題精講與新題賞析-專題-語言基礎(chǔ)和運(yùn)用2020年新題賞析(下)-課后練習(xí)
- 【名師一號】2020-2021學(xué)年高中英語選修六-第五單元綜合測評
- 【全程復(fù)習(xí)方略】2020-2021學(xué)年高中數(shù)學(xué)(人教A版選修2-1)課時作業(yè)-2.1.1曲線與方程
- 【學(xué)練考】2021-2022新高考人民版歷史必修二-專題測評六-羅斯福新政與當(dāng)代資本主義
- 信管部報告:2023年數(shù)字化轉(zhuǎn)型之路
- 品質(zhì)部規(guī)劃方案
- JGJT157-2014 建筑輕質(zhì)條板隔墻技術(shù)規(guī)程
- 2023-2024學(xué)年福建省泉州市惠安縣八年級(上)學(xué)期期末數(shù)學(xué)試題(含解析)
- 喬木移栽、栽植施工技術(shù)方案及方法
- 電性測試報告
- 債權(quán)債務(wù)清收工作方案
- 鼓脹教學(xué)查房
- 空調(diào)更換施工方案
- 普通高中思想政治課程標(biāo)準(zhǔn)
- 毛澤東詩詞作品欣賞
- 消化內(nèi)科交班本PDCA
評論
0/150
提交評論