資源描述:
《《軟件工程導(dǎo)論》實(shí)驗(yàn)報告-貪吃蛇源程序加報告.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、《軟件工程導(dǎo)論》實(shí)驗(yàn)報告學(xué)院:班級:姓名:學(xué)號:[實(shí)驗(yàn)?zāi)康腯初步了解結(jié)構(gòu)化分析、設(shè)計方法的原理、步驟以及各階段的文檔,練習(xí)撰寫簡要的需求文檔、設(shè)計文檔。[實(shí)驗(yàn)內(nèi)容]貪吃蛇程序:貪吃蛇游戲是一個深受人們喜愛的游戲,一條蛇在密閉的圍墻內(nèi),在圍墻內(nèi)隨機(jī)出現(xiàn)一個食物,通過按鍵盤上的四個光標(biāo)鍵控制蛇向上下左右四個方向移動,蛇頭撞到食物則表示食物被蛇吃掉,這時蛇的身體長一節(jié),同時計1分,接著又出現(xiàn)食物,等待被蛇吃掉,如果蛇在移動過程中,撞到墻壁或身體交叉蛇頭撞到自己的身體,游戲結(jié)束。根據(jù)編寫貪吃蛇的游戲規(guī)則,我們利用c語言來進(jìn)行編輯具體步驟,從而使游戲能夠運(yùn)行,根據(jù)編寫貪吃蛇程序,掌握軟
2、件工程思想及要領(lǐng),進(jìn)一步鞏固編程思想和掌握畫圖函數(shù)底層,依據(jù)項(xiàng)目可行性研究的結(jié)果,進(jìn)行需求分析和設(shè)計,編寫簡要的需求規(guī)格說明書,繪制程序流程圖。[實(shí)驗(yàn)原理和步驟]當(dāng)前的建模方法主要有傳統(tǒng)的結(jié)構(gòu)化分析、設(shè)計方法(SA/D)和面向?qū)ο蠓治?、設(shè)計方法(OOA/D)兩種。分析階段:結(jié)構(gòu)化分析(SA)是一種建模技術(shù),它通過一定方法幫助開發(fā)人員定義系統(tǒng)需要什么功能,系統(tǒng)需要存儲和使用哪些數(shù)據(jù),以及為完成這些功能,系統(tǒng)需要什么樣的輸入和輸出以及如何把這些功能結(jié)合在一起來完成任務(wù)。設(shè)計階段:分總體設(shè)計和詳細(xì)設(shè)計兩階段??傮w設(shè)計階段的任務(wù)主要是確定系統(tǒng)由哪些模塊組成,以及這些模塊之間的相互關(guān)系
3、;詳細(xì)設(shè)計階段的任務(wù)主要是設(shè)計每個模塊的處理過程。常用的結(jié)構(gòu)化設(shè)計(SD)方法有面向數(shù)據(jù)流分析(DFA)的設(shè)計方法和面向數(shù)據(jù)的設(shè)計方法。DFA設(shè)計技術(shù)實(shí)施的通用步驟:(1)復(fù)查并精化DFD;(2)確定DFD類型;(3)把DFD映射到系統(tǒng)模塊結(jié)構(gòu),設(shè)計出模塊結(jié)構(gòu)的上層;(4)基于DFD逐步分解高層模塊,設(shè)計出下層模塊〈初步結(jié)構(gòu)〉;(5)根據(jù)模塊獨(dú)立性原理,精化模塊結(jié)構(gòu),得到更為合理的軟件結(jié)構(gòu);(6)模塊接口描述;(7)修改和補(bǔ)充數(shù)據(jù)詞典;(8)制定測試計劃。詳細(xì)設(shè)計階段的任務(wù)主要是確定每個模塊的處理過程,包括(1)確定每個模塊的算法。(2)確定每一個模塊的數(shù)據(jù)組織。(3)為每個
4、模塊設(shè)計一組測試用例。(4)編寫詳細(xì)設(shè)計說明書。詳細(xì)設(shè)計階段采用的方法是結(jié)構(gòu)化程序設(shè)計(SP),與SA,SD方法銜接。目標(biāo)是給出可以直接用以編碼的程序邏輯結(jié)構(gòu),強(qiáng)調(diào)清晰第一。設(shè)計思路:這個程序的關(guān)鍵點(diǎn)是表示蛇的圖形以及蛇的移動。用一個小矩形塊表示蛇的一節(jié)身體,身體每長一節(jié),增加一個矩形塊,蛇頭用兩節(jié)表示。移動時必須從蛇頭開始,所以蛇不能向相反方向移動,也就是蛇尾不能改作蛇頭。如果不按任何鍵,蛇自行在當(dāng)前方向上前移,當(dāng)游戲者按了有效的方向鍵后,蛇頭朝著指定的方向移動,一步移動一節(jié)身體,所以當(dāng)按了有效的方向鍵后,先確定蛇頭的位置,然后蛇身體隨著蛇頭移動,圖形的實(shí)現(xiàn)是從蛇頭的新位置
5、開始畫出蛇,這時,由于沒有清屏的原因,原來蛇的位置和新蛇的位置差一個單位,所以看起來蛇會多一節(jié)身體,所以將蛇的最后一節(jié)用背景色覆蓋。食物的出現(xiàn)和消失也是畫矩形塊和覆蓋矩形塊。為了便于理解,定義了兩個結(jié)構(gòu)體:食物和蛇。[需求規(guī)格說明書]主要功能陳述:這是一款適合各年齡階層小游戲,它可以使人們休息時的一種放松方式也可以是孩子們的娛樂游戲;另外對于一些對于有一定的C語言基礎(chǔ)的,可以一邊在玩的時候,感受在其中的編程思想并且自己進(jìn)行嘗試。IPO圖:輸入處理輸出分?jǐn)?shù)狀況界面相應(yīng)游戲中執(zhí)行相應(yīng)的操作游戲玩法操作游戲系統(tǒng)操作是否進(jìn)入游戲輸入密碼1判斷密碼正確2判斷操作正確性3進(jìn)行操作執(zhí)行判斷
6、4分?jǐn)?shù)統(tǒng)計5游戲界面構(gòu)建6游戲刷屏數(shù)據(jù)字典:先進(jìn)行蛇與食物的定義,再制定游戲中蛇的光標(biāo)處理方法,初始化蛇的位置坐標(biāo),接著創(chuàng)建整個游戲的活動界面從而確定游戲的整體的框架。初始化游戲的計分系統(tǒng),設(shè)置初始化分?jǐn)?shù),再增加分?jǐn)?shù)統(tǒng)計系統(tǒng)確立分?jǐn)?shù)處理的方法。接著編寫游戲的規(guī)則,蛇的走動方法與吃到食物增長的處理以及游戲中碰壁或碰到自身的處理,最后進(jìn)行對游戲失敗的處理以及游戲的清屏處理。[詳細(xì)設(shè)計說明書]模塊的文字描述:main()主函數(shù):這是程序的大體流程,首先定義使用到的常數(shù)、全局變量及函數(shù)原型說明,然后初始化圖形系統(tǒng),調(diào)用函數(shù)畫出開始畫面,調(diào)用函數(shù),即玩游戲的具體過程與分?jǐn)?shù)的增加,游戲結(jié)
7、束后調(diào)用關(guān)閉圖形系統(tǒng)清理屏幕,結(jié)束程序畫界面函數(shù):設(shè)計游戲的活動界面,就是一個密封的圍墻加上一個數(shù)據(jù)處理界面,利用printf來構(gòu)建游戲的大體框架與各個部分的具體內(nèi)容游戲具體過程函數(shù):這一部分是游戲的重要組成,調(diào)用這個函數(shù)是游戲的主要部分,重點(diǎn)是一次次反復(fù)表示蛇與食物的新位置并進(jìn)行對前一次的反復(fù)清屏。采用的方法是每次移動的時候從最后一節(jié)開始到倒數(shù)第二節(jié),將前一節(jié)的坐標(biāo)賦值給后一節(jié)的坐標(biāo),移動后只要把最后一節(jié)用背景色去除即可。蛇的方向通過wasd鍵進(jìn)行控制數(shù)組的加減。如果沒有食物,隨機(jī)出現(xiàn)食物;如果有食物