九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

分?jǐn)?shù)類的設(shè)計(jì)與實(shí)現(xiàn)[共27頁(yè)]

  • 資源ID:40076218       資源大小:1.17MB        全文頁(yè)數(shù):26頁(yè)
  • 資源格式: DOC        下載積分:12積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要12積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

分?jǐn)?shù)類的設(shè)計(jì)與實(shí)現(xiàn)[共27頁(yè)]

課課 程程 設(shè)設(shè) 計(jì)計(jì) 任任 務(wù)務(wù) 書(shū)書(shū)學(xué)院學(xué)院信息科學(xué)與工程信息科學(xué)與工程專業(yè)專業(yè)電子信息科學(xué)與技術(shù)電子信息科學(xué)與技術(shù)學(xué)生姓名學(xué)生姓名學(xué)號(hào)學(xué)號(hào)設(shè)計(jì)題目設(shè)計(jì)題目1.1.分?jǐn)?shù)類的設(shè)計(jì)與實(shí)現(xiàn)分?jǐn)?shù)類的設(shè)計(jì)與實(shí)現(xiàn) 2.2.生命游戲生命游戲 1.分?jǐn)?shù)類的設(shè)計(jì)與實(shí)現(xiàn)分?jǐn)?shù)類的設(shè)計(jì)與實(shí)現(xiàn) 建立用于完成分?jǐn)?shù)形式運(yùn)算的類 RationalNumber。編寫(xiě)一個(gè)測(cè)試該類的程序。用整數(shù)變量表示類的私有數(shù)據(jù)(即分子和分母) 。給類提供一個(gè)能夠?qū)λ暶鞯膶?duì)象初始化的構(gòu)造函數(shù)。為了能夠在不提供初始化值的情況下也能對(duì)對(duì)象初始化,構(gòu)造函數(shù)中應(yīng)該包含默認(rèn)的值。構(gòu)造函數(shù)還應(yīng)該以最簡(jiǎn)分?jǐn)?shù)的形式存儲(chǔ)數(shù)據(jù),即 2/4 應(yīng)該在對(duì)象中存儲(chǔ)成分子為 1、分母為 2 的形式。公有成員函數(shù)應(yīng)該有以下功能: 1.兩個(gè)有理數(shù)相加,以最簡(jiǎn)形式保存結(jié)果; 2.兩個(gè)有理數(shù)相減,以最簡(jiǎn)形式保存結(jié)果; 3.兩個(gè)有理數(shù)相乘,以最簡(jiǎn)形式保存結(jié)果; 4.兩個(gè)有理數(shù)相除,以最簡(jiǎn)形式保存結(jié)果; 5.以 a/b 的形式輸出有理數(shù)(a 是分子,b 是分母) ; 6.以浮點(diǎn)形式輸出有理數(shù)。2.2.生命游戲生命游戲 生命游戲其實(shí)是一個(gè)零玩家游戲。它包括一個(gè)二維矩形世界,這個(gè)世界中的每個(gè)方格居住著一個(gè)活著的或死了的細(xì)胞。一個(gè)細(xì)胞在下一個(gè)時(shí)刻生死取決于相鄰八個(gè)方格中活著的或死了的細(xì)胞的數(shù)量。如果相鄰方格活著的細(xì)胞數(shù)量過(guò)多,這個(gè)細(xì)胞會(huì)因?yàn)橘Y源匱乏而在下一個(gè)時(shí)刻死去;相反,如果周圍活細(xì)胞過(guò)少,這個(gè)細(xì)胞會(huì)因太孤單而死去。1.如果一個(gè)細(xì)胞周圍有 3 個(gè)細(xì)胞為生(一個(gè)細(xì)胞周圍共有 8 個(gè)細(xì)胞) ,則該細(xì)胞為生(即該細(xì)胞若原先為死,則轉(zhuǎn)為生,若原先為生,則保持不變) 。 2.如果一個(gè)細(xì)胞周圍有 2 個(gè)細(xì)胞為生,則該細(xì)胞的生死狀態(tài)保持不變; 3.其它情況下,該細(xì)胞為死(即該細(xì)胞若原先為生,則轉(zhuǎn)為死,若原先為死,則保持不變)進(jìn)度安排:第 17 周:分析題目,查閱課題相關(guān)資料,進(jìn)行類設(shè)計(jì)、算法設(shè)計(jì);第 18 周:上機(jī)調(diào)試程序,程序測(cè)試與分析,撰寫(xiě)課程設(shè)計(jì)報(bào)告,準(zhǔn)備答辯。指導(dǎo)教師(簽字):指導(dǎo)教師(簽字):年年 月月 日日學(xué)院院長(zhǎng)(簽字)學(xué)院院長(zhǎng)(簽字)年年 月月 日日目目 錄錄PART I.11 需求分析.12 算法基本原理.12.1 加法.12.2 減法.22.3 乘法.22.4 除法.23 類設(shè)計(jì).24 詳細(xì)設(shè)計(jì).34.1 類的接口設(shè)計(jì).34.2 類的實(shí)現(xiàn).44.3 主函數(shù)設(shè)計(jì).95 運(yùn)行結(jié)果與分析.105.1 程序運(yùn)行結(jié)果.105.2 運(yùn)行結(jié)果分析 .12PART II.126 基于 MFC 的圖形界面程序開(kāi)發(fā).126.1 基于 MFC 的圖形界面程序設(shè)計(jì) .12(1)界面設(shè)計(jì).12(2)代碼設(shè)計(jì).146.2 測(cè)試程序.226.3 MFC 程序編寫(xiě)總結(jié).237 參考文獻(xiàn).24PART I1 需求分析需求分析(1) 有理數(shù)可分為整數(shù)和分?jǐn)?shù)也可分為三種,一;正數(shù),二;0,三;負(fù)數(shù)。除了無(wú)限不循環(huán)小數(shù)以外的實(shí)數(shù)統(tǒng)稱有理數(shù)。在數(shù)學(xué)上有理數(shù)的運(yùn)用相當(dāng)廣泛,所以一款簡(jiǎn)易的有理數(shù)計(jì)算器可以大大節(jié)約時(shí)間,而且不會(huì)因?yàn)槿藶檎`差導(dǎo)致計(jì)算結(jié)果出錯(cuò)。(2) 依照它們的序列,有理數(shù)具有一個(gè)序拓?fù)?。有理?shù)是實(shí)數(shù)的(稠密)子集,因此它同時(shí)具有一個(gè)子空間拓?fù)?。采用度量,有理?shù)構(gòu)成一個(gè)度量空間,這是它的第三個(gè)拓?fù)?。幸運(yùn)的是,所有三個(gè)拓?fù)湟恢虏⒂欣頂?shù)轉(zhuǎn)化到一個(gè)拓?fù)溆?。有理?shù)是非局部緊致空間的一個(gè)重要的實(shí)例。這個(gè)空間也是完全不連通的。有理數(shù)不構(gòu)成完備的度量空間;實(shí)數(shù)是它的完備集。(3)程序測(cè)試數(shù)據(jù)選擇若干種有代表性的數(shù)據(jù)來(lái)進(jìn)行測(cè)試,通過(guò)臨界數(shù)據(jù)的測(cè)試來(lái)判斷系統(tǒng)的正確性。2 算法基本原理算法基本原理2.1 加法加法有理數(shù)的加法與小學(xué)的加法大有不同,小學(xué)的加法不涉及到符號(hào)的問(wèn)題,而有理數(shù)的加法運(yùn)算總是涉及到兩個(gè)問(wèn)題:一是確定結(jié)果的符號(hào);二是求結(jié)果的絕對(duì)值。 在進(jìn)行有理數(shù)加法運(yùn)算時(shí),首先判斷兩個(gè)加數(shù)的符號(hào):是同號(hào)還是異號(hào),是否有 0。從而確定用那一條法則。在應(yīng)用過(guò)程中,一定要牢記先符號(hào),后絕對(duì)值,熟練以后就不會(huì)出錯(cuò)了。 多個(gè)有理數(shù)的加法,可以從左向右計(jì)算,也可以用加法的運(yùn)算定律計(jì)算。法則1同號(hào)相加,取相同符號(hào),并把絕對(duì)值相加。2絕對(duì)值不等的異號(hào)加減,取絕對(duì)值較大的加數(shù)符號(hào),并用較大的絕對(duì)值減去較小的絕對(duì)值?;橄喾磾?shù)的兩個(gè)數(shù)相加得 0。3一個(gè)數(shù)同 0 相加,仍得這個(gè)數(shù)。定律.同號(hào)相加,取相同符號(hào),并把絕對(duì)值相加。.絕對(duì)值不相等的異號(hào)兩數(shù)加減,取絕對(duì)值較大的符號(hào),并用較大的絕對(duì)值減去較小的絕對(duì)值?;橄喾磾?shù)的兩個(gè)數(shù)相加得 0。.一個(gè)數(shù)同 0 相加,仍得這個(gè)數(shù)。.相反數(shù)相加結(jié)果一定得 0。2.2 減法減法有理數(shù)減法法則:減去一個(gè)數(shù),等于加上這個(gè)數(shù)的相反數(shù)。其中:兩變:減法運(yùn)算變加法運(yùn)算,減數(shù)變成它的相反數(shù)。一不變:被減數(shù)不變。可以表示成: ab=a+(b) 。2.3 乘法乘法1.兩數(shù)相乘,同號(hào)為正,異號(hào)為負(fù),并把絕對(duì)值相乘。例;(-5)(-3)=15 (-6)4=-242.任何數(shù)字同 0 相乘,都得 0. 例;01=03.幾個(gè)不等于 0 的數(shù)字相乘,積的符號(hào)由負(fù)因數(shù)的個(gè)數(shù)決定。當(dāng)負(fù)因數(shù)有奇數(shù)個(gè)數(shù)時(shí),積為負(fù);當(dāng)負(fù)因數(shù)有偶數(shù)個(gè)數(shù)時(shí),積為正。并把其絕對(duì)值相乘。例;(-10)-5(-0.1)(-6)=積為正數(shù),而(-4)(-7)(-25)=積為負(fù)數(shù)4.幾個(gè)數(shù)相乘,有一個(gè)因數(shù)為 0 時(shí),積為 0. 例;3(-2)0=0 5.乘積為 1 的兩個(gè)有理數(shù)互為倒數(shù)(reciprocal) 。例如,3 與1/3,3/8 與8/3。2.4 除法除法1.除以一個(gè)數(shù)等于乘以這個(gè)數(shù)的倒數(shù)。 (注意:0 沒(méi)有倒數(shù))2.兩數(shù)相除,同號(hào)為正,異號(hào)為負(fù),并把絕對(duì)值相除。3.0 除以任何一個(gè)不等于 0 的數(shù),都等于 0。4.0 在任何條件下都不能做除數(shù)。3 類設(shè)計(jì)類設(shè)計(jì)從上面的算法分析可以看到,本設(shè)計(jì)面臨的計(jì)算問(wèn)題的關(guān)鍵是設(shè)計(jì)一個(gè)有理數(shù)運(yùn)算類。這個(gè)類必須能將用戶給定的 2 個(gè)整數(shù)表達(dá)成有理數(shù),同時(shí)必須進(jìn)行合法性檢測(cè)。同時(shí)需要為類設(shè)計(jì) 4 個(gè)方法,分別來(lái)運(yùn)算加法,減法,乘法和除法,為了使有理數(shù)運(yùn)算看起來(lái)更符合自然,所以必須利用 C+的重載技術(shù),來(lái)對(duì)相應(yīng)的 4 種運(yùn)算符進(jìn)行重載,并且還需要設(shè)計(jì)一個(gè)方法來(lái)滿足有理數(shù)分?jǐn)?shù)形式和小數(shù)形式的轉(zhuǎn)換。要從用戶輸入創(chuàng)建一個(gè)有理數(shù),為類設(shè)計(jì)了一個(gè)帶有默認(rèn)參數(shù)的構(gòu)造函數(shù)來(lái)滿足需求。根據(jù)以上的分析,設(shè)計(jì)出CRationalNumber 類。如圖 3.1 所示。圖 3.1 CRationalNumber 類UML 圖形表示4 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)整個(gè)程序分為三個(gè)獨(dú)立的文檔,RationalNumber.h 文件中為有理數(shù)類 CRationalNumber的申明,RationalNumber.cpp 文件中包括有理數(shù)類的成員函數(shù)實(shí)現(xiàn)文件;main.cpp 文件包括程序的入口函數(shù)和測(cè)試數(shù)據(jù)。4.1 類的接口設(shè)計(jì)類的接口設(shè)計(jì)/RationalNumber.h 文件,實(shí)現(xiàn)類的聲明class CRationalNumber public:CRationalNumber (int nt=0,int dt=1); /帶有默認(rèn)參數(shù)的構(gòu)造函數(shù)聲明virtual CRationalNumber();public:int numtor; /分子int dentor; /分母CRationalNumber operator+(CRationalNumber &rn); /加號(hào)運(yùn)算符重載函數(shù)聲明CRationalNumber operator-(CRationalNumber &rn); /減號(hào)運(yùn)算符重載函數(shù)聲明CRationalNumber operator*(CRationalNumber &rn); /乘號(hào)運(yùn)算符重載函數(shù)聲明CRationalNumber operator/(CRationalNumber &rn); /除號(hào)運(yùn)算符重載函數(shù)聲明float ConvertFloat(); /將有理數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù);ostream& operator (ostream &,RationalNumber &); /重載流插入運(yùn)算符,使分?jǐn)?shù)以(a/b)形式輸出函數(shù)聲明類 CRationalNumber 設(shè)計(jì)了一個(gè)帶有默認(rèn)構(gòu)造參數(shù)的構(gòu)造函數(shù),方便用戶構(gòu)造有理數(shù)。同時(shí)設(shè)計(jì)了 4 個(gè)重載函數(shù),可以讓使用者像使用普通整數(shù)那樣對(duì)有理數(shù)運(yùn)算進(jìn)行操作,大大的提高了使用簡(jiǎn)潔性。4.2 類的實(shí)現(xiàn)類的實(shí)現(xiàn)/ RationalNumber.cpp 文件,類實(shí)現(xiàn)#include stdafx.h#include RationalCompute.h#include RationalNumber.h/ Construction/Destruction/CRationalNumber:CRationalNumber(int nt,int dt) /帶有默參數(shù)構(gòu)造函數(shù)的定義int temp,num,n,d;n=nt;d=dt;if(nnumtor*rn.dentor+rn.numtor*this-dentor;temp.dentor=this-dentor*rn.dentor;int temp1,num,n,d;n=temp.numtor;d=temp.dentor;if(nnumtor*rn.dentor-rn.numtor*this-dentor;temp.dentor=this-dentor*rn.dentor;int temp1,num,n,d;n=temp.numtor;d=temp.dentor;if(nnumtor*rn.numtor;temp.dentor=this-dentor*rn.dentor;int temp1,num,n,d;n=temp.numtor;d=temp.dentor;if(nnumtor*rn.dentor;temp.dentor=this-dentor*rn.numtor;int temp1,num,n,d;n=temp.numtor;d=temp.dentor;if(nnumtor)/float(this-dentor);return (temp);ostream& operator (ostream &output,RationalNumber &rn) /重載流插入運(yùn)算符的定義,使分?jǐn)?shù)以(a/b)形式輸出if(rn.dentor=0) /分母是 0 輸出 errorcouterror!0 & rn.dentor0)output-rn.numtor/-rn.dentor;elseoutputrn.numtor/rn.dentor;return output;在類的構(gòu)造函數(shù)中,對(duì)用戶輸入的數(shù)據(jù)進(jìn)行了求最大公約數(shù)處理,使輸入數(shù)據(jù)看起來(lái)最簡(jiǎn)潔化。而且在所有的運(yùn)算操作中都對(duì)錯(cuò)誤的數(shù)據(jù)(如分母為 0)的情況進(jìn)行了處理。由于運(yùn)算符比較特殊,所以沒(méi)有將重載符放入類的成員函數(shù)中,而是作為全局函數(shù)來(lái)處理,避免與 cout的沖突。4.3 主函數(shù)設(shè)計(jì)主函數(shù)設(shè)計(jì)/main.cpp 主函數(shù)#include RationalNumber. h int main()cout .oO 歡迎使用有理數(shù)計(jì)算器 Oo. 請(qǐng)根據(jù)提示輸入運(yùn)算數(shù)據(jù)! endl; int n1,n2,m1,m2; coutnn 請(qǐng)輸入第一個(gè)分?jǐn)?shù)的分子與分母:n1n2; cout請(qǐng)輸入第二個(gè)分?jǐn)?shù)的分子與分母:m1m2; RationalNumber rn1(n1,n2); /定義類的對(duì)象 rn1 并指定分子與分母值 RationalNumber rn2(m1,m2); /定義類的對(duì)象 rn2 并指定分子與分母值RationalNumber rn3,rn4,rn5,rn6; /定義類的對(duì)象 rn3,rn4,rn5,rn6 不指定分子與分母,用默認(rèn)參數(shù)對(duì)其初始化 /調(diào)用以浮點(diǎn)形式輸出分?jǐn)?shù)函數(shù)rn3=rn1+rn2; /調(diào)用加號(hào)重載函數(shù)rn4=rn1-rn2; /調(diào)用減號(hào)重載函數(shù)rn5=rn1*rn2; /調(diào)用乘號(hào)重載函數(shù)rn6=rn1/rn2; /調(diào)用除號(hào)重載函數(shù)coutrn1 加 rn2 等于: rn3 或者 ; /調(diào)用流插入運(yùn)算符,使分?jǐn)?shù)以(a/b)形式輸出rn3.showfloat(); /調(diào)用以浮點(diǎn)形式輸出分?jǐn)?shù)函數(shù)coutrn1 減 rn2 等于: rn4 或者 ; /調(diào)用流插入運(yùn)算符,使分?jǐn)?shù)以(a/b)形式輸出rn4.showfloat(); /調(diào)用以浮點(diǎn)形式輸出分?jǐn)?shù)函數(shù)coutrn1 乘 rn2 等于: rn5 或者 ; /調(diào)用流插入運(yùn)算符,使分?jǐn)?shù)以(a/b)形式輸出rn5.showfloat(); /調(diào)用以浮點(diǎn)形式輸出分?jǐn)?shù)函數(shù)coutrn1 除 rn2 等于: rn6 或者 ; /調(diào)用流插入運(yùn)算符,使分?jǐn)?shù)以(a/b)形式輸出rn6.showfloat(); /調(diào)用以浮點(diǎn)形式輸出分?jǐn)?shù)函數(shù)cout-計(jì)算完成,請(qǐng)按任意鍵退出系統(tǒng)!endl;getchar();getchar(); return 0;在程序的主函數(shù)部分,選擇了讓用戶輸入操作數(shù)據(jù)的方式來(lái)互動(dòng),當(dāng)用戶根據(jù)提示來(lái)輸入相應(yīng)的數(shù)據(jù)后,程序會(huì)自動(dòng)運(yùn)算出每組數(shù)據(jù)的所有操作結(jié)果,如果用戶輸入數(shù)據(jù)有錯(cuò)誤,則會(huì)顯示出錯(cuò)誤信息。 5 運(yùn)行結(jié)果與分析運(yùn)行結(jié)果與分析5.1 程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果當(dāng)輸入正確無(wú)誤的數(shù)據(jù)后,程序運(yùn)行結(jié)果如圖 5.1 所示。圖圖 5.1 程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果從圖 2 中可以看出,當(dāng)輸入正確的數(shù)據(jù)后,系統(tǒng)能正確無(wú)誤的計(jì)算出有理數(shù)相加,相減,相乘,相除的結(jié)果,并能正確轉(zhuǎn)換成小數(shù)形式。 當(dāng)輸入有誤的數(shù)據(jù),如分母為 0 的時(shí)候,程序運(yùn)行結(jié)果如圖 5.2 所示。圖圖 5.2 程序運(yùn)行結(jié)果(錯(cuò)誤數(shù)據(jù)源)程序運(yùn)行結(jié)果(錯(cuò)誤數(shù)據(jù)源)從圖 5.2 中可以看出,當(dāng)輸入錯(cuò)誤的數(shù)據(jù)后,程序會(huì)檢測(cè)出錯(cuò)誤數(shù)據(jù)源,證明了程序的健壯性。當(dāng)輸入的數(shù)據(jù)分子和分母最大公約數(shù)不為 1 的情況下,程序運(yùn)行結(jié)果如圖 5.3所示:圖圖 5.3 程序運(yùn)行結(jié)果(有公約數(shù))程序運(yùn)行結(jié)果(有公約數(shù))5.2 運(yùn)行結(jié)果分析運(yùn)行結(jié)果分析首先當(dāng)向程序輸入正確的數(shù)據(jù)源后,程序能準(zhǔn)確快速的計(jì)算出 4 則運(yùn)算的結(jié)果,當(dāng)向程序輸入分母為 0 的錯(cuò)誤的數(shù)據(jù)后,程序也同樣能夠識(shí)別。當(dāng)向程序中輸入的分子分母有最大公約數(shù),并且最大公約數(shù)不為 1 的情況下,說(shuō)明分?jǐn)?shù)可以化簡(jiǎn),程序也能很好的識(shí)別并給出正確的結(jié)果。從運(yùn)行結(jié)果來(lái)分析,設(shè)計(jì)的有理數(shù)類完全滿足于需求PART II6 基于基于 MFC 的圖形界面程序開(kāi)發(fā)的圖形界面程序開(kāi)發(fā)6.1 基于基于 MFC 的圖形界面程序設(shè)計(jì)的圖形界面程序設(shè)計(jì)MFC 的圖形界面程序設(shè)計(jì)可在上述類設(shè)計(jì)的基礎(chǔ)上進(jìn)行改造,MFC 的圖形界面程序與 DOS 界面程序的主要不同點(diǎn)是:MFC 圖形界面程序與 DOS 界面程序的輸入輸出方式不同,DOS 界面程序采用字符交互式實(shí)現(xiàn)數(shù)據(jù)輸入輸出,主要通過(guò) cin,cout 等 I/O 流實(shí)現(xiàn),而 MFC 的圖形程序界面采用標(biāo)準(zhǔn) Windows 窗口和控件實(shí)現(xiàn)輸入輸出,因此必須在 MFC 類的框架下加入上面所設(shè)計(jì)的矩陣和方程組類,并通過(guò)圖形界面的輸入輸出改造來(lái)完成。(1)界面設(shè)計(jì))界面設(shè)計(jì)首先在 VC 中建立 MFC AppWizard(exe)工程,名稱為 RationalCompute,并在向?qū)У腟tep1 中選擇 Dialog based,即建立基于對(duì)話框的應(yīng)用程序,如下圖 6.1 所示圖圖 6.1 建立建立 MFC AppWizard(exe)工程工程在彈出的 MFC AppWizard 對(duì)話框中,選擇單文檔應(yīng)用程序,其他使用默認(rèn)值如圖 6.2,點(diǎn)擊完成。圖圖 6.2 選擇文檔類型選擇文檔類型建立應(yīng)用程序工程骨架,點(diǎn)擊確定。如圖 6.3圖圖 6.3 建立工程骨架建立工程骨架此程序已經(jīng)具備了常見(jiàn)的程序外觀,如標(biāo)題欄,菜單欄,工具欄,狀態(tài)欄和視圖區(qū),程序的框架已經(jīng)構(gòu)建起來(lái)了。可以在 VC+環(huán)境中看到 App Wizard 已經(jīng)生成 5 個(gè)類,如圖 6.4 圖圖 6.4,應(yīng)用程序類視圖,應(yīng)用程序類視圖(2)代碼設(shè)計(jì))代碼設(shè)計(jì)在 CMyView 類視圖里添加畫(huà)筆,畫(huà)出生命游戲中的游戲界面,定義時(shí)間函數(shù),定義更新速度以及生命游戲的游戲規(guī)則,代碼如下:void CMyView:paint(CDC *p)int a,b,i,j;for(i=0;i20;i+)for(j=0;jEllipse(i*30,j*30,i*30+30,j*30+30);CBrush c;c.CreateSolidBrush(RGB(0,255,0); p-SelectObject(c);srand(int)time(NULL);for(int x=0;xEllipse(a*30,b*30,a*30+30,b*30+30); float time2; char str20; time2=(float)(time1)/1000.0; sprintf(str,更新速度:%.2f 秒,time2); p-TextOut(20,630,str,strlen(str);DeleteObject(c);void CMyView:paint1(CDC *p) int i,j;for(i=0;i20;i+)for(j=0;j20;j+)int num=0;for(int i1=0;i13;i1+)for(int j1=0;j1SelectObject(c);p-Ellipse(i*30,j*30,i*30+30,j*30+30);if(num1=1)m1i+1j+1=1;elsemi+1j+1=1;DeleteObject(c);else if(num=2)if(num1=1)m1i+1j+1=mi+1j+1;elsemi+1j+1=m1i+1j+1;/*HBRUSH c; if(mi+1j+1=1) c=CreateSolidBrush(RGB(0,255,0); :SelectObject(hdc,c);else c=CreateSolidBrush(RGB(255,255,255); :SelectObject(hdc,c); :Ellipse(hdc,i*30,j*30,i*30+30,j*30+30); :DeleteObject(c);*/elseCBrush c; c.CreateSolidBrush(RGB(255,255,255); p-SelectObject(c);p-Ellipse(i*30,j*30,i*30+30,j*30+30);if(num1=1)m1i+1j+1=0;elsemi+1j+1=0;DeleteObject(c);if(num1=1)num1=0;elsenum1=1;void CMyView:OnDraw(CDC* pDC)CMyDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);paint(pDC);/ TODO: add draw code for native data here/ CMyView diagnostics#ifdef _DEBUGvoid CMyView:AssertValid() constCView:AssertValid();void CMyView:Dump(CDumpContext& dc) constCView:Dump(dc);CMyDoc* CMyView:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMyDoc);return (CMyDoc*)m_pDocument;#endif /_DEBUG/ CMyView message handlersvoid CMyView:OnTimer(UINT nIDEvent) CDC *p;p=GetDC(); paint1(p);CView:OnTimer(nIDEvent);void CMyView:OnFileNew() SetTimer(1,time1,NULL);void CMyView:OnFileOpen() KillTimer(1);void CMyView:OnM1() CDC *p; p=GetDC(); KillTimer(1); time1=time1/10; float time2; char str20; time2=(float)(time1)/1000.0; sprintf(str,更新速度:%.2f 秒,time2); p-TextOut(20,630,str,strlen(str); SetTimer(1,time1,NULL);void CMyView:OnM2() CDC *p; p=GetDC(); KillTimer(1); time1=time1*10; float time2; char str20; time2=(float)(time1)/1000.0; sprintf(str,更新速度:%.2f 秒,time2); p-TextOut(20,630,str,strlen(str); SetTimer(1,time1,NULL); 6.2 測(cè)試程序測(cè)試程序游戲界面如下圖 6.5,此時(shí)游戲未開(kāi)始,點(diǎn)擊開(kāi)始游戲,則游戲開(kāi)始,玩家可通過(guò)暫停,加速,減速參與游戲,游戲界面上的細(xì)胞根據(jù)運(yùn)動(dòng)規(guī)律每秒更新一次,則形成了一幅時(shí)刻變化的圖。變化中的生命游戲圖如圖 6.6,6.7.圖圖 6.5 游戲開(kāi)始界面游戲開(kāi)始界面 圖圖 6.6 圖圖 6.76.3 MFC 程序編寫(xiě)總結(jié)程序編寫(xiě)總結(jié)MFC 程序與控制臺(tái)程序最大的區(qū)別就是界面,由于 MFC 是一個(gè)微軟公司提供的類庫(kù)(class libraries) ,以 C+類的形式封裝了 Windows 的 API,并且包含一個(gè)應(yīng)用程序框架。其中包含的類包含大量 Windows 句柄封裝類和很多Windows 的內(nèi)建控件和組件的封裝類。所以傳統(tǒng)的控制臺(tái)程序只需要學(xué)習(xí) C+就能編寫(xiě),但 MFC 程序必須要先熟悉 windows 編程,這也是初學(xué)者最大的挑戰(zhàn)。不熟悉 windows 編程可以說(shuō)是對(duì) MFC 程序無(wú)從下手,本系統(tǒng)采用的是MFC 的對(duì)話框架構(gòu),相比于文本文檔模式來(lái)講,要簡(jiǎn)單易懂些。MFC 提供的對(duì)話框模板大大提高了用戶體驗(yàn)的滿意度和友好度,所以 MFC 必將為 windows程序員必學(xué)的類庫(kù)。通過(guò)本次課程設(shè)計(jì)的開(kāi)發(fā),使我初步掌握了 windows 程序設(shè)計(jì)的竅門,也了解了與傳統(tǒng)控制臺(tái)程序之前的差別,可以說(shuō) C+是基礎(chǔ),會(huì) windows 編程才能寫(xiě)出更友好實(shí)用的應(yīng)用軟件來(lái)。通過(guò)面向?qū)ο蟮姆庋b與設(shè)計(jì)實(shí)踐,是我更進(jìn)一步理解了什么是面向?qū)ο缶幊?。由于本課程設(shè)計(jì)要求的主要功能比較簡(jiǎn)單,所以我相信這只是我學(xué)習(xí)中的一個(gè)小臺(tái)階,我將以此為基石,在今后的學(xué)習(xí)過(guò)程中不斷總結(jié)和進(jìn)步,寫(xiě)希望老師能給予批評(píng)指正。7 參考文獻(xiàn)參考文獻(xiàn)1徐士良. C 常用算法程序集. 北京:清華大學(xué)出版社,19952鄭莉,董淵,張瑞豐. C+語(yǔ)言程序設(shè)計(jì)(第 3 版). 北京:清華大學(xué)出版社,20073錢能. C+程序設(shè)計(jì)教程(第二版). 北京:清華大學(xué)出版社,20074陳志泊,王春玲. 面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言C+. 北京:人民郵電出版社,20025李慶揚(yáng),王能超,易大義. 數(shù)值分析. 湖北:華中理工大學(xué)出版社,19866李愛(ài)華,程磊 面向?qū)ο蟪绦蛟O(shè)計(jì) C+語(yǔ)言 清華大學(xué)出版社,20107馬秀麗,劉志嫵,李筠 C 語(yǔ)言程序設(shè)計(jì) 清華大學(xué)出版社,2008

注意事項(xiàng)

本文(分?jǐn)?shù)類的設(shè)計(jì)與實(shí)現(xiàn)[共27頁(yè)])為本站會(huì)員(gfy****yf)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!