C語(yǔ)言課程設(shè)計(jì)報(bào)告(多項(xiàng)式簡(jiǎn)單的計(jì)算器)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告(多項(xiàng)式簡(jiǎn)單的計(jì)算器)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告(多項(xiàng)式簡(jiǎn)單的計(jì)算器)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告(多項(xiàng)式簡(jiǎn)單的計(jì)算器)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告(多項(xiàng)式簡(jiǎn)單的計(jì)算器)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第4章使用說明與執(zhí)行結(jié)果第4章使用說明與執(zhí)行結(jié)果運(yùn)行操作及結(jié)果:建立多項(xiàng)式Pa:建立多項(xiàng)式Pb:選擇操作:1、Pa+Pb2、Pa-Pb沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告參考文獻(xiàn)參考文獻(xiàn)[1]張長(zhǎng)海.C語(yǔ)言程設(shè)計(jì)[M].北京:高等教育出版社,2006[2]阮宏一.數(shù)據(jù)結(jié)構(gòu)(C/C++描述)[M].北京:中國(guó)水利水電出版社,2007[3]王敬華林萍張清國(guó).C語(yǔ)言程設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2009[4]秦玉平馬靖善.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].北京:清華大學(xué)出版社,2005[5]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2010沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告附錄附錄(程序清單)程序源代碼:#include<iostream.h>#include<malloc.h>#include<conio.h>#include<stdlib.h>#include<stdio.h>typedefstructterm{ floatcoef; intexpn; structterm*next;}term,*LinkList;voidCreateList_L(LinkList&L,intm);charcmp(intqa_expn,intqb_expn);voidAddPolyn(LinkList&Pa,LinkList&Pb);voidPrintPolyn(LinkListp);voidCreateList_L(LinkList&L,intm){ inti; term*p; L=(term*)malloc(sizeof(term)); L->next=NULL; for(i=m;i>0;--i) {p=(term*)malloc(sizeof(term)); printf("系數(shù)="); scanf("%f",&p->coef); printf("指數(shù)="); scanf("%d",&p->expn); printf("第%d項(xiàng)為%fx^%d\n",m-i+1,p->coef,p->expn); p->next=L->next; L->next=p; }if(m) { printf("建立成功:\n");}elseprintf("ANULL");}voidPrintPolyn(LinkListp){term*q;intflag=0;q=p->next;if(p->next==NULL){printf("0\n");return;}while(flag==0){if(q->coef>0&&p->next!=q)printf("+");if(q->coef==1);elseif(q->coef==-1)printf("-");elseprintf("%f",q->coef);if(q->expn!=0&&q->expn!=1)printf("x^%d",q->expn);elseif(q->expn==1)printf("x");elseif((q->coef==1)||(q->coef==-1))printf("1");if(q->next==NULL)flag=1;elseq=q->next;}printf("\n");}voidAddPolyn(LinkList&Pa,LinkList&Pb){ term*qa,*qb,*pre,*u; floatsum; pre=Pa; qa=Pa->next; qb=Pb->next; while(qa&&qb) switch(cmp(qa->expn,qb->expn)) { case'<': pre=qa;qa=qa->next;break; case'=': sum=qa->coef+qb->coef; if(sum!=0.0) { qa->coef=sum;pre=qa; } else { pre->next=qa->next;free(qa); } qa=pre->next; u=qb; qb=qb->next; free(u);break; case'>': u=qb->next;qb->next=qa;pre->next=qb;pre=qb;qb=u;break; } if(!qa)pre->next=qb; free(Pb); return;}voidMinusPolyn(LinkList&Pa,LinkList&Pb){ term*qa,*qb,*pre,*u; floatminus; pre=Pa; qa=Pa->next; qb=Pb->next;while(qa&&qb) switch(cmp(qa->expn,qb->expn)) { case'<': pre=qa;qa=qa->next;break; case'=': minus=qa->coef-qb->coef; if(minus!=0.0) { qa->coef=minus;pre=qa; } else { pre->next=qa->next;free(qa); } qa=pre->next; u=qb; qb=qb->next; free(u);break; case'>': u=qb->next;qb->next=qa;pre->next=qb;pre=qb;qb=u;break; } if(!qa)pre->next=qb; free(Pb); return;}charcmp(intqa_expn,intqb_expn){ if(qa_expn==qb_expn)return'='; elseif(qa_expn>qb_expn)return'>'; elsereturn'<';}voidmain(){printf("**************************************************\n"); printf("**\n");printf("*-多項(xiàng)式計(jì)算器-*\n"); printf("**\n"); printf("*歡迎使用*\n"); printf("**\n"); printf("**************************************************\n"); printf("提示:本程序適用于對(duì)最簡(jiǎn)多項(xiàng)式的操作\n"); printf("\n"); term*Pa,*Pb,*p; intInitLNodeNum_Pa,InitLNodeNum_Pb,select,flag; flag=1; printf("請(qǐng)輸入多項(xiàng)式Pa的項(xiàng)數(shù)\n"); scanf("%d",&InitLNodeNum_Pa); printf("從高次到低次輸入多項(xiàng)式Pa各項(xiàng)\n"); CreateList_L(Pa,InitLNodeNum_Pa); PrintPolyn(Pa); printf("\n"); printf("請(qǐng)輸入多項(xiàng)式Pb的項(xiàng)數(shù)\n"); scanf("%d",&InitLNodeNum_Pb); printf("從高次到低次輸入多項(xiàng)式Pb各項(xiàng)\n"); CreateList_L(Pb,InitLNodeNum_Pb); PrintPolyn(Pb); printf("\n"); printf("==============================\n"); printf("請(qǐng)選擇操作:\n"); printf("1、Pa+Pb\n"); printf("2、Pa-Pb\n"); printf("3、quit\n"); scanf("%d",&select); if(select==1) AddPolyn(Pa,Pb); if(select==2) MinusPolyn(Pa,Pb); if(select==3) exit(0); printf("結(jié)果為:\n"); p=Pa; PrintPolyn(p); printf("\n"); printf("OK...!\n"); getch();}沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告

課程設(shè)計(jì)總結(jié):經(jīng)歷了兩周的C語(yǔ)言課程設(shè)計(jì),我對(duì)C語(yǔ)言有了更深入的了解。剛拿到題目時(shí)以為是簡(jiǎn)單的具有比較功能的計(jì)算器,頭腦中有了初步的構(gòu)思,可當(dāng)我提起筆寫程序時(shí),才發(fā)現(xiàn)并不是我想的那么簡(jiǎn)單。在圖書館查閱了一天的資料之后,發(fā)現(xiàn)多項(xiàng)式計(jì)算器與數(shù)據(jù)結(jié)構(gòu)息息相關(guān),便借了幾本有關(guān)數(shù)據(jù)結(jié)構(gòu)的參考書。經(jīng)過研讀書中的算法分析和圖形演示,我對(duì)多項(xiàng)式計(jì)算器的編寫也有了更深的理解??僧?dāng)我把寫好的程序輸入電腦進(jìn)行調(diào)試時(shí),出來的錯(cuò)誤又讓我感到很是迷茫,之后當(dāng)我把錯(cuò)誤一點(diǎn)點(diǎn)找出來,糾正后,心中就有了一種難以言表的喜悅!這次C語(yǔ)言的課程設(shè)計(jì),加深了我對(duì)課堂講授內(nèi)容的理解,要使用c語(yǔ)言這個(gè)工具解決實(shí)際問題,就必須理解它。通過自己編寫程序,對(duì)于語(yǔ)法知識(shí)有了感性的認(rèn)識(shí),加深對(duì)它的理解,在理解的基礎(chǔ)上就會(huì)自然而然地掌握c語(yǔ)言的語(yǔ)法規(guī)定。同時(shí),也加強(qiáng)了我對(duì)程序開發(fā)環(huán)境以及計(jì)算機(jī)系統(tǒng)的操作方法的認(rèn)知。一個(gè)c語(yǔ)言程序要想運(yùn)行成功,從編輯、編譯、連接

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論