C語(yǔ)言課程設(shè)計(jì)一元多項(xiàng)式_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)一元多項(xiàng)式_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)一元多項(xiàng)式_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)一元多項(xiàng)式_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)一元多項(xiàng)式_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、NO.1課程設(shè)計(jì)說(shuō)明書(shū)一元多項(xiàng)式計(jì)算系統(tǒng)1、課程設(shè)計(jì)目的(1)較熟練地掌握C語(yǔ)言的基本內(nèi)容及程序設(shè)計(jì)的基本方法與編程技巧。(2)較熟練地掌握在系統(tǒng)上編輯、編譯、連接和運(yùn)行C程序的方法。(3)通過(guò)設(shè)計(jì)一個(gè)完整程序,掌握數(shù)據(jù)結(jié)構(gòu)的算法編寫(xiě)、類(lèi)C語(yǔ)言算法轉(zhuǎn)換成C程序并上機(jī)調(diào)試的基本方法。2、課程設(shè)計(jì)方案論證2.1 設(shè)計(jì)思路設(shè)計(jì)一個(gè)稀疏多項(xiàng)式簡(jiǎn)單計(jì)算器。用戶(hù)輸入兩個(gè)多項(xiàng)式的項(xiàng)數(shù)、系數(shù)與指數(shù),計(jì)算加減等的結(jié)果。2.1. .2功能設(shè)計(jì):提示用戶(hù)輸入兩個(gè)多項(xiàng)式A和B,輸入形式為:1)先輸入多項(xiàng)式A的項(xiàng)數(shù),2)回車(chē),3)輸入多項(xiàng)式A第一項(xiàng)的系數(shù),每一項(xiàng)按照先輸入系數(shù),4)空格或回車(chē);5)輸入多項(xiàng)式A第一項(xiàng)的指

2、數(shù),6)繼續(xù)輸入多項(xiàng)式A的其他項(xiàng),輸入方式與上同;7)再建立多項(xiàng)式B,數(shù)據(jù)輸入方式與建立多項(xiàng)式A相同。NO.2課程設(shè)計(jì)說(shuō)明書(shū)每輸入一個(gè)數(shù)字,則計(jì)算出相應(yīng)的值并輸出,然后繼續(xù)輸入功能選擇項(xiàng)。圖1:功能模塊圖NO.3課程設(shè)計(jì)說(shuō)明書(shū)LINESubLINE(LINEs,LINEg)/*求多項(xiàng)式A-B*/圖2:多項(xiàng)式差流程圖NO.4課程設(shè)計(jì)說(shuō)明書(shū)voidDestroyLINE(LINEp)/*銷(xiāo)毀多項(xiàng)式*/圖3:銷(xiāo)毀多項(xiàng)式流程圖文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.課程設(shè)計(jì)說(shuō)明書(shū)NO.5兩個(gè)多項(xiàng)式相乘時(shí)(假設(shè)第一個(gè)為m項(xiàng),第二個(gè)為n項(xiàng))只要第一個(gè)多項(xiàng)式的每一項(xiàng)的系數(shù)乘以第二個(gè)多項(xiàng)

3、式每一項(xiàng)的系數(shù),指數(shù)加上第二個(gè)多項(xiàng)式的指數(shù)??梢缘玫絤個(gè)新的多項(xiàng)式。然后把這m個(gè)多項(xiàng)式按照指數(shù)相同的進(jìn)行相加。合并成一個(gè)多項(xiàng)式即可。假設(shè)有兩個(gè)一元多項(xiàng)式:P1(X)=XA2+2X+3P2(X)=3XA3+10X+6計(jì)算它們的和:P1(X)+P2(X)=(XA2+2X+3)+(3XA3+10X+6)=3XA3+1XA2+12XA1+9部分代碼描述如下:for(;qa;qa=qa->next)for(qb=pb->next;qb;qb=qb->next)qc=newPolynomial;qc->coef=qa->coef*qb->coef;qc->exp=

4、qa->exp+qb->exp;InsertNode(qc,headf);課程設(shè)計(jì)說(shuō)明書(shū)NO.62.2源程序清單#include<stdio.h>#include<ctime>#include<stdlib.h>typedefstructlinefloatcoef;intexp;line*next;*LINE;voidPrintLINE(LINEP);voidInsert(LINEp,LINEhead);LINECreateLINE(LINEhead,intm);voidDestroyLINE(LINEp);intcomsre(LINEa,LIN

5、Eb);LINEAddLINE(LINEs,LINEg);LINESubLINE(LINEs,LINEg);#include<math.h>voidPrintLINE(LINEP)LINEq=P->next;intflag=1;if(!q)putchar('O');printf("n");return;while(q)if(q->coef>0&&flag!=1)NO.7課程設(shè)計(jì)說(shuō)明書(shū)putchar('+');if(q->coef!=1&&q->coef!=-1)prin

6、tf("%g",q->coef);if(q->exp=1)putchar('X');elseif(q->exp)printf("XA%d",q->exp);elseif(q->coef=1)if(!q->exp)putchar('l');elseif(q->exp=1)putchar('X');elseprintf("XA%d",q->exp);if(q->coef=-1)if(!q->exp)printf("-1&q

7、uot;);elseif(q->exp=1)printf("-X");elseprintf("-XA%d",q->exp);NO.8課程設(shè)計(jì)說(shuō)明書(shū)q=q->next;flag+;printf("n");voidInsertNode(LINEp,LINEhead)if(p->coef=0)deletep;elseLINEq1,q2;q1=head;q2=head->next;while(q2!=NULL&&p->exp<q2->exp)q1=q2;q2=q2->nex

8、t;if(q2!=NULL&&p->exp=q2->exp)q2->coef+=p->coef;deletep;if(!q2->coef)NO.9課程設(shè)計(jì)說(shuō)明書(shū)q1->next=q2->next;deleteq2;elsep->next=q2;q1->next=p;LINECreateLINE(LINEhead,intm)LINEp;p=head=newline;head->next=NULL;for(inti=0;i<m;i+)p=newline;printf("請(qǐng)輸入第%d項(xiàng)的系數(shù)與指數(shù)(空格或回車(chē)

9、隔開(kāi)):",i+1);scanf("%f%d",&p->coef,&p->exp);InsertNode(p,head);returnhead;intComsre(LINEa,LINEb)課程設(shè)計(jì)說(shuō)明書(shū)NO.10if(a&&b)if(!b|a->exp>b->exp)return1;elseif(!a|a->exp<b->exp)return-1;elsereturn0;elseif(!a&&b)return-1;elsereturn1;voidDestroyLINE(

10、LINEp)LINEq1,q2;q1=p->next;if(q1=NULL)return;q2=q1->next;while(q1->next)課程設(shè)計(jì)說(shuō)明書(shū)NO.11deleteq1;q1=q2;q2=q2->next;LINEAddLINE(LINEs,LINEg)LINEqa=s->next;LINEqb=g->next;LINEheada,hc,qc;hc=newline;hc->next=NULL;heada=hc;while(qa|qb)qc=newline;switch(Comsre(qa,qb)case1:qc->coef=qa-

11、>coef;qc->exp=qa->exp;qa=qa->next;break;case0:課程設(shè)計(jì)說(shuō)明書(shū)NO.12qc->coef=qa->coef+qb->coef;qc->exp=qa->exp;qa=qa->next;qb=qb->next;break;case-1:qc->coef=qb->coef;qc->exp=qb->exp;qb=qb->next;break;if(qc->coef!=0)qc->next=hc->next;hc->next=qc;hc=qc

12、;elsedeleteqc;returnheada;LINESubLINE(LINEs,LINEg)LINEp1,p2,heads;NO.13課程設(shè)計(jì)說(shuō)明書(shū)p1=g;p2=g->next;while(p2)p2->coef*=-1;p2=p2->next;heads=AddLINE(s,p1);for(p2=p1->next;p2;p2=p2->next)p2->coef*=-1;returnheads;intmain()time_tt;time(&t);printf("t§輸出:各種運(yùn)算后的結(jié)果皿ttn");print

13、f("%s",ctime(&t);intm,n,i;LINEs=0,g=0,pc,pd;printf(”請(qǐng)輸入多項(xiàng)式A項(xiàng)數(shù):");scanf("%d",&m);s=CreateLINE(s,m);printf(”請(qǐng)輸入多項(xiàng)式B項(xiàng)數(shù):");scanf("%d",&n);g=CreateLINE(g,n);printf("tttprintf("tprintf("tprintf("t【功能選擇項(xiàng)】1.輸出多項(xiàng)式3.計(jì)算多項(xiàng)式5.退出nt=A和BIt2.計(jì)算多

14、項(xiàng)式A+BIn");A-BIt4.重新創(chuàng)建多項(xiàng)式|n");n");Itn");課程設(shè)計(jì)說(shuō)明書(shū)NO.14n");printf("t=doprintf("t請(qǐng)輸入選擇:");scanf("%d",&i);switch(i)case1:printf("t多項(xiàng)式A=:");PrintLINE(s);printf("t多項(xiàng)式B=:");PrintLINE(g);break;case2:pc=AddLINE(s,g);printf("tA+B=:&q

15、uot;);PrintLINE(pc);DestroyLINE(pc);break;case3:pd=SubLINE(s,g);printf("tA-B=:");PrintLINE(pd);DestroyLINE(pd);break;NO.15課程設(shè)計(jì)說(shuō)明書(shū)case 4:printf(”請(qǐng)輸入多項(xiàng)式A項(xiàng)數(shù):");scanf("%d",&m);s=CreateLINE(s,m);printf(”請(qǐng)輸入多項(xiàng)式B項(xiàng)數(shù):");scanf("%d",&n);g=CreateLINE(g,n);break;ca

16、se 5:printf("歡迎再次使用!n");system("pause");break;default:printf("t輸入錯(cuò)誤!n");break;while(i!=5);DestroyLINE(s);DestroyLINE(g);return0;NO.16課程設(shè)計(jì)說(shuō)明書(shū)3、課程設(shè)計(jì)運(yùn)行結(jié)果與分析圖4:初始界面課程設(shè)計(jì)說(shuō)明書(shū)NO.17圖5:功能菜單課程設(shè)計(jì)說(shuō)明書(shū)NO.18輸入1,輸出多項(xiàng)式A和B圖6:輸出功能NO.19課程設(shè)計(jì)說(shuō)明書(shū)輸入2:求多項(xiàng)式A與B的和圖7:多項(xiàng)式和的計(jì)算NO.20課程設(shè)計(jì)說(shuō)明書(shū)輸入3:求多項(xiàng)式A和B的差

17、圖8:多項(xiàng)式差的計(jì)算課程設(shè)計(jì)說(shuō)明書(shū)NO.21輸入4:重新輸入多項(xiàng)式圖9:重置多項(xiàng)式輸入5:退出系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)NO.22圖10:退出課程設(shè)計(jì)說(shuō)明書(shū)NO.234、課程設(shè)計(jì)體會(huì)一學(xué)期的時(shí)間,學(xué)完了數(shù)據(jù)結(jié)構(gòu),接下來(lái)就是要學(xué)以致用,做課程設(shè)計(jì)。雖然數(shù)據(jù)結(jié)構(gòu)是一門(mén)公認(rèn)的比較難的課程,自己學(xué)起來(lái)也覺(jué)得有些吃力,但在本次課程設(shè)計(jì)之前,我系統(tǒng)地把教科書(shū)復(fù)習(xí)了一遍,大大加深了對(duì)各種數(shù)據(jù)結(jié)構(gòu)的理解,運(yùn)用起來(lái)更加自如。不斷地翻閱各種參考書(shū),以及在老師和同學(xué)的幫助下,基本上考慮到了所有的邊界情況,反復(fù)測(cè)試各種類(lèi)型的數(shù)據(jù),強(qiáng)化程序的健壯性,最終順利完成了本次課程設(shè)計(jì)。完成設(shè)計(jì)后,我覺(jué)得收獲不少,首先是自己首次應(yīng)用所學(xué)知識(shí)做出了這個(gè)一元稀疏多項(xiàng)式計(jì)算器程序,以前從未做過(guò)這樣大(這是對(duì)我而言,在專(zhuān)業(yè)人仕看來(lái)是小菜一碟)的程序,多少心里有點(diǎn)甜美的感覺(jué);再次是自己本次所寫(xiě)的程序基本上考慮到了所有的特殊情況,程序運(yùn)行不管輸入什么數(shù)據(jù)都不會(huì)有差錯(cuò),這對(duì)個(gè)人來(lái)講是一個(gè)很大的進(jìn)步。完成設(shè)計(jì)是在一定時(shí)間內(nèi)完成的,在完成這個(gè)設(shè)計(jì)時(shí),我做得顯然有一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論