版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課程設(shè)計(論文)任務(wù)書</p><p> 一、課程設(shè)計(論文)題目 一元多項式計算器 </p><p> 二、課程設(shè)計(論文)工作自 2011 年 12 月 26 日起至 2011 年 12 月 30 日止 </p><p>
2、三、課程設(shè)計(論文) 地點: 創(chuàng) 新 大 樓 機 房 </p><p> 四、課程設(shè)計(論文)內(nèi)容要求:</p><p> 1.本課程設(shè)計的目的</p><p> ?、庞?xùn)練學(xué)生靈活應(yīng)用所學(xué)數(shù)據(jù)結(jié)構(gòu)知識,獨立完成問題分析,結(jié)合數(shù)據(jù)結(jié)構(gòu)理論知識,</p><p> 編
3、寫程序求解指定問題;</p><p> ?、瞥醪秸莆哲浖_發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能;</p><p> ?、翘岣呔C合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力,鞏固、深化學(xué)生</p><p> 的理論知識,提升編程水平。</p><p> 2.課程設(shè)計的任務(wù)及要求</p><p&
4、gt;<b> 1)基本要求:</b></p><p> ⑴要求從分析題目的需求入手,按設(shè)計抽象數(shù)據(jù)類型、構(gòu)思算法、通過設(shè)計實現(xiàn)抽象</p><p> 數(shù)據(jù)類型、編寫上機程序和上機調(diào)試等若干步驟完成題目,最終寫出完整的報告;</p><p> ⑵在程序設(shè)計階段應(yīng)盡量利用已有的標(biāo)準函數(shù),加大代碼的重用率;</p><p
5、> ?、浅绦蛟O(shè)計語言推薦使用C/C++,程序書寫規(guī)范,源程序需加必要的注釋;</p><p> ⑷每位同學(xué)需提交可獨立運行的程序和規(guī)范的課程設(shè)計報告。</p><p> 2)課程設(shè)計論文編寫要求</p><p> ?、爬碚撛O(shè)計部分以課程設(shè)計論文的形式提交,格式必須按照課程設(shè)計論文標(biāo)準格式進</p><p><b> 行書
6、寫和裝訂;</b></p><p> ?、普n程設(shè)計報告(論文)包括中文目錄、設(shè)計任務(wù)、需求分析、概要設(shè)計、詳細設(shè)計、</p><p> 編碼實現(xiàn)、調(diào)試分析、課設(shè)總結(jié)、謝辭、參考文獻、附錄等;</p><p> ⑶設(shè)計部分應(yīng)包含系統(tǒng)功能模塊圖,調(diào)試分析應(yīng)包括運行截圖等。</p><p> 3)課程設(shè)計評分標(biāo)準: </p&
7、gt;<p> ?、艑W(xué)習(xí)態(tài)度:10分;</p><p> ?、葡到y(tǒng)設(shè)計:20分;</p><p> ?、蔷幊陶{(diào)試:20分;</p><p> ?、然卮饐栴}:20分;</p><p> ?、烧撐淖珜懀?0分。</p><p><b> 4)參考文獻:</b></p>&
8、lt;p> ⑴嚴蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]. 清華大學(xué)出版社. 2010.3 </p><p> ?、茋牢得?吳偉民. 數(shù)據(jù)結(jié)構(gòu)題集(C語言版)[M]. 清華大學(xué)出版社. 1999.2</p><p> ⑶何欽銘,馮燕等. 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計[M]. 浙江大學(xué)出版社. 2007.8</p><p> 5)課程設(shè)計進度安排</p>
9、<p> ⑴準備階段(4學(xué)時):選擇設(shè)計題目、了解設(shè)計目的要求、查閱相關(guān)資料;</p><p> ?、瞥绦蚰K設(shè)計分析階段(4學(xué)時):程序概要設(shè)計、詳細設(shè)計;</p><p> ⑶代碼編寫調(diào)試階段(8學(xué)時):程序模塊代碼編寫、調(diào)試、測試;</p><p> ⑷撰寫論文階段(4學(xué)時):總結(jié)課程設(shè)計任務(wù)和設(shè)計內(nèi)容,撰寫課程設(shè)計論文。</p>
10、;<p> 學(xué)生簽名: 高田田 </p><p> 2011 年 12 月 26 日</p><p> 6)課程設(shè)計題目具體要求:</p><p><b> 問題描述:</b></p><p> 設(shè)有一元多項式Am(x) 和Bn(x).</p><p
11、> Am(x) = A0+A1x1+A2x2+A3x3+… +Amxm</p><p> Bn(x) = B0+B1x1+B2x2+B3x3+… +Bnxn</p><p> 試求M(x)= Am(x)+Bn(x)、M(x)= Am(x)-Bn(x)和M(x)= Am(x)×Bn(x)。</p><p><b> 基本要求: <
12、;/b></p><p> ⑴首先判定多項式是否稀疏;</p><p> ⑵分別采用順序和動態(tài)存儲結(jié)構(gòu)實現(xiàn);</p><p> ⑶結(jié)果M(x)中無重復(fù)階項和無零系數(shù)項;</p><p> ?、纫筝敵鼋Y(jié)果的升冪和降冪兩種排列情況。</p><p> 課程設(shè)計(論文)評審意見</p><
13、p> (1)學(xué)習(xí)態(tài)度(10分):優(yōu)(?。?、良( )、中( )、一般(?。?、差( ); </p><p> (2)系統(tǒng)設(shè)計(20分):優(yōu)( )、良(?。⒅校ā。⒁话悖ā。⒉睿ā。?</p><p> ?。?)編程調(diào)試(20分):優(yōu)( )、良( )、中(?。⒁话悖ā。?、差(?。?lt;/p><p> ?。?)回答問題(20分):優(yōu)( )、良(?。?、中
14、( )、一般(?。?、差(?。?lt;/p><p> ?。?)論文撰寫(30分):優(yōu)(?。⒘迹ā。⒅校ā。⒁话悖ā。?、差( );</p><p> ?。?)格式規(guī)范性及考勤是否降等級:是(?。?、否(?。?lt;/p><p> 評閱人: 王英華 職稱: 講師 </p><p> 2012 年 1 月 4 日<
15、/p><p><b> 目 錄</b></p><p><b> 一、需求分析</b></p><p><b> 二、概要設(shè)計</b></p><p><b> 三、詳細設(shè)計</b></p><p> 四、編碼實現(xiàn)(源
16、代碼)</p><p><b> 五、調(diào)試分析</b></p><p><b> 六、心得體會</b></p><p><b> 一、需求分析</b></p><p><b> 1. 加法操作</b></p><p>
17、<b> 輸入項數(shù)3</b></p><p> 按降冪輸入系數(shù)和指數(shù)</p><p><b> 7 8</b></p><p><b> 6 7</b></p><p><b> 6 6</b></p><p> Mul
18、 Ploy L is:</p><p> + 7 X^8 + 6 X^7 + 6 X^6</p><p><b> 輸入項數(shù)2</b></p><p> 按降冪輸入系數(shù)和指數(shù)</p><p><b> 4 6</b></p><p><b> 2 3
19、</b></p><p> Mul Ploy L is:</p><p> + 4 X^6 + 2 X^3</p><p> 選擇要執(zhí)行的操作:1,加法運算2,減法運算:1</p><p><b> 計算結(jié)果為</b></p><p> Mul Ploy L is:&l
20、t;/p><p> + 7 X^8 + 6 X^7 + 10 X^6 + 2 X^3</p><p><b> 2.減法操作</b></p><p><b> 輸入項數(shù)2</b></p><p> 按降冪輸入系數(shù)和指數(shù)</p><p><b> 4 6&
21、lt;/b></p><p><b> 5 3</b></p><p> Mul Ploy L is:</p><p> + 4 X^6 + 5 X^3</p><p><b> 輸入項數(shù)1</b></p><p> 按降冪輸入系數(shù)和指數(shù)</p>
22、;<p><b> 5 3</b></p><p> Mul Ploy L is:</p><p><b> + 5 X^3</b></p><p> 選擇要執(zhí)行的操作:1,加法運算2,減法運算:2</p><p><b> 計算結(jié)果為</b><
23、/p><p> Mul Ploy L is:</p><p><b> + 4 X^6</b></p><p><b> 二.概要設(shè)計</b></p><p> 單連表的抽象數(shù)據(jù)類型定義:</p><p><b> ADT List{</b>&
24、lt;/p><p> 數(shù)據(jù)對象:D={ai|ai∈ElemSet,i=1,2,…,n,n≥0}</p><p> 數(shù)據(jù)關(guān)系:R1={<ai-1,ai>| ai-1, ai∈D,i=2,…,n}</p><p><b> 基本操作:</b></p><p> InitList(﹠L)</p>
25、<p> //操作結(jié)果:構(gòu)造一個空的線性表</p><p> CreatPolyn(&L)</p><p> //操作結(jié)果:構(gòu)造一個以單連表存儲的多項試</p><p> DispPolyn(L)</p><p> //操作結(jié)果:顯示多項試</p><p> Polyn(&pa,&
26、amp;pb)</p><p> //操作結(jié)果:顯示兩個多項試相加,相減的結(jié)果</p><p> } ADT List</p><p><b> 本程序包含模塊:</b></p><p> typedef struct LNode //定義單鏈表</p><p><b>
27、 {</b></p><p> }LNode,*LinkList;</p><p> void InitList(LinkList &L) //定義一個空表</p><p><b> { }</b></p><p> void CreatPolyn(LinkList &L)
28、 //用單鏈表定義一個多項式</p><p><b> { }</b></p><p> void DispPolyn(LinkList L) //顯示輸入的多項式</p><p><b> { }</b></p><p> void Polyn(LinkList &pa,
29、LinkList &pb)</p><p><b> {}</b></p><p> void main()</p><p> { //定義一個單連表;</p><p> cout<<endl<<" *****************歡迎來到一元多項式計算
30、程序*************** "<<endl;</p><p> LNode *L1,*L2;</p><p> Polyn(L1,L2);</p><p><b> }</b></p><p> 加,減操作模塊——實現(xiàn)加減操作</p><p> 各
31、模塊之間的調(diào)用關(guān)系如下:</p><p><b> 三.詳細設(shè)計</b></p><p> 1.根據(jù)題目要求采用單連表存儲結(jié)構(gòu)</p><p> typedef struct LNode //定義單鏈表</p><p><b> {</b></p><p>
32、 }LNode,*LinkList;</p><p> void InitList(LinkList &L) //定義一個空表</p><p><b> { }</b></p><p> void CreatPolyn(LinkList &L) //用單鏈表定義一個多項式</p><p>
33、<b> { }</b></p><p> void DispPolyn(LinkList L) //顯示輸入的多項式</p><p><b> { }</b></p><p> void Polyn(LinkList &pa,LinkList &pb)</p><p&
34、gt;<b> {}</b></p><p><b> 2.主函數(shù)main</b></p><p> void main()</p><p><b> {</b></p><p> LNode *L1,*L2;</p><p> Polyn(
35、L1,L2);}</p><p> 函數(shù)的調(diào)用關(guān)系層次結(jié)構(gòu)</p><p> 四. 編碼實現(xiàn)(源代碼)</p><p> #include<iostream.h></p><p> #include<malloc.h></p><p> typedef struct LNode
36、 //定義單鏈表</p><p><b> {</b></p><p> float xishu; //系數(shù)</p><p> int zhishu; //指數(shù)</p><p> struct LNode *next;</p><p> }LNode,*LinkList
37、;</p><p> void InitList(LinkList &L) //定義一個空表</p><p><b> {</b></p><p> L=(LinkList)malloc(sizeof(LNode));</p><p> L->next=NULL;</p><
38、p><b> return;</b></p><p><b> }</b></p><p> void CreatPolyn(LinkList &L) //用單鏈表定義一個多項式</p><p><b> {</b></p><p><b>
39、 int m;</b></p><p> LinkList q,p;</p><p> InitList(L);</p><p><b> q=L;</b></p><p> cout<<"輸入項數(shù)";</p><p><b> c
40、in>>m;</b></p><p> cout<<"按降冪輸入系數(shù)和指數(shù)"<<endl;</p><p> for(int i=0;i<m;i++)</p><p><b> {</b></p><p> p=(LinkList)mall
41、oc(sizeof(LNode)); //生成新結(jié)點</p><p> cin>>p->xishu>>p->zhishu;</p><p> p->next=NULL;</p><p> q->next=p;</p><p><b> q=p;</b></p
42、><p><b> }</b></p><p><b> return;</b></p><p><b> }</b></p><p> void DispPolyn(LinkList L) //顯示輸入的多項式</p><p> { Li
43、nkList p;</p><p> p=L->next;</p><p> cout<<"Mul Ploy L is: \n"<<" ";</p><p><b> while(p)</b></p><p> { if(p->xi
44、shu>0) //如果系數(shù)大于0則加上+號</p><p> cout<<" + "<<p->xishu<<" X^"<<p->zhishu<<" ";</p><p> else cout<<" "<<
45、;p->xishu<<" X^"<<p->zhishu<<" ";</p><p> p=p->next;</p><p><b> }</b></p><p> cout<<endl;</p><p><
46、;b> return ;</b></p><p><b> }</b></p><p> void Polyn(LinkList &pa,LinkList &pb)</p><p><b> {</b></p><p> LNode *p,*q,*pre,
47、*temp;</p><p> int sum,t;</p><p> CreatPolyn(pa);</p><p> DispPolyn(pa);</p><p> CreatPolyn(pb);</p><p> DispPolyn(pb);</p><p> p=pa->
48、;next; //p指向pa頭結(jié)點</p><p> q=pb->next; //q指向qa頭結(jié)點</p><p> pre=pa; //用來記錄合成的多項式</p><p> cout<<"選擇要執(zhí)行的操作:1,加法運算2,減法運算:";</p><p><b>
49、cin>>t;</b></p><p><b> if(t==1)</b></p><p><b> {</b></p><p> while(p!=NULL&&q!=NULL) //當(dāng)兩個多項式都為完時</p><p><b> {&l
50、t;/b></p><p> if(p->zhishu<q->zhishu) //如果q大于p的指數(shù)把q項存入</p><p><b> {</b></p><p> pre->next=q; </p><p> pre=pre->next;</p><
51、p> q=q->next;</p><p><b> }</b></p><p> else if(p->zhishu==q->zhishu) //如果q等于p的指數(shù)把q項q項和存入</p><p><b> {</b></p><p> sum=p->x
52、ishu+q->xishu;</p><p> if(sum!=0)//如果和不為0</p><p><b> {</b></p><p> p->xishu=sum;</p><p> pre->next=p;</p><p> pre=pre->next;&l
53、t;/p><p> p=p->next;</p><p><b> temp=q;</b></p><p> q=q->next;</p><p> free(temp);//釋放temp</p><p><b> }</b></p><
54、p> else //如果和為0</p><p><b> {</b></p><p> temp=p->next;</p><p> free(p);//釋放p</p><p><b> p=temp;</b></p><p> temp=q-&g
55、t;next;</p><p> free(q); //釋放q</p><p><b> q=temp;</b></p><p><b> }</b></p><p><b> }</b></p><p> else //如果p大于q的
56、指數(shù)把p項存入 </p><p><b> {</b></p><p> pre->next=p; </p><p> pre=pre->next;</p><p> p=p->next; </p><p><b> }</b
57、></p><p><b> }</b></p><p> if(p!=NULL) //如果p為完q完,則p接入</p><p> pre->next=p;</p><p> else //如果q為完p完,則q接入</p><p> pre->next=q
58、; </p><p> cout<<"計算結(jié)果為"<<endl;</p><p> DispPolyn(pa);</p><p><b> }</b></p><p> else if(t==2)</p><p><b>
59、 {</b></p><p> while(p!=NULL&&q!=NULL) //當(dāng)兩個多項式都為完時</p><p><b> {</b></p><p> if(p->zhishu<q->zhishu) //如果q大于p的指數(shù)把-q項存入 </p><p>
60、<b> {</b></p><p> q->xishu=-q->xishu;</p><p> pre->next=q; </p><p> pre=pre->next;</p><p> q=q->next;</p><p><b> }&l
61、t;/b></p><p> else if(p->zhishu==q->zhishu) //如果q等于p的指數(shù)把q項q項和存入</p><p><b> {</b></p><p> sum=p->xishu-q->xishu;</p><p> if(sum!=0)//如果和
62、不為0</p><p><b> {</b></p><p> p->xishu=sum;</p><p> pre->next=p;</p><p> pre=pre->next;</p><p> p=p->next;</p><p>
63、<b> temp=q;</b></p><p> q=q->next;</p><p> free(temp); //釋放temp</p><p><b> }</b></p><p> else //如果和為0</p><p><b>
64、{</b></p><p> temp=p->next;</p><p> free(p); //釋放p</p><p><b> p=temp;</b></p><p> temp=q->next;</p><p> free(q); //釋放q</p
65、><p><b> q=temp;</b></p><p><b> }</b></p><p><b> }</b></p><p> else //如果p大于q的指數(shù)把p項存入 </p><p><b> {</
66、b></p><p> pre->next=p; </p><p> pre=pre->next;</p><p> p=p->next; </p><p><b> }</b></p><p><b> }</b></p&g
67、t;<p> if(p!=NULL) //如果p為空q空,則p接入</p><p> pre->next=p;</p><p> else //如果q為空p空,則-q接入</p><p><b> {</b></p><p> pre->next=q; </p>&l
68、t;p> while(q!=NULL)</p><p><b> {</b></p><p> q->xishu=-q->xishu;</p><p> q=q->next;</p><p><b> }</b></p><p><b&
69、gt; }</b></p><p> cout<<"計算結(jié)果為"<<endl;</p><p> DispPolyn(pa);</p><p><b> }</b></p><p><b> }</b></p><
70、p> void main()</p><p> { cout<<endl<<" *****************歡迎來到一元多項式計算程序*************** "<<endl;</p><p> LNode *L1,*L2;</p><p> Polyn(L
71、1,L2);</p><p><b> } </b></p><p><b> 五、調(diào)試分析</b></p><p><b> 1. 加法操作模塊</b></p><p><b> 2. 減法操作模塊</b></p><p>
72、;<b> 六.心得體會</b></p><p> 通過做一元多項式計算器,途中遇到了不少的問題通過此次課程設(shè)計,想要做出自己的課程設(shè)計必須對本章節(jié)內(nèi)容有系統(tǒng)了解,我明白了在寫代碼前,腦海中必須有編寫程序的思路是很重要的。在編寫一個程序之前,必須有自己的思路,否則根本不知道如何下手,更不可能編出好的程序。就算能編出程序來,相信編出的程序的邏輯性也不會很強,因為你是想到什么就編什么,不系統(tǒng)
73、。而且會有很多錯誤,會影響心情,也影響效率。因此在我們編程序之前一定要做好充分的準備,首先要理清自己的思路,然后再將思路分劃成幾個模塊,一塊一塊的編寫,最后再將所有的模塊聯(lián)系起來,組成一個完整的程序。在實踐之前,最好將程序編寫好在紙上,這樣在編譯的時候也比較有效率。</p><p> 其實在這次課程設(shè)計的過程中,我也遇到了很多難題。在種種的困難中,我明白了耐心在編寫程序時的重要性。如果你沒有耐心就肯定編不出好的
74、程序,特別是在調(diào)試的過程中。我們初次寫的程序在電腦上調(diào)試的時候也許會出項幾百個錯誤,這時候我們應(yīng)該耐心的檢查出錯的地方和原因,并予以改正。而不是抱怨自己寫的程序太爛錯誤太多,就此放棄。相信再強的人也不可能一次就能編譯成功,總會有一些問題出現(xiàn)。其實只要有耐心,你就會發(fā)現(xiàn),在你修改了一個錯誤之后,其它有的錯誤也會跟著消失,所以在編譯的時候一定要有耐心。</p><p> 這段時間的課程設(shè)計,我也認識到數(shù)據(jù)結(jié)構(gòu)是一門
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一元稀疏多項式計算器課程設(shè)計
- c++課程設(shè)計--一元多項式簡單計算器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-一元多項式計算器
- c++課程設(shè)計---一元多項式簡單計算器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告一元稀疏多項式計算器
- 《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計》報告---一元稀疏多項式計算器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--一元稀疏多項式計算器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---一元稀疏多項式計算器
- 課程設(shè)計--一元多項式計算
- 程序語言課程設(shè)計---一元多項式簡單的計算器
- 一元多項式運算課程設(shè)計報告
- 課程設(shè)計報告--一元多項式計算vs迷宮求解
- 一元多項式運算課程設(shè)計
- 一元多項式計算(數(shù)據(jù)結(jié)構(gòu)課程設(shè)計)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---一元多項式計算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告一元多項式的計算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告一元多項式的計算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告一元多項式的計算
- 一元多項式課程設(shè)計--用c語言實現(xiàn)一元多項式的加減法計算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告一元多項式的計算[1]
評論
0/150
提交評論