版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)說明書 NO.1一元多項(xiàng)式計(jì)算系統(tǒng)1、課程設(shè)計(jì)目的(1)較熟練地掌握語言的基本內(nèi)容及程序設(shè)計(jì)的基本方法與編程技巧。(2)較熟練地掌握在系統(tǒng)上編輯、編譯、連接和運(yùn)行C程序的方法。(3)通過設(shè)計(jì)一個(gè)完整程序,掌握數(shù)據(jù)結(jié)構(gòu)的算法編寫、類C語言算法轉(zhuǎn)換成C程序并上機(jī)調(diào)試的基本方法。2、課程設(shè)計(jì)方案論證2.1 設(shè)計(jì)思路問題描述:設(shè)計(jì)一個(gè)稀疏多項(xiàng)式簡單計(jì)算器。用戶輸入兩個(gè)多項(xiàng)式的項(xiàng)數(shù)、系數(shù)與指數(shù),計(jì)算加減等的結(jié)果。2.1.2功能設(shè)計(jì):提示用戶輸入兩個(gè)多項(xiàng)式A和B,輸入形式為:1) 先輸入多項(xiàng)式A的項(xiàng)數(shù),2) 回車,3) 輸入多項(xiàng)式A第一項(xiàng)的系數(shù),每一項(xiàng)按照先輸入系數(shù),4) 空格或回車;5) 輸入多
2、項(xiàng)式A第一項(xiàng)的指數(shù),6) 繼續(xù)輸入多項(xiàng)式A的其他項(xiàng),輸入方式與上同;7) 再建立多項(xiàng)式B,數(shù)據(jù)輸入方式與建立多項(xiàng)式A相同。 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.2每輸入一個(gè)數(shù)字,則計(jì)算出相應(yīng)的值并輸出,然后繼續(xù)輸入功能選擇項(xiàng)。一元多項(xiàng)式計(jì)算輸入多項(xiàng)式A和B計(jì)算多項(xiàng)式A+B計(jì)算多項(xiàng)式A-B重置多項(xiàng)式A和B圖1:功能模塊圖 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.3LINE SubLINE(LINE s,LINE g)/*求多項(xiàng)式A-B*/開始LINE p1,p2,heads;p1=g;p2=g-nextWhile(p2)p2-coef*=-1; p2=p2-next;head=AddLINEp2=p
3、1-nextfor(p2=p1-next;p2;p2=p2-next)p2-coef=-1p2=p2-nextrenturnNNYY圖2:多項(xiàng)式差流程圖 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.4void DestroyLINE(LINE p) /*銷毀多項(xiàng)式*/圖3:銷毀多項(xiàng)式流程圖開始LINE q1,q2;q1=p-nextq1=NULLrenturnq2=q1-nextq1-nextdelete q1;q1=q2;q2=q2-next結(jié)束NNYY 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.5兩個(gè)多項(xiàng)式相乘時(shí)(假設(shè)第一個(gè)為m項(xiàng),第二個(gè)為n項(xiàng))只要第一個(gè)多項(xiàng)式的每一項(xiàng)的系數(shù)乘以第二個(gè)多項(xiàng)式每一項(xiàng)的系數(shù)
4、,指數(shù)加上第二個(gè)多項(xiàng)式的指數(shù)??梢缘玫絤個(gè)新的多項(xiàng)式。然后把這m個(gè)多項(xiàng)式按照指數(shù)相同的進(jìn)行相加。合并成一個(gè)多項(xiàng)式即可。假設(shè)有兩個(gè)一元多項(xiàng)式:P1(X) = X2 + 2X + 3P2(X) = 3X3 + 10X + 6計(jì)算它們的和:P1(X) + P2(X) = (X2 + 2X + 3) + (3X3 + 10X + 6)= 3X3 + 1X2 + 12X1 + 9部分代碼描述如下:for(;qa;qa=qa-next)for(qb=pb-next;qb;qb=qb-next) qc=new Polynomial;qc-coef=qa-coef*qb-coef;qc-exp=qa-exp+
5、qb-exp;InsertNode(qc,headf); 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.62.2 源程序清單#include#include#includetypedef struct line float coef; int exp; line *next;*LINE; void PrintLINE(LINE P); void Insert(LINE p,LINE head); LINE CreateLINE(LINE head,int m) ; void DestroyLINE(LINE p); int comsre(LINE a,LINE b); LINE AddLINE(LINE
6、 s,LINE g); LINE SubLINE(LINE s,LINE g); #includevoid PrintLINE(LINE P) LINE q=P-next; int flag=1; if(!q) putchar(0); printf(n);return; while(q)if(q-coef0&flag!=1) 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.7putchar(+); if(q-coef!=1&q-coef!=-1) printf(%g,q-coef); if(q-exp=1) putchar(X);else if(q-exp) printf(X%d,q-exp);elsei
7、f(q-coef=1)if(!q-exp) putchar(1); else if(q-exp=1) putchar(X); else printf(X%d,q-exp);if(q-coef=-1)if(!q-exp) printf(-1); else if(q-exp=1) printf(-X); else printf(-X%d,q-exp); 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.8q=q-next; flag+;printf(n);void InsertNode(LINE p,LINE head) if(p-coef=0) delete p; elseLINE q1,q2;q1=head
8、;q2=head-next;while(q2!=NULL&p-expexp) q1=q2;q2=q2-next;if(q2!=NULL&p-exp=q2-exp) q2-coef+=p-coef; delete p; if(!q2-coef) 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.9q1-next=q2-next;delete q2;else p-next=q2;q1-next=p;LINE CreateLINE(LINE head,int m) LINE p;p=head=new line; head-next=NULL;for(int i=0;icoef,&p-exp);InsertNode
9、(p,head); return head;int Comsre(LINE a,LINE b) 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.10if(a&b)if(!b|a-expb-exp) return 1;else if(!a|a-expexp) return -1;else return 0;else if(!a&b) return -1; else return 1; void DestroyLINE(LINE p) LINE q1,q2;q1=p-next;if(q1=NULL) return ;q2=q1-next;while(q1-next) 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.11d
10、elete q1;q1=q2; q2=q2-next;LINE AddLINE(LINE s,LINE g) LINE qa=s-next;LINE qb=g-next;LINE heada,hc,qc;hc=new line; hc-next=NULL;heada=hc;while(qa|qb)qc=new line;switch(Comsre(qa,qb)case 1: qc-coef=qa-coef;qc-exp=qa-exp;qa=qa-next;break;case 0: 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.12qc-coef=qa-coef+qb-coef;qc-exp=qa-ex
11、p;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;else delete qc; return heada; LINE SubLINE(LINE s,LINE g) LINE p1,p2,heads; 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.13p1=g;p2=g-next;while(p2) p2-coef*=-1; p2=p2-next;heads=AddLINE(s,p1);f
12、or(p2=p1-next;p2;p2=p2-next) p2-coef*=-1;return heads; int main()time_t t;time(&t);printf(t輸出:各種運(yùn)算后的結(jié)果ttttn);printf(%s,ctime(&t);int m,n,i;LINE s=0,g=0,pc,pd;printf(請輸入多項(xiàng)式A項(xiàng)數(shù):);scanf(%d,&m);s=CreateLINE(s,m);printf(請輸入多項(xiàng)式B項(xiàng)數(shù):);scanf(%d,&n);g=CreateLINE(g,n);printf(ttt【功能選擇項(xiàng)】ntn);printf(t 1.輸出多項(xiàng)式A和B
13、t2.計(jì)算多項(xiàng)式A+B n);printf(t 3.計(jì)算多項(xiàng)式A-B t4.重新創(chuàng)建多項(xiàng)式n);printf(t 5.退出 t n); 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.14printf(tn);doprintf(t請輸入選擇:);scanf(%d,&i);switch(i)case 1:printf(t多項(xiàng)式A=:);PrintLINE(s);printf(t多項(xiàng)式B=:);PrintLINE(g);break;case 2:pc=AddLINE(s,g);printf(tA+B=:);PrintLINE(pc);DestroyLINE(pc);break;case 3:pd=SubLIN
14、E(s,g);printf(tA-B=:);PrintLINE(pd);DestroyLINE(pd);break; 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.15case 4:printf(請輸入多項(xiàng)式A項(xiàng)數(shù):);scanf(%d,&m);s=CreateLINE(s,m);printf(請輸入多項(xiàng)式B項(xiàng)數(shù):);scanf(%d,&n);g=CreateLINE(g,n);break;case 5:printf(歡迎再次使用!n);system(pause);break;default:printf(t輸入錯(cuò)誤!n);break;while(i!=5);DestroyLINE(s);Destroy
15、LINE(g);return 0; 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.163、課程設(shè)計(jì)運(yùn)行結(jié)果與分析圖4:初始界面 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.17圖5:功能菜單 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.18輸入1,輸出多項(xiàng)式A和B圖6:輸出功能 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.19輸入2:求多項(xiàng)式A與B的和圖7:多項(xiàng)式和的計(jì)算 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.20輸入3:求多項(xiàng)式A和B的差圖8:多項(xiàng)式差的計(jì)算 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.21輸入4:重新輸入多項(xiàng)式圖9:重置多項(xiàng)式 沈 陽 大 學(xué)課程設(shè)計(jì)說明書 NO.22輸入5:退出系統(tǒng)圖10:退出 沈 陽 大 學(xué)課程設(shè)
16、計(jì)說明書 NO.234、課程設(shè)計(jì)體會一學(xué)期的時(shí)間,學(xué)完了數(shù)據(jù)結(jié)構(gòu),接下來就是要學(xué)以致用,做課程設(shè)計(jì)。雖然數(shù)據(jù)結(jié)構(gòu)是一門公認(rèn)的比較難的課程,自己學(xué)起來也覺得有些吃力,但在本次課程設(shè)計(jì)之前,我系統(tǒng)地把教科書復(fù)習(xí)了一遍,大大加深了對各種數(shù)據(jù)結(jié)構(gòu)的理解,運(yùn)用起來更加自如。不斷地翻閱各種參考書,以及在老師和同學(xué)的幫助下,基本上考慮到了所有的邊界情況,反復(fù)測試各種類型的數(shù)據(jù),強(qiáng)化程序的健壯性,最終順利完成了本次課程設(shè)計(jì)。 完成設(shè)計(jì)后,我覺得收獲不少,首先是自己首次應(yīng)用所學(xué)知識做出了這個(gè)一元稀疏多項(xiàng)式計(jì)算器程序,以前從未做過這樣大(這是對我而言,在專業(yè)人仕看來是小菜一碟)的程序,多少心里有點(diǎn)甜美的感覺;再次是自己本次所寫的程序基本上考慮到了所有的特殊情況,程序運(yùn)行不管輸入什么數(shù)據(jù)都不會有差錯(cuò),這對個(gè)人來講是一個(gè)很大的進(jìn)步。完成設(shè)計(jì)是在一定時(shí)間內(nèi)完成的,在完成這個(gè)設(shè)計(jì)時(shí),我做得顯然有一些緊迫,我想是沒合理安排好時(shí)間和開始態(tài)度不正確所致,做完后我覺得合理安排時(shí)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色倉儲倉房買賣合同范本環(huán)保解讀3篇
- 2025年度旅游單項(xiàng)服務(wù)保障合同4篇
- 2024-2025學(xué)年高中英語Unit4Breakingboundaries突破語法大沖關(guān)教師用書外研版選擇性必修第二冊
- 2024-2025學(xué)年新教材高中歷史第八單元20世紀(jì)下半葉世界的新變化第18課冷戰(zhàn)與國際格局的演變課時(shí)作業(yè)含解析新人教版必修中外歷史綱要下
- 二零二五版工程招投標(biāo)與合同管理法律法規(guī)匯編及解讀3篇
- 2024版汽車維修工具套件租賃合同
- 2024版廣西事業(yè)單位聘用合同樣板
- 2025年屋頂雨水排水管及配套設(shè)施銷售與安裝服務(wù)合同2篇
- 二零二五年度教育合作辦班合同范本3篇
- 2024版汽車修理廠土地租賃合同
- 2023年上海英語高考卷及答案完整版
- 西北農(nóng)林科技大學(xué)高等數(shù)學(xué)期末考試試卷(含答案)
- 金紅葉紙業(yè)簡介-2 -紙品及產(chǎn)品知識
- 《連鎖經(jīng)營管理》課程教學(xué)大綱
- 《畢淑敏文集》電子書
- 頸椎JOA評分 表格
- 員工崗位能力評價(jià)標(biāo)準(zhǔn)
- 定量分析方法-課件
- 朱曦編著設(shè)計(jì)形態(tài)知識點(diǎn)
- 110kV變電站工程預(yù)算1
- 某系統(tǒng)安全安全保護(hù)設(shè)施設(shè)計(jì)實(shí)施方案
評論
0/150
提交評論