《软件工程导论》实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2011-2012(2)《软件工程导论》实验报告

学院:计算机学院

班级:软件工程114

姓名:***

学号:*********

目录

实验1:项目计划、分析和设计

实验2;编码

实验3:代码复查、编译

实验4:项目测试总结

软件工程导论实验一:项目计划、分析和设计

[ 实验日期 ] 2012 年 4 月 20 日

[ 实验目的 ]

初步了解结构化分析、设计方法的原理、步骤以及各阶段的文档,练习撰写简要的需求文档、设计文档。

[ 实验内容 ]

贪吃蛇程序:贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物则表示食物被蛇吃掉,这时蛇的身体长一节,同时计1分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体,游戏结束。根据编写贪吃蛇的游戏规则,我们利用c语言来进行编辑具体步骤,从而使游戏能够运行,根据编写贪吃蛇程序,掌握软件工程思想及要领,进一步巩固编程思想和掌握画图函数底层,依据项目可行性研究的结果,进行需求分析和设计,编写简要的需求规格说明书,绘制程序流程图。

[ 实验原理和步骤]

当前的建模方法主要有传统的结构化分析、设计方法(SA/D)和面向对象分析、设计方法(OOA/D)两种。

分析阶段:

结构化分析(SA)是一种建模技术,它通过一定方法帮助开发人员定义系统需要什么功能,系统需要存储和使用哪些数据,以及为完成这些功能,系统需要什么样的输入和输出以及如何把这些功能结合在一起来完成任务。

设计阶段:

分总体设计和详细设计两阶段。总体设计阶段的任务主要是确定系统由哪些模块组成,以及这些模块之间的相互关系;详细设计阶段的任务主要是设计每个模块的处理过程。常用的结构化设计(SD)方法有面向数据流分析(DFA)的设计方法和面向数据的设计方法。DFA设计技术实施的通用步骤:(1)复查并精化DFD;(2)确定DFD类型;

(3)把DFD映射到系统模块结构,设计出模块结构的上层;(4)基于DFD逐步分解高层模

块,设计出下层模块〈初步结构〉;(5)根据模块独立性原理,精化模块结构,得到更为合理的软件结构;(6)模块接口描述;(7)修改和补充数据词典;(8)制定测试计划。

详细设计阶段的任务主要是确定每个模块的处理过程,包括(1)确定每个模块的算法。(2)确定每一个模块的数据组织。(3)为每个模块设计一组测试用例。(4)编写详细设计说明书。详细设计阶段采用的方法是结构化程序设计(SP),与SA,SD方法衔接。目标是给出可以直接用以编码的程序逻辑结构,强调清晰第一。

设计思路:

这个程序的关键点是表示蛇的图形以及蛇的移动。用一个小矩形块表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不

能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时,由于没有清屏的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来蛇会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块。为了便于理解,定义了两个结构体:食物和蛇。

[ 需求规格说明书]

主要功能陈述:这是一款适合各年龄阶层小游戏,它可以使人们休息时的一种放松方式也可以是孩子们的娱乐游戏;另外对于一些对于有一定的C语言基础的,可以一边在玩的时候,感受在其中的编程思想并且自己进行尝试。

IPO图:

数据字典:先进行蛇与食物的定义,再制定游戏中蛇的光标处理方法,初始化蛇的位置坐标,接着创建整个游戏的活动界面从而确定游戏的整体的框架。初始化游戏的计分系统,设置初始化分数,再增加分数统计系统确立分数处理的方法。接着编写游戏的规则,蛇的走

动方法与吃到食物增长的处理以及游戏中碰壁或碰到自身的处理,最后进行对游戏失败的处理以及游戏的清屏处理。

[ 详细设计说明书]

模块的文字描述:

main()主函数:这是程序的大体流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数画出开始画面,调用函数,即玩游戏的具体过程与分数的增加,游戏结束后调用关闭图形系统清理屏幕,结束程序

画界面函数:设计游戏的活动界面,就是一个密封的围墙加上一个数据处理界面,利用printf 来构建游戏的大体框架与各个部分的具体内容

游戏具体过程函数:这一部分是游戏的重要组成,调用这个函数是游戏的主要部分,重点是一次次反复表示蛇与食物的新位置并进行对前一次的反复清屏。采用的方法是每次移动的时候从最后一节开始到倒数第二节,将前一节的坐标赋值给后一节的坐标,移动后只要把最后一节用背景色去除即可。蛇的方向通过w a s d键进行控制数组的加减。如果没有食物,随机出现食物;如果有食物,则显示食物,蛇移动身体,根据蛇的方向改变坐标值,并判断蛇是否撞到了墙或自己吃了自己,如果出现这两种情况之一,则蛇死,调用游戏结束函数结束本次游戏或重新开始。如果蛇吃到了食物,蛇身体长一节,数组元素增加一个,身体节数、分数都进行相应的改变。如果有按键,则识别键值。如果按键为Esc键则结束游戏,程序运行结束;如果所按键为方向键,则根据该键改变代表蛇方向的变量的值,要考虑相反方向键无效。

游戏结束函数:游戏结束,显示游戏结束信息。

HIPO图:

[

[

注意事项]

1.程序流程图应符合结构化思想:单入口、单出口。

[实验总结 ]

通过本次试验让我加深了对程序设计的理解,对程序结构化设计有了进一步的认识,同

相关文档
最新文档