軟體工程實踐報告

2021-07-27 15:56:19 字數 3831 閱讀 2326

隨著社會的發展,人們生活的步調日益加快,越來越多的人加入了全球化的世界。人們不在拘泥於一小塊天地。加班,出差成了現代人不可避免的公務。

而此時一款可以隨時隨地娛樂的遊戲成了必需品。在手機和電腦成為人們日用品的社會,一款能在其上能便捷執行的遊戲成為買家的參考點。 現在我們所要介紹的這一款遊戲----貪吃蛇,就是滿足以上要求而設計出來的,希望能給玩家帶來娛樂。

貪吃蛇這一遊戲簡單易行,操作方便,娛樂性較強,吸引了不少人。這一款遊戲緊緊地抓住了人們的心理,雖然簡單,卻起樂無窮,在人們不斷追求更多的慾望下,該遊戲給人們帶來了追逐的快感,以及成功後的滿足感,對於一直處於高壓下的現代人是很好的放鬆工具。

關鍵字:turbo c,結構體函式,蛇節模型

目錄第一章前言1

第二章需求分析1

第三章設計要求2

3.1基本要求和提高要求2

第四章系統的組成3

第五章概要設計3

5.1程式初始化3

5.2程式流程4

第六章詳細設計6

6.1物件模型設6

6.2食物及蛇狀態的初始化及食物的出現9 6.3遊戲執行中的設計思12

6.4設定遊戲規則及結14

第七章除錯及測試結果與分析17

第八章結論18

參考文獻19

附錄19

c語言是在70年代初問世的。一九七八年由美國**電報公司(at&t)貝爾實驗室正式發表了c語言。早期的c語言主要是用於unix系統。

由於c語言的強大功能和各方面的優點逐漸為人們認識,到了八十年代,c開始進入其它作業系統,並很快在各類大、中、小和微型計算機上得到了廣泛的使用。成為當代最優秀的程式語言之一。語言是一種結構化語言。

它層次清晰,便於按模組化方式組織程式,易於除錯和維護。c語言的表現能力和處理能力極強。它不僅具有豐富的運算子和資料型別,便於實現各類複雜的資料結構。

它還可以直接訪問記憶體的實體地址,進行位(bit)一級的操作。由於c語言實現了對硬體的程式設計操作,因此c語言集高階語言和低階語言的功能於一體。既可用於系統軟體的開發,也適合於應用軟體的開發。

此外,c語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的c語言。因而越來越多的高等院校已經將c語言作為非計算機專業甚至計算機專業的必修課和選修課,c語言也成為了軟體設計的首選語言之一。

本學期我們進行了軟體工程實習活動,主要的任務就是運用所學的c語言知識,在turbo c整合環境下製作乙個小型貪食蛇應用程式,以達到熟悉和熟練運用c語言的目的,為將來的學習和工作打下良好的實踐基礎。

雖然貪食蛇遊戲在我們日常生活中是很平常見,但作為很普通的一款小遊戲,他卻有著極強的生命力。它的簡單易行使之廣泛的存在於電腦,手機,遊戲機等載體上,加上變化無窮、引人入勝讓它成為了一款受人喜歡的小遊戲

專案背景和內容概要:現在我們所要介紹的這一款遊戲---貪吃蛇。是個簡單的小遊戲,但卻能給人以放鬆,讓我們從繁重的日常生活中解脫出來。

而只有我們的身心得到了娛樂才能更好的投入到新的工作。現在的人,不管是已經工作的,還是還未進入社會的學生,都面臨著很大的壓力,而這樣一款能讓我們隨時隨地都能享受的遊戲,其魅力還是不可估量的。

·系統分析

1 可行性分析

1。1 技術可行性

完全可以利用c語言來程式設計,在tc下也能順利執行,可以說在技術這方面不會有大的問題。

1。2 經濟可行性

可以說其經濟利益將相當可觀,隨著手機和電腦的普及,這樣的小遊戲也將隨著普及,到時候我們也可以靜觀其成。

1。3 操作可行性

對於這樣乙個簡單易行的遊戲,其操作不會有問題的,不論是怎樣的平台都能很好的執行。而使用者也可以在其受益不淺。

2 需求分析

遊戲是人們生活中不可或缺的,乙個人從小到大,真正伴隨他成長的東西,遊戲占有著很重要的地位。不論是乙個玩具,還是乙個能和夥伴一起開心的小遊戲,都是能給我們留下很多美好的回憶。所以不論是什麼樣的遊戲,只要它能迎合人們內心的某種需求,它的市場總會是好的。

具體的設計要求包括基本要求和提高要求

貪食蛇遊戲的基本要求是在turbo c整合環境下用c語言進行編譯。

遊戲規則:

1、蛇頭不能咬蛇身--蛇頭不能和蛇身發生碰撞,撞上就gameover,包括不能反方向運動

2、蛇頭不能碰障礙--撞上就gameover,包括不能走出遊戲區域

3、蛇吃了食物會增加長度,食物吃掉乙個才會產生新的

4、蛇只有上下左右四個行走方向

提高要求是為了讓介面看起來更大方和美觀,並對吃下的豆子進行積分,當遊戲結束時,介面出現「game over」的提示

系統的組成部分即程式模組結構:

1、初始化:場景、外邊框和蛇(初始化蛇的長度,初始化蛇的行走方向)

2、在場景中放置食物,吃完乙個再出現下乙個,吃乙個食物蛇身增加一節,食物不能和障礙重合

3、蛇的運動,一節跟一節

4、行走中檢測蛇頭不能和障礙、蛇身碰撞,也不能超出遊戲區域

5、鍵盤的監聽,控制蛇的運動,及改變遊戲狀態

一、程式初始化:

1、全域性變數的定義(初始化遊戲的速度以及得分)

2、蛇結構體的定義,食物結構體的定義

3、圖形介面的初始化(init( )函式)

遊戲圍牆的繪製(draw()函式)

食物的出現(gameplay()函式)

此次編譯方法採用的是結構體定義程式設計,除了此方法還可以運用雙向鍊錶的方法製作貪食蛇遊戲,但是因為程式設計複雜且不容易理解,所以未採用。

二、設計流程圖

在遊戲程式中,主任務0主要完成一些初始化的工作,開機畫面的顯示。在任務2種一開始將螢幕清屏,然後繪製貪食蛇遊戲的邊界和計分狀態,最後進入乙個無限迴圈,在迴圈體中根據遊戲者的按鍵進行相應的處理,詳細流程圖如下圖所示:

reset鍵暫停鍵

方向鍵 圖1: 貪食蛇吃豆的任務流程圖

蛇的動態顯示建立在任務2,主要是不停的更新蛇的位置,另外每更新一次還需要判斷蛇是否碰到邊界,是否碰到自己身子,是否吃到豆子等。其流程圖如下圖所示: 否是

否第六章詳細設計

一、物件模型設計

1、尋找規律,建立物件模型:

首先從物理的角度來分析蛇得運動規律。它是蠕動的,像水一樣流動。他有個特性就是身體的每乙個點都經過他頭部所在的點,他每乙個時刻骨節所要運動的目的地是他前乙個骨節所在的位置。

不難看出,其中的物件模型為

蛇,骨骼,骨節,頭

抽象的介面為

蛇,骨骼,骨節,頭,圖中豆子

2、結構圖:

介面結構圖

骨骼骨骼

物件結構圖

3、給介面新增行為:

圖元(graphicobject)

繪畫:進行圖元自身的繪畫操作

當前矩形:得到圖元當前所在的矩形,也可考慮使用region,這樣使得對圖元範圍得描述更加具體。

骨節(condyle)

前乙個骨節:提供前序訪問

後乙個骨節:提供後序訪問

流動:進行骨節運動詭計得計算。

骨骼(cadre)(管理骨節鏈)

得到頭:得到蛇頭

得到尾:得到蛇尾

新增骨節:在骨節鏈中新增骨骼

刪除骨節:在骨節鏈中刪掉指定骨節

頭(head)

方向:能夠設定和訪問當前運動方向。

蛇(snake)

增長:蛇進行自身得增長

4、完善模型,引入訪問者模式

存在的問題:

當前是由具體的骨骼物件來負責圖元的繪畫以及處理流動的,而骨骼只是管理骨節,沒有提供任何訪問骨節的方法,我們應該怎樣訪問骨節呢?比如我們要每個骨節畫出自己的形態,我們可能會這樣做。在骨骼上提供乙個繪畫方法,然後通過遍歷骨節鏈,呼叫每個骨節的繪畫方法。

這樣似乎可以解決問題。那麼,我們要進行骨節流動計算呢?我們再在骨骼上提供流動方法,然後同樣的遍歷骨節,呼叫每個的流動方法。

我們要是加入統計骨節個數功能呢?我們要是加入其他的需要遍歷骨骼的方法呢?……

軟體工程報告

設計專案 圖書管理系統 專業電腦科學與技術 班級計s091 學號 093433 學生姓名李萌 同組同學郭飛 一 實驗目的 學習用軟體工程的方法開發軟體,熟練掌握用高階語言編寫 除錯和執行各種程式的設計方法。二 實驗要求 本系統需要掌握軟體工程的基本知識,對系統進行可行性分析和需求分析,並熟練運用vc...

軟體工程與實踐

2011 2012學年第二學期期末複習資料 本科一 名詞解釋 1.軟體生存週期 2.資料字典 3.軟體測試 二 填空 1.構成軟體專案的最終產品 和2.軟體生存週期的三個階段 和3.需求分析的技術主要有 和4.模組具有 和四個特性。三 簡單題 1.什麼是黑盒測試?黑盒測試主要採用的技術有哪些?2.資...

軟體工程課程實踐

實驗是檢驗真理的唯一標準 電腦科學系實驗報告 課程名稱 軟體工程 年級專業 軟體工程 姓名 00 學號 000 2011 2012 學年第一學期 實驗目錄列表 實驗一工具軟體visio的使用 實驗地點 計科系微軟實驗室1 b301 實驗時間 2011.9.9 星期五 實驗目的 熟悉工具軟體visio...