用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算課程設(shè)計(jì)_第1頁(yè)
用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算課程設(shè)計(jì)_第2頁(yè)
用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算課程設(shè)計(jì)_第3頁(yè)
用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算課程設(shè)計(jì)_第4頁(yè)
用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算課程設(shè)計(jì)武漢理工大學(xué)華夏學(xué)院課程設(shè)計(jì)報(bào)告書課程名稱:數(shù)據(jù)結(jié)構(gòu)與算法分析題目:用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算系名:信息工程系專業(yè)班級(jí):姓名:學(xué)號(hào):指導(dǎo)教師:7>2014年1月3日武漢理工大學(xué)華夏學(xué)院信息工程系課程設(shè)計(jì)任務(wù)書課程名稱:數(shù)據(jù)結(jié)構(gòu)與算法分析指導(dǎo)教師班級(jí)名稱:開課系、教研室:一、課程設(shè)計(jì)目的與任務(wù)《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)是為訓(xùn)練學(xué)生的數(shù)據(jù)組織能力和提高程序設(shè)計(jì)能力而設(shè)置的增強(qiáng)實(shí)踐能力的課程。目的:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程,旨在使學(xué)生學(xué)會(huì)分析研究數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)的組織方法,以便選擇合適的數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)以及相應(yīng)操作,把現(xiàn)實(shí)世界中的問題轉(zhuǎn)換為計(jì)算機(jī)內(nèi)部的表示和處理,這就是一個(gè)良好的程序設(shè)計(jì)技能訓(xùn)練的過程。提高學(xué)生的程序設(shè)計(jì)能力、掌握基本知識(shí)、基本技能,提高算法設(shè)計(jì)質(zhì)量與程序設(shè)計(jì)素質(zhì)的培養(yǎng)就是本門課程的課程設(shè)計(jì)的目的。任務(wù):根據(jù)題目要求,完成算法設(shè)計(jì)與程序?qū)崿F(xiàn),并按規(guī)定寫出課程設(shè)計(jì)報(bào)告。二、課程設(shè)計(jì)的內(nèi)容與基本要求設(shè)計(jì)題目:用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算〔問題描述〕輸入并建立兩個(gè)多項(xiàng)式并輸出多項(xiàng)式設(shè)計(jì)一個(gè)程序:對(duì)兩個(gè)多項(xiàng)式進(jìn)行加、減法運(yùn)算,建立一個(gè)新多項(xiàng)式并輸出?!矊?shí)現(xiàn)提示〕:選擇單鏈表存儲(chǔ)多項(xiàng)式具體要完成的任務(wù)是:A.編制完成上述問題的C語(yǔ)言程序、進(jìn)行程序調(diào)試并能得出正確的運(yùn)行結(jié)果。B.寫出規(guī)范的課程設(shè)計(jì)報(bào)告書;三、課程設(shè)計(jì)步驟及時(shí)間進(jìn)度和場(chǎng)地安排時(shí)間:本課程設(shè)計(jì)安排在第18周地點(diǎn):現(xiàn)代教育中心具體時(shí)間安排如下:第一天:布置題目,確定任務(wù)、查找相關(guān)資料第二天~第四天:功能分析,編寫程序,調(diào)試程序、運(yùn)行系統(tǒng);第五天上午:撰寫設(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)告書的質(zhì)量、態(tài)度、考勤、答辯情況等各因素。具體評(píng)分標(biāo)準(zhǔn)如下:(1)設(shè)計(jì)方案正確,具有可行性、創(chuàng)新性;30分(2)系統(tǒng)開發(fā)效果較好;20分(3)設(shè)計(jì)報(bào)告規(guī)范、課程設(shè)計(jì)報(bào)告質(zhì)量高;20分(4)課程設(shè)計(jì)答辯時(shí),問題回答正確;20分(5)態(tài)度認(rèn)真、刻苦鉆研、遵守紀(jì)律;10分按上述五項(xiàng)分別記分后求和,總分按五級(jí)制記載最后成績(jī)。優(yōu)秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),不及格(0~59分)設(shè)計(jì)題目用C語(yǔ)言實(shí)現(xiàn)一元多項(xiàng)式的加減法計(jì)算〔問題描述〕輸入并建立兩個(gè)多項(xiàng)式并輸出多項(xiàng)式開發(fā)環(huán)境、采用的語(yǔ)言開發(fā)環(huán)境:vc6.0/windowsxp采用的語(yǔ)言:C語(yǔ)言設(shè)計(jì)思想我的設(shè)計(jì)思想是輸入按冪項(xiàng)從大到小輸入一元多項(xiàng),并將一元多項(xiàng)式相等冪項(xiàng)進(jìn)行加減運(yùn)算,在加法運(yùn)算中將無(wú)相等冪項(xiàng)直接輸入到結(jié)果單鏈表中,在減法運(yùn)算中將被減的一元多項(xiàng)式的無(wú)相等冪項(xiàng)直接輸入到結(jié)果單鏈表中,將減項(xiàng)的一元多項(xiàng)式的無(wú)相等冪項(xiàng)變號(hào)后輸出到結(jié)果單鏈表中,輸入2個(gè)方程式之后可以得出2式相加、相減的全部結(jié)果,也是簡(jiǎn)化了算法運(yùn)行時(shí)間難度。雖然浪費(fèi)了一些計(jì)算能力,但是簡(jiǎn)化了代碼復(fù)雜度。程序總的流程圖圖一:程序流程圖數(shù)據(jù)結(jié)構(gòu)說明及模塊算法說明數(shù)據(jù)結(jié)構(gòu)說明:使用單鏈表來(lái)表示一元多項(xiàng)式:typedefstructlinklistintmi;//mi是冪項(xiàng)intxishu;//xishu是系數(shù)structlinklist*next;//next*list;模塊算法說明listcreatpolyvoid創(chuàng)建一個(gè)新的一元多項(xiàng)式,用do循環(huán)輸入一元多項(xiàng)式,以“系數(shù),冪項(xiàng)”的格式輸入數(shù)據(jù),當(dāng)系數(shù)與冪項(xiàng)同時(shí)為零時(shí)停止輸入。voidprintpolylisthead輸出一個(gè)一元多項(xiàng)式,將多項(xiàng)式從頭到尾輸出,使用一個(gè)IF語(yǔ)句來(lái)區(qū)分第一項(xiàng)前是否有加號(hào),使用一個(gè)whlie在當(dāng)p-不為NULL時(shí),進(jìn)行循環(huán)輸出+ax^b的形式,當(dāng)a為零時(shí)輸出空白,當(dāng)b為零時(shí)輸出+ax,當(dāng)a0時(shí)輸出-ax^b的形式,等等。以應(yīng)對(duì)多項(xiàng)式中出現(xiàn)的各種情況。listaddpolylistpa,listpb 將兩個(gè)多項(xiàng)式執(zhí)行pa+pb的計(jì)算,從高冪次項(xiàng)向低冪次項(xiàng),無(wú)等冪項(xiàng)直接將數(shù)值輸出結(jié)果單鏈表,有等冪項(xiàng)兩系數(shù)相加后輸出到結(jié)果單鏈表中。listmisepolylistpa,listpb 將兩個(gè)多項(xiàng)式執(zhí)行pa-pb的計(jì)算,從高冪次項(xiàng)向低冪次項(xiàng),無(wú)等冪項(xiàng)的pa式中直接將數(shù)值輸出結(jié)果單鏈表、pb式中將系數(shù)變號(hào)后輸出到結(jié)果單鏈表中,有等冪項(xiàng)兩系數(shù)相減后輸出到結(jié)果單鏈表中。intmainvoid 主函數(shù),具有部分交互界面以及各個(gè)函數(shù)的調(diào)用過程??梢栽谥骱瘮?shù)中選擇是否不斷的進(jìn)行運(yùn)算,用一個(gè)while來(lái)循環(huán)整個(gè)程序。程序運(yùn)行說明及結(jié)果截圖程序開始運(yùn)行輸入第一個(gè)一元多項(xiàng)式:圖二:算法的開始輸入第一個(gè)一元多項(xiàng)式之后輸入第二個(gè)一元多項(xiàng)式:圖三:第一個(gè)多項(xiàng)式輸入結(jié)束程序運(yùn)算后得到結(jié)果:圖四:運(yùn)算結(jié)束之后得到結(jié)果按下1后程序繼續(xù)運(yùn)行:圖五:按下1后程序繼續(xù)運(yùn)行程序調(diào)試及測(cè)試過程記載本程序從源碼開始經(jīng)過多次調(diào)試,一開始創(chuàng)建一元多項(xiàng)式并沒有遇到什么問題,但是在一元多項(xiàng)式的加法時(shí)遇到一些問題,在不從高到低的順序輸入時(shí)會(huì)導(dǎo)致計(jì)算混亂,多出很多項(xiàng)。后來(lái)將項(xiàng)從高到底順序輸入,并且沒有重復(fù)冪項(xiàng)時(shí),此問題解決。然后是減法運(yùn)算,若第一個(gè)多項(xiàng)式中沒有比如5次冪項(xiàng),而第二個(gè)多項(xiàng)式中有5次冪項(xiàng),1式減2式的結(jié)果卻為正的五次冪項(xiàng),經(jīng)過修改后,無(wú)此問題。最后是輸出時(shí)產(chǎn)生的問題,第一項(xiàng)的輸出若為正的情況是沒有符號(hào)的,若第一項(xiàng)系數(shù)為零時(shí)還會(huì)輸出一個(gè)零的情況,還有加法運(yùn)算或者減法運(yùn)算后,其計(jì)算結(jié)果前面沒有‘+’號(hào)的情況,最后將程序制作成可以自動(dòng)識(shí)別正負(fù)項(xiàng)以及零項(xiàng)??偨Y(jié)及心得體會(huì)這次數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì)讓我加深了對(duì)數(shù)據(jù)結(jié)構(gòu)的理解,同時(shí)也明白了更多知識(shí)。讓我加深了對(duì)單鏈表的運(yùn)用。在制作這個(gè)程序的同時(shí),加深了我對(duì)C語(yǔ)言的運(yùn)用以及理解,讓我的編譯水平的到了一定的提高。我覺得自己的能力提高了,也讓我明白數(shù)據(jù)結(jié)構(gòu)在生活中的運(yùn)用。我明白了理論與實(shí)際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫大型程序的能力。培養(yǎng)了基本的、良好的程序設(shè)計(jì)技能以及合作能力。這次課程設(shè)計(jì)同樣提高了我的綜合運(yùn)用所學(xué)知識(shí)的能力。并對(duì)VC有了更深入的了解?!稊?shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程,上機(jī)實(shí)習(xí)是對(duì)學(xué)生全面綜合素質(zhì)進(jìn)行訓(xùn)練的一種最基本的方法,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個(gè)教學(xué)環(huán)節(jié)。上機(jī)實(shí)習(xí)一方面能使書本上的知識(shí)變“活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的;另一方面,上機(jī)實(shí)習(xí)是對(duì)學(xué)生軟件設(shè)計(jì)的綜合能力的訓(xùn)練,包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧的訓(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"要求:按冪從大到小的次序輸入各個(gè)結(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/*兩個(gè)多項(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/*兩個(gè)多項(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個(gè)一元多項(xiàng)式\n";poly1creatpoly;printf"建立第2個(gè)一元多項(xiàng)式\n";poly2creatpoly;poly3addpolypoly1,poly2;poly4misepolypoly1,poly2;poly5misepolypoly2,poly1;printf"第1個(gè)一元多項(xiàng)式為\n";printpolypoly1;printf"第2個(gè)一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論