版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 信息科學與技術學院</b></p><p> 程序設計基礎課程設計報告</p><p> 題目名稱: Fibonacci 數(shù)列輸出系統(tǒng) </p><p> 學生姓名: 侯 明 </p><p> 學 號:
2、 2011508026 </p><p> 專業(yè)班級: 計算機科學與技術專業(yè)(1)班 </p><p> 指導教師: 鄭 瑤 </p><p> 2012年 7 月 2 日</p><p><b> 目 錄</b></p>
3、<p> 1 課程設計題目與要求3</p><p><b> 1.1設計題目3</b></p><p> 1.2設計要求.3</p><p><b> 2 總體設計.4</b></p><p><b> 3 詳細設計5</b></p>
4、<p> 3.1數(shù)據(jù)結構設計5</p><p> 3.2主模塊設計5</p><p> ?。?)數(shù)據(jù)操作模塊............................................................................................................5</p><p>
5、?。?)循環(huán)模塊....................................................................................................................6</p><p><b> 4 運行結果7</b></p><p> 5 課程設計總結9</p>
6、<p> 6 參考文獻....10</p><p> 1 課程設計題目與要求</p><p> 1.1設計題目 :Fibonacci 數(shù)列輸出系統(tǒng)</p><p><b> 1.2設計要求:</b></p><p> (1)簡單變量“數(shù)據(jù)平移”方法計算Fibonacci 數(shù)列的第n項(正數(shù)n通過鍵
7、盤輸入):說明變量old1=1,old2=1,newitem:新的Fionacci項newitem總是“距它最近”的前兩項(old1與old2)的累加和。而后通過“old1=old2;old2=newitem;”進行所謂的“數(shù)據(jù)平移”。接著計算另一個Fibonacci項newitem,依次循環(huán),直到求出數(shù)列的第n項時為止。</p><p> (2)使用數(shù)組求出Fibonacci數(shù)列的第n項(正整數(shù)n通過鍵盤輸入
8、)并顯示在屏幕上:說明數(shù)組f用來存放Fibonacci數(shù)列的各項之值,且僅初始化前兩個元素f[0]=1,f[1]=1,而后通過f[i]=f[i-2]+f[i-1];一次計算出f[2]到f[n-1]</p><p> ?。ㄗ⒁鈌[n-1]恰為所要求出的第n項)并將該值顯示在屏幕上。</p><p> (3)其他要求 </p><p> 只能使用c++或c語言
9、,源程序要有適當?shù)淖⑨?,使該程序容易易讀。</p><p> 至少采用文本菜單界面</p><p> 學生可自動增加新功能模塊</p><p> 完成系統(tǒng)總結報告以及系統(tǒng)使用說明書。</p><p><b> 總體設計:</b></p><p><b> :</b>
10、</p><p><b> 詳細設計</b></p><p> 3.1 數(shù)據(jù)結構設計:</p><p> (1)通過簡單變量“數(shù)據(jù)平移”方法計算Fibonacci 數(shù)列的第n項(正數(shù)n通過鍵盤輸入):說明變量old1=1,old2=1,newitem:新的Fionacci項newitem總是“距它最近”的前兩項(old1與old2)的累加
11、和。而后通過“old1=old2;old2=newitem;”進行所謂的“數(shù)據(jù)平移”。接著計算另一個Fibonacci項newitem,依次循環(huán),直到求出數(shù)列的第n項時為止。</p><p> 具體如下:long f[10000]; //定義一個數(shù)組來乘放斐波那契數(shù)列</p><p> int i,m ; //定義兩個變量來決定
12、斐波那契數(shù)列長度</p><p> {f[i+2]=f[i+1]+f[i];} //數(shù)據(jù)平移及數(shù)組法求得斐波那契數(shù)列</p><p> (2)使用數(shù)組求出Fibonacci數(shù)列的第n項(正整數(shù)n通過鍵盤輸入)并顯示在屏幕上:說明數(shù)組f用來存放Fibonacci數(shù)列的各項之值,且僅初始化前兩個元素f[0]=1,f[1]=1,而后通過f[i]=f[i-2]+f[i-1];一次計
13、算出f[2]到f[n-1]</p><p> 具體如下:for (i=0;i<=n;i++)</p><p><b> {</b></p><p> if (i==0||i==1)f[i]=1;</p><p> else f[i]=f[i-1]+f[i-2]; //定義一個數(shù)組f 進行值傳遞
14、</p><p><b> }</b></p><p><b> 3.2主模塊設計</b></p><p><b> 1數(shù)據(jù)操作模塊</b></p><p> 圖3.2-1 數(shù)據(jù)操作模塊圖</p><p><b> 2選擇循環(huán)模塊
15、:</b></p><p><b> :</b></p><p> n=0 n<0</p><p> 圖 3.2-2選擇循環(huán)模塊圖</p><p><b> 4 運行結果</b></p&
16、gt;<p><b> 截圖及說明</b></p><p> 圖4-1 windows 侯明.exe程序執(zhí)行界面</p><p> 圖 4-2 windows 侯明.exe程序執(zhí)行過程中</p><p><b> 5 課程設計總結</b></p><p> 在計算F
17、ibonacci數(shù)列時需要循環(huán)相加,但首先要保證n的值是大于2的。在n的值為1或2的時候,f(n)=1。所以在進行循環(huán)之前要先判斷n是否為1或2,將這兩種情況排除后才能利用公式f(n)=f(n-1)+f(n-2)進行累加。這是在編寫這個程序中需要注意的很重要的一部分。經(jīng)過抽其中幾項,,本程序均能達到實驗要求,得出正確的答案。</p><p> 經(jīng)過此次的課程設計,我也學習到了c++課程設計的知識。</p&
18、gt;<p> 首先,在程序的制作過程中,遇到了很多意想不到的困難,自己一個人解決起來有難度,于是也少不了同學的幫助,深刻體會到開發(fā)程序不只是一兩個人就能很好的完成的,要大家互相幫助,共同探討問題,才能更好的解決困難。</p><p> 其次,編程設計中遇到了很多沒有學過但需要用到的內容,怎樣將其變成自己掌握的內容就很重要了,對知識的掌握應該做到融會貫通。</p><p>
19、; 最后,我覺得接到一個任務不能立刻就下手編程序,應該先理清楚思路,列出大概的框架,在需要注意的細節(jié)處做好標記,寫出應注意的問題;然后再編程。多翻看書籍,盡量簡練的句子寫出來。盲目的編寫程序只會讓以后的工作很難展開,這些經(jīng)驗必將對以后的學習起到重要的作用。</p><p><b> 6 參考文獻</b></p><p> [1] 譚浩強,C程序設計題解與上機指導
20、(第二版),北京,清華大學出版社,2000年9月。</p><p> [2] 侯俊杰,深入淺出MFC,武漢,華中科技大學出版社,2001年1月。</p><p> [3] 丁有和,Visual C++實用教程,北京,電子工業(yè)出版社,2007 年1月。</p><p> [4] Thomas H.Cormen,算法導論,湖北,機械工業(yè)出版社,2006 年9月。
21、</p><p> [5] 《編程之美》小組,編程之美,北京,電子工業(yè)出版社,2009 年3月。</p><p> [6] 孫鑫,VC++深入詳解,北京,電子工業(yè)出版社,2000年9月。</p><p> [7] 陳維興,C++面向對象程序設計教程,北京,清華大學出版社,2009年6月。</p><p> [8] 杰夫瑞,Window
22、s 核心編程,北京,清華大學出版社,2008年9月。</p><p> [9] Jeff Prosise ,MFC Windows程序設計,北京,清華大學出版社,2007 年5月。</p><p> [10] Paul McJones,編程的本質,湖北,機械工業(yè)出版社,2010 年3月。</p><p><b> 源代碼:</b>&l
23、t;/p><p> #include <stdio.h></p><p> #include <iostream></p><p> #include <iomanip></p><p> #include<windows.h></p><p> #define M
24、AXLength 10000</p><p> using namespace std;</p><p> int main()</p><p><b> {</b></p><p> cout<<endl<<endl;</p><p> cout<<
25、" ---------------------------------------------------------------------------"<<endl;</p><p> cout<<" ---------------------------------------------------------------------------
26、"<<endl;</p><p> cout<<" ---------------------------------------------------------------------------"<<endl;</p><p> cout<<" ********
27、********* Fibonacci 輸出系統(tǒng)*****************"<<endl<<endl; </p><p> cout<<"\n\t\t\t\t\t\t"<<"信息科學與技術學院";</p><p> cout<<"\n\t\t\t\t\t\t
28、"<<"計算機科學與技術專業(yè)";</p><p> cout<<"\n\t\t\t\t\t\t"<<"侯明· -- 學號:2011508026"<<endl<<endl<<endl<<endl<<endl<<endl<&
29、lt;endl;</p><p><b> char a;</b></p><p> int b,i,n;</p><p> cout<<"進入使用“數(shù)組求Fibonacci數(shù)列請按”1\n";</p><p><b> cin>>b;</b>&l
30、t;/p><p><b> switch(b)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> double f[MAXLength]; //定義一個數(shù)組</p><p&
31、gt;<b> again:</b></p><p> printf("輸入n(0≤n≤%d):",MAXLength);</p><p> scanf("%d",&n);</p><p> if (n>=MAXLength||n<0) //判斷n是否大于0,若是則繼
32、續(xù)進行,若不是則返回!</p><p><b> {</b></p><p> printf("輸入的n太大或太??!");</p><p><b> return 1;</b></p><p><b> }</b></p><p&
33、gt; for (i=0;i<=n;i++) //循環(huán)結構</p><p><b> {</b></p><p> if (i==0||i==1)f[i]=1;</p><p> else f[i]=f[i-1]+f[i-2];</p><p> printf("%-10.0f
34、 ",f[i]);</p><p> if(i%5==4)printf("\n");//每輸出5個輸出一個換行</p><p><b> }</b></p><p> printf("\n");</p><p> cout<<"繼續(xù)輸入請按y
35、,按 n 結束并跳轉至數(shù)據(jù)平移求Fibonacci數(shù)列\(zhòng)n"<<endl;</p><p><b> cin>>a;</b></p><p> if(a=='y'||a=='Y') goto again; //繼續(xù)或者退出</p><p> if(a=='n&
36、#39;||a=='N') goto fuc; // 如果輸入n直接調至fuc 使用數(shù)據(jù)平移求Fibonacci數(shù)列</p><p><b> break;</b></p><p><b> fuc:</b></p><p><b> while(1) </b>&l
37、t;/p><p> {long a,b,old1=1,old2=1;</p><p><b> int i,n;</b></p><p> Sleep(60*6);</p><p> cout<<endl<<"請輸入所需求的第N項。"<<endl;</p&
38、gt;<p><b> cin>>n;</b></p><p> if(n==0) {cout<<"出錯了!"<<endl;break;} //輸入為0的話,就會結束循環(huán),并給出出錯提示。</p><p> for(i=1;i<=n/2;i++)</p><p&g
39、t;<b> {</b></p><p> cout<<setw(12)<<old1<<setw(12)<<old2; //每個12字符輸出一個數(shù)。</p><p> if(i==n) cout<<endl<<"此時第n項為:"<<old2<<en
40、dl;</p><p> if(i%3==0) cout<<endl;//每行滿6項換行</p><p> old1=old1+old2;</p><p> old2=old2+old1;//實現(xiàn)數(shù)據(jù)平移</p><p><b> }</b></p><p><b&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空售票系統(tǒng)+c++課程設計
- c++酒店管理系統(tǒng)課程設計
- c++校園導游系統(tǒng)課程設計
- c++酒店管理系統(tǒng)課程設計
- c++課程設計——飛機訂票系統(tǒng)
- 銷售管理系統(tǒng)c++課程設計
- 《c++》課程設計倉庫管理系統(tǒng)
- c++課程設計-學生管理系統(tǒng)
- c++學生管理系統(tǒng)課程設計
- c++課程設計--酒店管理系統(tǒng)
- c++課程設計報告
- c++課程設計ppt
- c++課程設計--基于c++的火車票管理系統(tǒng)
- c++課程設計--圖書管理系統(tǒng)
- 人事考勤管理系統(tǒng)c++課程設計
- c++課程設計-學生考勤管理系統(tǒng)
- 圖書管理系統(tǒng)c++課程設計
- c++課程設計學生通訊管理系統(tǒng)
- c++圖書管理系統(tǒng)課程設計
- c++課程設計報告-- 學籍管理系統(tǒng)
評論
0/150
提交評論