擦數(shù)游戲數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告_第1頁
擦數(shù)游戲數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告_第2頁
擦數(shù)游戲數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告_第3頁
擦數(shù)游戲數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告_第4頁
擦數(shù)游戲數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 - 1 -數(shù)據(jù)結(jié)構(gòu)課程數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告設(shè)計(jì)報(bào)告擦擦 數(shù)數(shù) 游游 戲戲班班 級(jí)級(jí):軟件 092 姓姓 名名: 指導(dǎo)教師指導(dǎo)教師: 成成 績績:_ 年 月 日 - 2 -摘要摘要: : 隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)領(lǐng)域內(nèi)顯的尤為重要。而數(shù)據(jù)結(jié)構(gòu)這門學(xué)科,根據(jù)數(shù)據(jù)的不同結(jié)構(gòu)和組織方法以及進(jìn)行數(shù)據(jù)處理的不同算法,通過分析和比較選擇出較好的設(shè)計(jì)方案。擦數(shù)游戲這道題目,對(duì)算法和編程能力都有很高的要求。這正體現(xiàn)出了此次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的特點(diǎn)。對(duì)此題,首先要建立一個(gè)合適的數(shù)學(xué)模型,根據(jù)數(shù)學(xué)模型用 c 語言編程。建立的數(shù)學(xué)模型,要求計(jì)算平均數(shù)的方法,而此題的平均數(shù)分子和分母都要求是整數(shù),這就

2、要對(duì)分子和分母進(jìn)行約束。在用 c 語言編程的時(shí)候,要用到的語句主要有判斷語句,輸入和輸出語句等。關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu),數(shù)學(xué)模型,算法,c 語言編程 - 3 - 目目錄錄1.引言引言 .- 4 -2.需需求求分析:分析: .- 5 -3.概要設(shè)計(jì)概要設(shè)計(jì) .- 5 -3.1 課程設(shè)計(jì)流程圖課程設(shè)計(jì)流程圖.- 5 -3.2 主要的數(shù)據(jù)結(jié)構(gòu)及完成本課程設(shè)計(jì)所用的方法主要的數(shù)據(jù)結(jié)構(gòu)及完成本課程設(shè)計(jì)所用的方法.- 6 -4.詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) .- 7 -4.14.1 建立數(shù)學(xué)模型建立數(shù)學(xué)模型.- 7 -4.24.2 編寫程序?qū)崿F(xiàn)建立的數(shù)學(xué)模型編寫程序?qū)崿F(xiàn)建立的數(shù)學(xué)模型.- 8 -4.3 程序各個(gè)部分的說明程

3、序各個(gè)部分的說明.- 10 -5.測(cè)試結(jié)果測(cè)試結(jié)果 .- 11 -6.調(diào)試分析調(diào)試分析 .- 13 -7.設(shè)計(jì)體會(huì)設(shè)計(jì)體會(huì) .- 15 -8.結(jié)束語結(jié)束語 .- 16 -9.參考文獻(xiàn)參考文獻(xiàn) .- 16 - - 4 -擦數(shù)游戲擦數(shù)游戲1.引言引言 本次課程設(shè)計(jì)的目的本次課程設(shè)計(jì)的目的:是對(duì)數(shù)據(jù)結(jié)構(gòu)所學(xué)內(nèi)容的進(jìn)一步的理解與鞏固,是將計(jì)算機(jī)課程與實(shí)際問題相聯(lián)接的關(guān)鍵步驟。通過課程設(shè)計(jì),能夠提高分析問題、解決問題,從而運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力。實(shí)驗(yàn)環(huán)境實(shí)驗(yàn)環(huán)境:window 2000 及以上,c-free 所有版本,turbo2.0實(shí)驗(yàn)的任務(wù)要求實(shí)驗(yàn)的任務(wù)要求:任務(wù):任務(wù):對(duì)擦數(shù)游戲建立數(shù)學(xué)模

4、型,找合適的工具編寫程序要求:要求:1. 完成需求分析2. 建立數(shù)學(xué)模型3. 用 c 語言編寫程序4. 調(diào)試2.需求分析:需求分析:在黑板上從 1 開始寫出一組連續(xù)的自然數(shù),然后擦去其中的一個(gè)數(shù) k,其余的 - 5 -數(shù)的平均值為 a/b(a,b 為整數(shù))。試編寫程序求出被擦去的數(shù) k。仔細(xì)閱讀題目,就可以發(fā)現(xiàn)這道題目對(duì)算法的要求比較高,正好能體現(xiàn)這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的目的。在軟硬件方面對(duì)系統(tǒng)的需求,軟件要求易學(xué),界面友好,容易掌握,因此可以選用 c-free3.5。硬件的配置要求也不需要很高,學(xué)校提供的機(jī)房就行了3.概要設(shè)計(jì)概要設(shè)計(jì) 3.1 課程設(shè)計(jì)流程圖課程設(shè)計(jì)流程圖 開始輸入最后一個(gè)自然

5、數(shù) n輸入刪除數(shù) k 后的平均值 a/b你輸入的平均數(shù)錯(cuò)誤是否(n-1)%b=0(p-n)/(n-1)/b)=a=(p-1)/(n-1)/b)所刪除的數(shù)是 k圖 1結(jié) 束 - 6 -3.2 主要的數(shù)據(jù)結(jié)構(gòu)及完成本課程設(shè)計(jì)所用的方法主要的數(shù)據(jù)結(jié)構(gòu)及完成本課程設(shè)計(jì)所用的方法在黑板上從 1 開始寫出一組連續(xù)的自然數(shù),然后擦去其中的一個(gè)數(shù) k,其余的數(shù)的平均值為 a/b(a,b 為整數(shù))。試編寫程序求出被擦去的數(shù) k。分析題目,可以知道:1. 這組數(shù)是從 1 開始的一組連續(xù)的自然數(shù);2. 擦去其中的一個(gè)數(shù) k 后,其余的數(shù)的平均值 a/b;3. a,b 為整數(shù);4. 這一組數(shù)需自己輸入,平均數(shù) a/b

6、 為已知,但也必須自己輸入;5.刪去一個(gè)數(shù) k 后,平均數(shù)有范圍,需對(duì) a/b 加一個(gè)范圍,方便輸入。4.詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 4.14.1 建立數(shù)學(xué)模型建立數(shù)學(xué)模型在黑板上從 1 開始寫出一組連續(xù)的自然數(shù),然后擦去其中的一個(gè)數(shù) k,其余的數(shù)的平均值為 a/b(a,b 為整數(shù))。試編寫程序求出被擦去的數(shù) k。分析題目,首先假設(shè)這一組連續(xù)的自然數(shù)的最后一個(gè)數(shù)為 n則這一組數(shù)的總和為p=1+2+n= n(1)2n 刪去一個(gè)數(shù) k 后,其余的數(shù)的平均值為ab由關(guān)系可知 a1pkbn - 7 -所以 (1)akpnb在這個(gè)題目中,這組連續(xù)的自然數(shù),平均數(shù)都為已知,但都需要輸入者自己輸入。這組連續(xù)的自然數(shù)無

7、需再加任何條件就可以輸入,但平均數(shù)是有一個(gè)范圍的。通過對(duì)上述模型的分析,就可以對(duì)平均數(shù) a/b 做一個(gè)限制。其中:b 為擦了一個(gè)數(shù) k 后,這組數(shù)的個(gè)數(shù) n-1 的約數(shù),即 (n-1)%b=0在 b 的基礎(chǔ)上,再對(duì) a 加一個(gè)條件,即 (p-n)/(n-1)/b)=a=(p-1)/(n-1)/b)這樣通過輸入 n,a 和 b 就可以得到被刪除的數(shù) k。4.24.2 編寫程序?qū)崿F(xiàn)建立的數(shù)學(xué)模型編寫程序?qū)崿F(xiàn)建立的數(shù)學(xué)模型#includeint main() int n,k,a,b,i,j,q; int p=0; printf(-|n); printf( 請(qǐng)輸入這組自然數(shù)的最后一個(gè)數(shù):); scan

8、f(%d,&n); if(n0) printf(-|n); printf( n 必須為自然數(shù):); printf(-|n); - 8 - else for(i=1;i=n;i+) p=p+i; printf(-|n); printf( 1n 這 n 個(gè)數(shù)之和為 p=%dn,p); printf(-|n); printf( 請(qǐng)輸入擦除一個(gè)數(shù) k 后的平均數(shù) a/b .n); printf(-|n); printf( 其中:n); printf( b 是%d 的約數(shù).n,n-1); printf(-b=); scanf(%d,&b); printf(n); if(n-1)%b!=0) printf

9、(你輸入的 b 不正確!); printf(-|n); else j=(p-n)/(n-1)/b); q=(p-1)/(n-1)/b); printf( a 必須是%d 與%d 中的一個(gè)整數(shù).nn,j,q); printf(-a=); scanf(%d,&a); printf(n); if(aq) - 9 - printf(-|n); printf( 在這組數(shù)中 a 不可能為這個(gè)數(shù)!n); else k=p-a*(n-1)/b); printf( 則所刪除的數(shù) k 為%dn,k); printf(-|n); 4.3 程序各個(gè)部分的說明程序各個(gè)部分的說明 (1)定義變量定義變量int n,k,a

10、,b,i,j,q; int p=0;(2)計(jì)算這組數(shù)的總和計(jì)算這組數(shù)的總和 for(i=1;i=n;i+) p=p+i; printf( 1n 這 n 個(gè)數(shù)之和為 p=%dn,p);(3)輸入輸入 n,a,b首先輸入這組自然數(shù)printf( 請(qǐng)輸入這組數(shù)的最后一個(gè)數(shù):); - 10 - scanf(%d,&n);再輸入 b: printf( b 是%d 的約數(shù).n,n-1);scanf(%d,&b);最后輸入 a: printf( a 必須是%d 與%d 中的一個(gè)整數(shù).nn,j,q); scanf(%d,&a);(4)判斷輸入的平均數(shù)是否符合要求判斷輸入的平均數(shù)是否符合要求最用 ifelse

11、語句判斷輸入的平均數(shù)是否正確 if(n-1)%b!=0) printf(你輸入的 b 不正確!); printf(-|n); else j=(p-n)/(n-1)/b); q=(p-1)/(n-1)/b); printf( a 必須是%d 與%d 中的一個(gè)整數(shù).nn,j,q); printf(-a=); scanf(%d,&a); printf(n); if(aq) printf(-|n); printf( 在這組數(shù)中 a 不可能為這個(gè)數(shù)!n); else k=p-a*(n-1)/b); - 11 - printf( 則所刪除的數(shù) k 為%dn,k); printf(-|n); (5)輸出被刪

12、除的數(shù)輸出被刪除的數(shù) kk=p-a*(n-1)/b);printf( 則所刪除的數(shù) k 為%dn,k);5.測(cè)試結(jié)果測(cè)試結(jié)果 任選三組數(shù)來測(cè)試程序的可行性。(1) - 12 -(2)(3) 程序運(yùn)行結(jié)果正確。 - 13 -6.調(diào)試分析調(diào)試分析1.輸入的 n 不是自然數(shù):2.輸入 n 為自然數(shù),b 不是(n-1)的約數(shù)3.輸入 n 為自然數(shù),b 是(n-1)的約數(shù),但 a 不在(p-n)/(n-1)/b)=a=(p-1)/(n-1)/b)這個(gè)范圍內(nèi): - 14 -4.輸入的 n 為自然數(shù),平均數(shù) a/b 也符合條件,就可以得到被刪除的數(shù) k - 15 -5.在調(diào)試過程中還發(fā)現(xiàn),當(dāng)輸入的 n 過大

13、時(shí),由于計(jì)算機(jī)配置,結(jié)果在運(yùn)行的過程中得不到預(yù)期的結(jié)果:7.設(shè)計(jì)體會(huì)設(shè)計(jì)體會(huì)經(jīng)過這次課程設(shè)計(jì),我對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程有了進(jìn)一步的理解,對(duì) c 編程有了一定的提高。另外也提高了我分析問題、解決問題,從而運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力。就比如數(shù)我做的這題,擦數(shù)游戲。初看題目,很簡單的一個(gè)數(shù)學(xué)問題,但是再看題目,就會(huì)發(fā)現(xiàn)簡單的數(shù)學(xué)題目,用計(jì)算機(jī)實(shí)現(xiàn)就有難度了。因?yàn)橛?jì)算機(jī)語言跟現(xiàn)實(shí)中的語言是有差別的,需要把數(shù)學(xué)的算法轉(zhuǎn)換成數(shù)據(jù)結(jié)構(gòu)算法,再編程實(shí)現(xiàn)。通過這次課程設(shè)計(jì),我發(fā)現(xiàn)了自己平時(shí)學(xué)數(shù)據(jù)結(jié)構(gòu)這門課還有很多沒有注意到的地方。雖然說這次的課題順利完成了,但我對(duì)數(shù)據(jù)結(jié)構(gòu)這門課的學(xué)習(xí)還沒有完成,以后還必須對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行復(fù)習(xí)鞏固。以前在數(shù)據(jù)結(jié)構(gòu)這門課上,我學(xué)到的僅僅是理論知識(shí),但這次的課程設(shè)計(jì)讓我感受到課上的東西用到實(shí)際問題的難處。在今后對(duì)計(jì)算機(jī)方面知識(shí)的學(xué)習(xí)中,我要注意理論聯(lián)系實(shí)際,這樣才可以把學(xué)到的東西運(yùn)用出來,真正的做到學(xué)以致用! - 16 -8.結(jié)束語結(jié)束語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論