当前位置:文档之家› 学生实验作品(软件设计说明)

学生实验作品(软件设计说明)

学生实验作品(软件设计说明)
学生实验作品(软件设计说明)

清华大学Survivor 之新东方客栈

软件设计说明

Version 2.0

Survivor 之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

Revision

Date Version Description Author 2007-5-17 1.0 系统设计部分初稿叶星遥

2007-6-13 2.0 添加详细设计杜龙志、陈家挺Quartet(Team 10) ?Tsinghua University,2007 Page 1

Survivor 之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

目录

1. 引言 1

1.1 目的 1

1.2 范围 1

1.3 定义和缩写 1

2. 参考文献 1

3. 分解说明 1

3.1 模块分解 1

3.2 并发进程 3

4. 依赖关系说明 3

4.1 模块间的依赖关系 3

4.2 进程间的依赖关系 3

5. 接口说明 3

5.1 模块接口 3

5.2 进程接口 5

6. 详细设计 5

6.1 系统类图 5

6.2 模块详细设计 6

6.3 数据详细设计17

Quartet(Team 10) ?Tsinghua University,2007 Page 2

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

1.引言

1.1目的

本文档是视频游戏Survivor之新东方客栈的软件设计说明文档,阅读对象是产品开发、测试和维护人员。

1.2范围

本文档包括软件产品的系统设计和详细设计两大部分。系统设计部分(3~5)主要描述产品的模块划分、相互依赖关系和交互接口。详细设计部分(6)通过包图、类图、状态图等手段描述在面向对象模型下,系统功能的具体实现方法和流程。

1.3定义和缩写

表1 缩写和术语表

缩写和术语说明

Survivor NOI 本软件的标题:Survivor 之新东方客栈

2.参考文献

[1] 软件工程——理论、方法与实践刘强编著高等教育出版社

[2] 设计模式:可复用面向对象软件的基础来源于https://www.doczj.com/doc/515752055.html,

3.分解说明

3.1模块分解

Survivor NOI 1.0 系统共分为四个模块:游戏人物模块(Character)、游戏场景模块(Environment)、游戏控制模块(GameControl)、扩展功能模块(Extension),见图1。

Quartet(Team10) ?Tsinghua University,2007 Page 1

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

Module 1Module 2

Module 3Module 4

图1 系统模块划分

3.1.1 模块1:游戏人物说明

本模块定义了游戏中出现的人物(Character)。人物分为受玩家控制的内部人物(Player)和不受玩家控制的外部人物(ForeignPlayer)两种,其中外部人物可能由电脑控制(ComputerPlayer)。

人物的信息包括人物属性、当前状态、图像表示等。

3.1.2 模块2:游戏场景说明

本模块定义了游戏进行的场景(Environment)。游戏场景由不同的区域(Area)组成,区域之间通过通道(AreaConnection)连接。场景信息包括使用的贴图,是否可行走,区域的拓扑结构等。

3.1.3 模块3:游戏控制说明

本模块定义了游戏的控制流程,采用设计模式中的“状态(State)模式”进行设计。游戏的状态包括初始化、等待、属性设置、战斗、小游戏(后续版本实现)、结局,分别有各自的控制逻辑和交互界面。

3.1.4 模块4:扩展功能说明

本模块定义了游戏的一些独立于主控制流程的附加功能,比如礼物(Gift)的出现和获取、小游戏(MiniGame,包括GRE和Popo)的进行规则。在后续版本中会有更多的功能添加到这一模块中。

Quartet(Team10) ?Tsinghua University,2007 Page 2

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

3.2并发进程

在1.0版本中,系统仅包含有1个主游戏进程,各项交互和数据操作都由该进程实现。

3.2.1 进程1 主游戏进程MainControl 说明

该进程控制游戏的主要流程,负责玩家视角的界面交互。模块3中提到的各游戏状态都由该进程来实现。

该进程从系统启动开始就一直存在,直到用户退出系统时终止。

4.依赖关系说明

4.1模块间的依赖关系

模块3(游戏控制模块)依赖于模块1(游戏人物模块),主要反映在人物类(Character)中保存的信息对查看设置人物属性(AttributeForm)、以及人物出现在界面上的贴图都有影响。

模块3(游戏控制模块)依赖于模块2(游戏场景模块),主要反映在游戏主界面(MainForm)上有背景区域(Area)的贴图、切换房间时对区域连通点的判断(AreaConnection)、以及人物移动时对于地图上可行走区域的判断。

模块1和模块2之间没有直接的依赖关系,两者通过模块3间接的有消息传递和调用。

模块4与模块1、2、3之间也仅限于消息传递和方法的互相调用,并无深层次依赖。

4.2进程间的依赖关系

进程1作为主进程需要调用进程2和3中的方法获取它们的当前状态和属性,来完成自身的一些功能,比如判断电脑人物和礼物的贴图是否应出现在界面上。进程2和3在发生一些重要事件时也会调用进程1的方法来显示自身信息,如礼物的出现需要有文字提醒。

进程2和进程3之间有消息的传递,因为礼物的出现会影响电脑人物的行为决策。

5.接口说明

5.1模块接口

5.1.1 模块1 游戏人物接口说明

表2 模块1接口

接口名接口描述调用者调用场景

Get / Set Attribute 获取 / 修改人物属性模块3 打斗,查看/设置属性

Quartet(Team10) ?Tsinghua University,2007 Page 3

Survivor 之新东方客栈 软件设计说明 日期:2007-6-13

Quartet_SDD.doc

Quartet(Team10) ?Tsinghua University ,2007 Page 4

Verify Attribute 验证属性修改是否合法 模块3 设置属性

Get / Set Picture 获取 / 修改人物贴图 模块3 初始设置,人物移动,打斗 Get / Set Position 获取 / 修改人物位置 模块3 人物移动,换房间 Get Next Move 获取电脑人物下一步动作

模块3

游戏处于“等待”态时

5.1.2 模块2 游戏场景 接口说明

表3 模块2接口

接口名

接口描述

调用者 调用场景

Get Map 获取区域贴图 模块3 换房间,打斗 Get Point Type

获取区域点类型: 可行走 / 不可行走 / 靠近通道 / 在通道上

模块3

人物移动,换房间

5.1.3 模块3 游戏控制 接口说明

表4 模块3接口

接口名

接口描述

调用者 调用场景

Show Message 显示文字信息

模块4

礼物出现、消失

5.1.4 模块4 扩展功能 接口说明

表5 模块4接口

接口名

接口描述

调用者 调用场景

Get Picture 获取礼物贴图 模块3 换房间

Gift Exists 获取礼物存在信息 模块1 电脑人物决策下一步行为 Pick up Gift 完成拾取礼物动作

模块3

人物拾取礼物

Survivor 之新东方客栈 软件设计说明 日期:2007-6-13

Quartet_SDD.doc

Quartet(Team10) ?Tsinghua University ,2007 Page 5

5.2 进程接口

5.2.1 进程1 主游戏进程 接口说明

6. 详细设计

6.1 系统类图

本系统一共有24个类,各类之间的关系如图2所示。

其中,MainGame 是游戏的主控制类,GameState 类是游戏状态的一个抽象基类,具体实现由

各个状态分别实现。Display 总管游戏的所有图片资源。边界类GameForm 直接和MainGame 相关,其它界面类,比如InitializeForm ,FightForm 等就直接和相关状态相关。玩家移动状态下,相关的类有Map 和Animation ,其中Map 管理游戏的地图,Animation 管理人物的行走。

图2 系统类图

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

6.2模块详细设计

6.2.1 模块1 游戏人物详细设计

游戏人物的属性和相关方法主要由以下三个类来实现的:

a) PersonAttribute

实现游戏人物的耐力、防御、智力、攻击、勇气和属性总和等打斗属性的相关操作,放在CChatacter.cs中。

主要方法如下所列:

- SetLastAttribute()

把当前人物的六个打斗属性值赋值给数组lastAttribute中。

- Clone()

实现当前人物的六个打斗属性值的复制,返回一个PersonAttribute类型的值

- ToArray()

把当前人物的六个打斗属性值封装成数组类型,返回其数组值

- SetValue()

把传进来的数组类型的打斗属性值分别赋值给类中的六个打斗属性成员

- ReduceValue()

实现对人物第index维打斗属性减去fvalue大小的属性值。如果不够减,则由其他属性中最高属性值补足。

b) CCharacter类

实现游戏外部人物和玩家控制人物相关操作,放在CCharacter.cs中。

主要方法如下所列:

- CCharacter()

构造函数,初始化相关成员变量

- ReduceValue()

Quartet(Team10) ?Tsinghua University,2007 Page 6

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

调用PersonAttribute类中的ReduceValue()方法实现战败后减分的功能

- SetLastAttribute()

调用PersonAttribute类中的SetLastAttribute()方法实现把当前人物的六个打斗属性值赋值给数组lastAttribute中。

- m_Timer_Tick()

计时器,实现计量人物进入当前房间滞留的总时间。

- PickUpGift()

实现拾起礼物(包子或者鸡蛋)的功能。

- GetNextStep()

当外部人物和玩家人物同处一个房间时,根据地图信息获取外部人物下一步可走区域。

- SetRandomAttribute()

游戏开始进入时进行打斗属性的随机设置。

- SetAttribute()

将传进来的数组类型的打斗属性集合赋值给人物对应的相关属性。

- SetPosAfterFail()

设置打斗失败后被随机抛到另外一个房间的点。

- GetGiftPraise()

拾起礼物后获得相关属性分值的增加。

- GetNextRoom()

实现换到另外一个房间的功能,并设置其进入新房间的起始位置。

- SetAvgAttribute()

平均设置打斗属性,主要是外部人物进行属性的重新分配。

c) Cplayer类

实现玩家人物的名字等成员的操作。放在CPlayer.cs中。

Quartet(Team10) ?Tsinghua University,2007 Page 7

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

主要方法有:

- PlayerName()

实现玩家名字的设置和获取操作。

- NamePic()

实现此人物对应头像的设置和获取操作。

6.2.2 模块2 游戏场景详细设计

游戏场景由不同房间区域组成,不同房间之间通过通道连接,其属性成员和函数主要在下面一个类中实现:

a) Cmap

负责实现地图信息的获取、设置等功能操作。

主要方法如下所示:

- SetCurrentMap()

根据传进来的map名字在roomList中查找并且将此房间相关图片信息(包括此房间的相邻房间和通道等)加载进来。

- SetupMap()

根据传进来的地图名字信息建立此地图可走区域和通道区域等信息。

- SetUpWalkAreaInfo()

根据地图名字把对应此地图可走区域的txt文件打开,读入其信息,将读入的信息存储于m_Area 中。

- SetUpConnectAreaInfo()

根据地图名字从txt文件中读入此地图的通道区域,并将区域信息写进m_ConnectArea中。

- IsAvailablePoint()

根据m_Area中存储的信息判断传进来的点在可走区域中是否可行走。

- IsConnectArea()

根据m_ConnectArea中存储的信息判断传进来的点是否处于通道之内。

Quartet(Team10) ?Tsinghua University,2007 Page 8

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

6.2.3 模块3 游戏控制详细设计

游戏控制采用“状态模式”设计,包括初始化、等待、属性设置、战斗、小游戏和结局等,各部分有各自控制逻辑和交互界面。包括以下一些类:

a) CGameState

这是一个抽象基类,它定义了以下一些虚拟方法:

- public virtual void Render()

管理游戏图片的绘制。

- public virtual void HandleMouseClickEvent(Point mousePoint) 管理游戏中鼠标点击事件。

- public virtual void ReLoadPicList()

当需要的时候,重新载入图片。

- public virtual void Dispose()

释放该状态的资源。

另外,该类还实现了一些方法,供子类调用。

- protected void PrepareRender()

进行绘图的准备工作。

- protected void EndRender()

结束绘图。

由该类派生出的一些类如下所示:

a.1)CInit类:

实现游戏的欢迎界面,并处理相应的鼠标点击事件。

a.2)CSelectCharacter类:

Quartet(Team10) ?Tsinghua University,2007 Page 9

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

实现游戏开始前玩家选择人物的功能。

a.3)CMove类:

实现游戏进行过程中人物的行走和打斗条件判断等功能。

a.4)CFight类

玩家人物和外部人物触发战斗后,进入该状态。实现外部人物和玩家人物打斗的逻辑,并管理战斗后界面的显示等功能。

a.5)CSetAttributes类

用户选择设置属性后,进入属性设置状态,加载设置属性界面,并管理用户鼠标点击事件,检查用户属性设置的合法性等。

a.6)CViewAttributes类

实现查看属性的功能。

a.7)CFinish类

当游戏的胜利或失败条件满足时,进入完成游戏状态,此时,根据不同的条件,分别显示不同的游戏结局。

b)CMainGame

管理游戏运行的整个过程。主要方法如下所列:

- Run()

游戏的主循环,在其中,需要完成界面绘制,处理鼠标输入,管理计时器等功能。

- ChangeState()

根据传进来的参数进行游戏状态的转换。

- StartNewGame()

实现开始一局新游戏功能,其中,需要初始化人物属性,地图设置,播放音乐,启动礼物计时器等功能。

- ChangeRoom()

Quartet(Team10) ?Tsinghua University,2007 Page 10

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

根据传进来的需要转换的房间改变玩家人物所在房间,并重新设置地图。

- RenderNextRoom()

上一个方法完成后,需要调用本方法实现重新绘制地图的功能。

- BackToMove()

当从查看属性,设置属性和打斗等状态回到移动状态时,需要调用本方法。

- SetMoveSpeed()

设置游戏过程中玩家人物的移动速度。

- InitForNewGame()

玩家在游戏过程中或者游戏结束后重新开始一局新游戏时,只需调用本方法即可。

- Quit()

退出游戏。

- Dispose()

释放游戏过程中用到的所有资源。

3) CAttributeForm

管理查看属性和设置属性界面及其相关操作。

- HandleMouseClieckEvent()

管理鼠标点击事件。

- RefreshAttributes()

更新属性界面的属性值信息。

- PrepareForRenderAttributes()

绘制属性界面前,需要得到玩家人物的当前属性值。

- InitRenderText()

设置属性值的绘制位置等信息。

- InitRect()

Quartet(Team10) ?Tsinghua University,2007 Page 11

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

实现把属性界面用长方形区域表示出来。

- RenderAttributes()

实现把属性对应的血条画出来的功能。

- TmpRefreshAttributes()

实现临时调整属性界面上的属性值。

4) CGameForm

实现游戏整个界面的设置。主要方法如下所示:

- PrepareRender()

为图片等的绘制做准备。

- EndRender()

绘制结束的相关操作。

- AskForQuit()

请求停止操作,回到游戏初始界面或者退出游戏。

- SetMoveSpeed()

实现设置人物移动的速度大小。

5) CFightForm

绘制打斗后的属性界面。

主要方法如下所示:

- PrepareForRenderText()

得到玩家人物和外部人物在打斗前及打斗后的属性,为绘制做准备。

- AddToList()

将属性值相关的CText对象加入到List中,以便绘制所需。

- RenderAttributesText()

Quartet(Team10) ?Tsinghua University,2007 Page 12

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

绘制玩家人物和外部人物的属性值。

6) CText

处理界面中与文字有关的信息。

- PrepareForText()

把传进来的相关信息赋值到此类的成员中。

- RenderText()

把有关文字信息绘制到界面上。

- Dispose()

释放有关资源。

7) CPicture

处理有关图片的信息和方法。

- RenderPic()

绘制图片。

- RenderPic(int alpha)

根据相应的alpha值绘制图片,实现界面的渐变功能。

- RenderPic(float angle)

根据相应的角度绘制图片,实现图片的旋转功能。

- Dispose()

释放图片资源。

8) CMusic

处理与播放游戏音乐有关的方法。

- OnMusicEnding()

Quartet(Team10) ?Tsinghua University,2007 Page 13

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

处理音乐播放结束时的事件。

- PlayNext()

根据下一个状态或者房间的信息播放相关音乐。

9) CMouse

处理与鼠标有关的信息。

- IsLeftButtonClicked()

判断是不是左键被按下。

10) CGift

处理与游戏过程中出现的包子和鸡蛋等礼物相关的方法操作。

- enum GameGift { Bread, Egg, None }

游戏过程中出现的礼物类型,None为没有礼物。

- StartRandomGift()

随机触发礼物的产生。

- StopRandomGift()

实现礼物消失的功能。

- PickUpGift()

玩家或者外部人物拾取礼物时,需要调用本方法,并在界面上通知其它玩家。

- Dispose()

释放相关资源。

- NotifyGiftMsg()

提示有关礼物消息。

- giftTimer_Elapsed()

处理礼物计时器时间片到达的相关操作。

Quartet(Team10) ?Tsinghua University,2007 Page 14

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

11) CAnimation

管理人物的移动贴图。

- SetMoveSpeed()

设置人物移动的速度。

- InitAnimation()

初始化人物行走图。

- DrawNextFrame()

画出人物行走时下一帧。

- ToThere(Point p)

将人物的目的位置设置为点p。

- SetCurrentPos()

玩家人物或者外部换房间时,需要设置新房间的位置。

- SetNextPos()

处理人物移至下个点的方法。

- RandomMove()

外部人物随机移动。

- ChangeZoom()

改变人物大小设置。

12) CDisplay

管理游戏过程中用到的所有图片。

- InitPicResources()

初始化和加载所有与图片等资源有关的变量。

- NextPicList()

Quartet(Team10) ?Tsinghua University,2007 Page 15

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

根据下一个状态需要,设置需要加载的图片资源。

- RefreshCharacter()

重新更新人物头像。

- PrepareGiftMsg()

加载礼物及其消息图片。

- SetCurrentRoomByName()

按照传进来的房间名获取房间图片。

- CheckGiftMsg()

依照出现礼物的信息加载相应的礼物图片。

- BackUpPicList()

当从移动状态切换到其它设置属性,查看属性或者打斗状态时,备份移动状态的图片资源。

- Dispose()

释放所有图片资源。

13) CInitializeForm

管理游戏开始前的欢迎界面和选择人物界面。

- RenderChatacterDescription()

加载人物描述的信息。

- BtnOnClick()

处理鼠标点击事件。

- SelectCharacterBtnOnClick()

选择人物状态下,按钮点击的事件处理。

- InitBtnOnclick()

初始化状态下,按钮点击的事件处理。

- ChangeCharacter()

Quartet(Team10) ?Tsinghua University,2007 Page 16

Survivor之新东方客栈软件设计说明日期:2007-6-13

Quartet_SDD.doc

更换玩家人物。

- ReadChatacterDescription()

从txt文件中读入人物描述信息。

6.3数据详细设计

6.3.1 数据实体地图可走区域详细设计

在地图中可走区域是一个连通区域,于是用一系列点集始末连接起来,两点之间的连线把可走区域和不可走区域隔开。于是可走区域内部的点以逆时针顺序与各顶点形成的角度之和为2π,不可走区域则为0。于是利用这个原理来编写函数实现地图上的可走与不可走范围。可能有些地图中可走范围内部还有不可走区域,于是用0 0把外部点集和内部点集隔开。

6.3.2 数据实体地图通道区域详细设计

利用上面所述的原理,设计地图通道区域为一个矩形,出现在地图通道口的地方,为一个四组二维数,然后第五维用来记录出现在下个房间的位置。

6.3.3 数据实体人物描述详细设计

把人数描述信息写在txt文本中,然后在人物选择界面再把其信息读入并且显示出来。

6.3.4 数据实体关于详细设计

同上面一样,把“关于”的描述信息写在txt文本中,然后把其信息读入并且在用户查看关于信息时显示出来。

6.3.5 数据实体音乐详细设计

音乐素材放在一个文件夹下,游戏进行过程中播放相关音乐。

Quartet(Team10) ?Tsinghua University,2007 Page 17

软件著作权设计说明书范本资料

软件著作权-说明书范本(二) 设计说明书 中国版权保护中心接收登记的文档包含两种:操作说明书或设计说明书。 设计说明书适合没有界面的嵌入式软件,插件软件,后台运行软件以及游戏软件。一般包含结构图,软件流程图,函数说明,模块说明,数据接口,出错设计等。 操作说明书适合管理类软件,有操作界面,一般应包含登录界面,主界面,功能界面截图,截图之间有相应的文字说明,能全面展示软件的主要功能。 格式要求:一、说明书应提交前、后各连续30页,不足60页的,应当全部提交。 二、说明书页眉应标注软件的名称和版本号,应当与申请表中名称完 全一致,页眉右上应标注页码,说明书每页不少于30行,有图除 外,另外截图应该清晰完整。 范例如下: 设计说明书

一、引言 目的 编写详细设计说明书是软件开发过程必不可少的部分,其目的是为了使开发人员在完成概要设计说明书的基础上完成概要设计规定的各项模块的具体实现的设计工作。 二、软件总体设计 2.1软件需求概括 本软件采用传统的软件开发生命周期的方法,采用自顶向下,逐步求精的结构化的软件设计方法。 本软件主要有以下几方面的功能 (1)连接设备 (2)提取数据 (3)保存数据 (4)删除仪器数据 (5)查看历史数据 定义 本项目定义为一个典型的多点互动探伤软件。它将实现多点设备和系统程序的无缝对接,以实现多点互动功能。 2.2需求概述 1.要求利用PQLib硬件商提供的SDK开发出对应的触摸屏系统。 2.系统要显示图片,并实现图片相关所有的多点操作,包括放大,缩小,旋转,平移的功能。 3.要提供美观的图片菜单,在菜单中要提供必要的图片简介信息。 4.系统图片的维护更新要方便。 2.3条件与限制 系统开发的条件是普通PC以及相对应的系统,本次开发所用的系统是WINDOW SERVER2003以及ADOBE FlashCS4。由于硬件开发商提供的开发文档不是很详尽,这对系统开发产生了一定限制影响。 总体设计 2.4总体结构和模块接口设计 系统整体结构框架如图

软件设计过程实验报告

软件开发过程 实验一软件需求分析 一、目的和意义 对本书第二和三章的内容做进一步的掌握,写出软件需求规格说明书。为下面的实习奠定基础。 二、实习内容 xx、确定软件题目(学生可自己拟定,也可在本书附录2中选择); 2、分析软件需求以及人工模式下的工作流程; 3、编写需求规格说明书(需求规格说明书的编写要求参见本节模板参考); 4、完成形式:以文档的形式完成软件的需求规格说明书。纸张型号为A4。 三、实习指导 xx、在磁盘上建立一个软件工程实习文件夹,以自己的姓名命名。 2、提交文档的格式如下: 第一页的格式为: 软件名称:文档编号 版本号 文档名称: 项目名称: 项目负责人: 编写时间 审核时间 批准时间 开发单位 第二页之后的内容为: ●编写目的:阐明编写该文档的目的,指出读者对象 ●项目背景:项目的委托单位、开发单位、该软件系统与其他系统的关系。

●参考资料 软件需求规格说明的书写原则 ①任务概述:软硬件环境、条件和限制(软件的使用条件和限制)。 ②数据描述:输入数据、输出数据、数据库设计和建立数据词典。 ③功能需求:功能划分和功能描述 ④性能需求:数据精度、时间特性、适应性(操作方式、与其他软件的接口、开 发计划变化时,软件应具有的适应能力。)。 ⑤运行要求:用户界面、硬件接口(如:连接打印机)、软件接口(如:是否为 其他项目的子项目)、故障处理。 ⑥其他需求:可使用性、安全保密性、可维护性、可移植性等。 ●模板参考 第一页: 软件名称:教务管理软件文档编号 xxxxxx 版本号 Ver xx.xx 文档名称:需求规格说明书 项目名称:课表编排系统 项目负责人:屈艳 编写: 组 第二页之后的内容: 编写目的:编写该文档是为了分析人工状态下课表编排的工作流程,把人工模式抽象为可在计算机上处理的自动模式。便于开发小组成员对系统整体功能的认识。 项目背景:高校的课表编排一直是一个烦琐的工作,为了解决这个问题,某某高校教务处委托我们开发该软件。该软件是高校教务软件的一个子系统。该子系统与专业规划子系统和教师管理软件有一定的关系。 参 实用软件工程(第二版)北京:清华大学出版社,xxxxxx7 任务概述: 硬件环境:CPU的型号为PentiumIII以上,内存25xxM ,及其兼容机

软件项目管理课程设计实验报告精

软件项目管理课程设计报告 学院: 专业: 班级: 学号: 姓名: 指导教师: 时间:2013年 1月 目录 1、项目概述 (1) 2、工作任务 (Statement Of Work,SOW书 (1) (一整体要求 (1) (二系统逻辑模型 (2) (三系统功能描述 (3) (四应达到的技术指标和参数 .................................... 3 3、项目进度计划 .. (4) (一分解项目工作 (4) (二项目工作关系表 (5) (三项目甘特图 (6) (四网络进度计划图 (7) (五里程碑计划 ................................................ 9 4、项目规模成本估算 . (9)

(一分解项目工作 (9) (二项目规模估算表 (11) (三计算开发成本 (12) (四计算管理、质量成本 (12) (五直接成本 (12) (六计算间接成本 (12) (七计算总估算成本 (12) (八项目报价 ................................................. 13 5. 项目质量计划 .. (13) (一项目质量保证组织 (13) (二质量目标 (14) (三质量策略 (15) (四质量保证活动 (15) (五质量控制活动 (17) (六质量保证的报告途径 (17) (七记录的收集、维护和保存 ................................... 17 6、软件项目团队 . (17) (一团队组织及职责 (18) (二项目的沟通计划 ........................................... 19 7、软件项目配置管理计划 .. (19) 学校内部职工工资系统项目管理书 1、项目概述 假设学校共有教职工约 1000人, 10个行政部门和 8个系部。每个月 20日前各部门(包括系、部要将出勤情况上报人事处, 23日前人事处将出勤工资、奖金及扣款清单送财务处。财务处于每月月底将教职工的工资表做好并将数据送银行。每月初(3日前将工

南京邮电大学软件设计实验报告

软件设计报告 ( 2014 / 2015 学年第二学期) 课程名称软件设计 指导老师赵江实习时间第十八周学生姓名学号 ____学院______专业

软件设计 课程编号:B0465011C 适用专业: 班级: 一、所涉及的课程及知识点 涉及的课程:第6学期之前的专业基础课程。 知识点:专业基础课程中所学的知识点。 二、目的与任务 目的:通过软件设计,培养学生的实践能力和创新精神,加强学生对专业基础课程的理解和掌握,加强学生高级语言编程能力、应用软件以及仿真能力。 任务:选择以下任一模块进行设计:Matlab软件仿真、C语言及应用。

软件设计的内容 题目1:如果给出两个矩阵?? ??? ?????=136782078451220124A ,????? ?????=087654321B ,执行下面的矩阵运算命令。 (1)B A *5+和I B A +-分别是多少(其中I 为单位矩阵) (2)B A *?和B A *将分别给出什么结果,它们是否相同为什么 逻辑功能程序: function [ ] = EXP1() A=[4,12,20;12,45,78;20,78,136]; B=[1,2,3;4,5,6;7,8,0]; I=eye(3); disp('A+5*B='); disp(A+5*B); disp('A-B+I=') disp(A-B+I); disp('A.*B='); disp(A.*B) disp('A*B='); disp(A*B); End 实验过程与结果 打开matlab ,在命令窗口“Command Window ”中键入edit,启动程序编辑器。输入完整程序后利用save as 储存为M 文件,文件名为EXP1。返回主界面,

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告软件体系结构 设计模式实验报告 学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期: 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 组合模式 使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。绘制类图并编程模拟实现。 (2) 组合模式 某教育机构组织结构如下图所示: 北京总部 教务办公室湖南分校行政办公室 教务办公室长沙教学点湘潭教学点行政办公室

教务办公室行政办公室教务办公室行政办公室 在该教育机构的OA系统中可以给各级办公室下发公文,现采用 组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。(注:可以定义一个办公室类为抽象叶子构件类,再将教务办公室和行政办公室作为其子类;可以定义一个教学机构类为抽象容器构件类,将总部、分校和教学点作为其子类。) (3) 外观模式 某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块,要求编程模拟实现。参考类图如下: reader = new FileReader();EncryptFacadecipher = new CipherMachine();writer = new FileWriter();-reader: FileReader-cipher: CipherMachine-writer: FileWriter +EncryptFacade () +fileEncrypt (String fileNameSrc,: voidString plainStr=reader.read(fileNameSrc); String fileNameDes)String

软件设计说明书范本

编号∶______ 版本∶______ 软件详细设计说明书 项目名称:xxxxxxxxxxxx子系统 委托单位: 承办单位: 编写: xxxxxx 2002 年05 月01 日 校对: xxxxxx 2002 年05 月10 日 审核: xxxxxx 2002 年05 月15 日 批准: xxxxxx 2002 年05 月25 日

目录 1.引言 (3) 1.1目的 (3) 1.2背景 (3) 1.3参考资料 (3) 2.总体设计 (4) 2.1软件描述 (4) 2.2设计方法 (4) 2.3软件结构 (4) 2.4模块设计说明 (10) 2.4.1总控模块 (10) 2.4.2所长室模块 (10) 2.4.3综合室模块 (18) 2.4.5 机械一室模块 (27) 2.4.6 机械二室模块 (31) 2.4.7 化工一室模块 (36) 2.4.7化工二室模块 (40) 2.4.8电器室模块 (40) 2.4.9轻工室模块 (40) 2.4.10统计汇总模块 (41) 2.4.11领导查询模块 (41) 2.4.12公共查询模块 (42)

1.引言 1.1目的 编写详细设计说明书是软件开发过程必不可少的部分,其目的是为了使开发人员在完成概要设计说明书的基础上完成概要设计规定的各项模块的具体实现的设计工作。 1.2背景 一、软件名称 检测信息系统质量监督检验子模块 二、相关单位 委托单位∶技术检测中心 承办单位∶石油大学(华东) 主管部门∶技术检测中心信息中心 1.3参考资料 1、<<石油工业应用软件工程规范>> SY/T 5232-1999 2、实用软件工程郑人杰清华大学出版社

设计模式实验报告

实验一单例模式的应用 1 实验目的 1) 掌握单例模式(Singleton)的特点 2) 分析具体问题,使用单例模式进行设计。 2 实验内容和要求 很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。 通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。 事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。绘制该模式的UML 图。 3 实验代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AppConfig { publicclass Singleton { privatestatic Singleton instance; private Singleton() {

} publicstatic Singleton GetInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } class Program { staticvoid Main(string[] args) { Singleton singletonOne = Singleton.GetInstance(); Singleton singletonTwo = Singleton.GetInstance(); if (singletonOne.Equals(singletonTwo)) { Console.WriteLine("singletonOne 和 singletonTwo 代表的是同一个实例"); } else { Console.WriteLine("singletonOne 和 singletonTwo 代表的是不同实例"); } Console.ReadKey(); } } } 4 实验结果

软件概要设计说明书范例

XX概要设计说明书

文档修改记录

填写说明 1. 系统结构的定义 本体系对整个软件系统按如下结构方式进行划分:系统子系统模块子模块 其中: (1)“系统子系统”划分属于“系统设计”,在系统设计说明书中予以描述。 (2)“子系统模块”划分属于“概要设计”,在本说明书中予以描述。 (3)“模块子模块”划分属于“详细设计”,在详细设计说明书中予以描述。如果系统相对简单,可以省略“子模块”这一层次。 2. 如果填写了系统设计说明书,则在本说明书中略过“系统子系统”划分的相关内容(即第2章)。 3. 如果系统相对简单,不需要做“系统子系统”划分,这种情况下,取消填写系统设计说明书,只须填写本说明书,直接套用“子系统模块”划分(即第3章)进行“系统模块”划分(把其中“子系统”一词替换为“系统”),并删除本说明书中“系统子系统”划分的相关内容(第2章)。

目录 1. 简介 ................................................................ 错误!未定义书签。 . 背景和目的.................................................... 错误!未定义书签。 . 范围.......................................................... 错误!未定义书签。 . 术语和缩略语.................................................. 错误!未定义书签。 2. 系统总体设计 ........................................................ 错误!未定义书签。 . 任务概述...................................................... 错误!未定义书签。 目标 .................................................... 错误!未定义书签。 需求概述 ................................................ 错误!未定义书签。 . 设计概述...................................................... 错误!未定义书签。 总体约束 ................................................ 错误!未定义书签。 系统外部接口 ............................................ 错误!未定义书签。 设计方案概述 ............................................ 错误!未定义书签。 . 系统架构设计.................................................. 错误!未定义书签。 系统的逻辑架构设计 ...................................... 错误!未定义书签。 系统的物理架构设计 ...................................... 错误!未定义书签。 . 子系统定义.................................................... 错误!未定义书签。 子系统列表 .............................................. 错误!未定义书签。 子系统间关系 ............................................ 错误!未定义书签。 3. 子系统1设计 ........................................................ 错误!未定义书签。 . 任务概述...................................................... 错误!未定义书签。 目标 .................................................... 错误!未定义书签。 需求概述 ................................................ 错误!未定义书签。 . 设计概述...................................................... 错误!未定义书签。 总体约束 ................................................ 错误!未定义书签。 子系统外部接口 .......................................... 错误!未定义书签。 设计方案概述 ............................................ 错误!未定义书签。 . 子系统架构设计................................................ 错误!未定义书签。 . 模块定义...................................................... 错误!未定义书签。

范例-软件设计说明书(详细部分)

软件设计说明

目录 1围 (1) 1.1标识 (1) 1.2系统概述 (1) 1.3文档概述 (1) 2引用文档 (1) 3CSCI 级设计决策 (1) 4CSCI 体系结构设计 (2) 4.1CSCI部件 (2) 4.2执行方案 (3) 4.3接口设计 (3) 4.3.1接口标识和接口图 (3) 4.3.x (接口的项目唯一标识符) (4) 5CSCI 详细设计 (6) 5.X (软件单元的项目唯一标识符,或者一组软件单元的标志符) (6) 6需求可追踪性 (9) 7注解 (11) 附录A (11)

软件设计说明 1围 1.1标识 要求:本节应包含这个文档所适用的系统和软件的完全标识,(若适用)应包括标识号、名称、缩略名、版本号及发布号。 1.2系统概述 要求: 1)本节主要描述本文档适用的系统和软件的用途; 2)概述系统开发、运行和维护的历史; 3)标识项目的投资方、需方、用户、开发方和保障机构; 4)标识当前和计划的运行现场; 5)列出其它有关文档。 1.3文档概述 本节应概述本文档的用途和容,描述与它的使用有关的性或私密性考虑。 2引用文档 列出引用的所有文档,包括文档的编号、标题、修订版本和日期。 3CSCI 级设计决策 要求:本章应根据需要分节给出CSCI 级设计决策,即CSCI 行为设计的决策(忽略其部实现,从用户角度出发描述系统将怎样运转以满足需求)和其它影响组成该CSCI 的软件单元的选择与设计的决策。如果在需求中所有这些决策是明确的,或者这些决策要推迟到CSCI 的软件单元的设计时指出,则本章应如实述。 针对关键性需求(例如对安全性、性、私密性等需求)作出的设计决策,应在专门的章节中加以叙述。 CSCI 级设计决策的例子如下: 1)关于CSCI 将接收的输入和将产生的输出的设计决策,包括与其它系统、HWCI、CSCI 和用户的接口(本文档的4.3.x 节指出本说明要考虑的主题); 2)有关响应每个输入或条件的CSCI 行为的设计决策,包括CSCI 要执行的动作、响应时间和其它性能特性,模型化的物理系统的说明,选定的方程式/算法/规则,以及对不允许的输入或条件进行的处理; 3)有关数据库/数据文件如何呈现给用户的设计决策(本文档的4.3.x 节标识了本说明

《软件课程设计》实验报告

编号:()字号 《软件课程设计》报告 班姓学级:名:号: 指导老师: 职称: 计算机科学与技术学院 二〇〇八年月

专业年级: 学生姓名: 任务下达日期: 课程设计日期: 课程设计题目:面向过程 一.需求分析 设计任务:软件课程设计任务书 题目七: 1.将输入的罗马数据化为10进制数。假设罗马数据中只使用如下7 个“基值”字母:M、D、C、L、X、V、I,分别用来表示 1000、500、100、50、10、5、1。如,罗马数据LXXXVII 表示10 进 制的87。 2.将输入的10进制正整数转换为罗马数据。假设罗马数据中只使用 “基值”字母:M、D、C、L、X、V、I,分别用来表示 1000、500、100、50、10、5、1。 主要界面为:

输入1或2可以选择功能。 输出的形式 如上所示:当输入大写或小写的阿拉伯字母时。 程序能计算出十进制。 程序所能达到的功能 测试的数据:当输入mvii罗马数字时输出十进制 1007 当输入十进制数4535 时相应输出MMMMDXXXV。 二.概要设计 程序中主要在开头用了一个死循环来实现功能的不断循环。通过exit函数退出程序。 主程序的流程以及各程序模块之间的层次(调用)关系。

Convert1() Break; >switch(n) Default; 三.详细设计 实现概要设计中定义的数据类型和操作。以增加程序的可读性,关键算法部分 画出程序流程图。 主函数的流程图如右图示: Switch() Cin>>n Convert1() Break; Case1: Case2:; Convert2(); Break; Default; Exit(1); While(1) Main() Return 0; Main->jiemina->while(1)- Convert2() Break; Exit()

设计模式上机实验二实验报告

设计模式实验二 实验报告书 专业班级软件0703 学号3901070324 姓名吉亚云 指导老师伟 时间2010年4月24日 中南大学软件学院

实验二设计模式上机实验二 一、实验目的 使用PowerDesigner和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式,包括根据实例绘制相应的模式结构图、编写模式实现代码,运行并测试模式实例代码。 三、实验要求 1. 正确无误绘制装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式的模式结构图; 2. 使用任意一种面向对象编程语言实现装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式,代码运行正确无误。 四、实验步骤 1. 使用PowerDesigner绘制装饰模式结构图并用面向对象编程语言实现该模式; 2. 使用PowerDesigner绘制外观模式结构图并用面向对象编程语言实现该模式; 3. 使用PowerDesigner绘制代理模式结构图并用面向对象编程语言实现该模式; 4. 使用PowerDesigner绘制职责链模式结构图并用面向对象编程语言实现该模式; 5. 使用PowerDesigner绘制命令模式结构图并用面向对象编程语言实现该模式; 6. 使用PowerDesigner绘制迭代器模式结构图并用面向对象编程语言实现该模式; 7. 使用PowerDesigner绘制观察者模式结构图并用面向对象编程语言实现该模式; 8. 使用PowerDesigner绘制状态模式结构图并用面向对象编程语言实现该模式; 9. 使用PowerDesigner绘制策略模式结构图并用面向对象编程语言实现该模式; 10. 使用PowerDesigner绘制模板方法模式结构图并用面向对象编程语言实现该模式。 五、实验报告要求 1. 提供装饰模式结构图及实现代码; 2. 提供外观模式结构图及实现代码; 3. 提供代理模式结构图及实现代码; 4. 提供职责链模式结构图及实现代码;

软件设计说明书嵌入式软件范例

一、XXXXX-XXX 热压机自动控制系统软件的设计 LCD—液晶显示器,因其具有微功耗、平板化等一系列显著特点而广泛应用于仪器仪表、计算机显示终端、各类电子显示装置等各个方面。LCD的后工序生产工艺包括COG、COF、FOG、FOB,XXX-XXX 热压机正是为FOG段工艺而开发设计的。 XXXXX-XXX热压机自动控制动系统软件(以下简称XXX系统)是由PLC、气动元件和电动元件组成,其特点是通过传感器采集外部信号,输入到PLC内部进行计算处理,以控制外部执行元件,使之完成一系统的机构动作,达到生产所需的工艺要求。 ㈠ XXX 系统的性能和结构 XXX 系统主要由PLC、GOT(触摸屏)、伺服电机、气缸电磁阀、电磁继电器、光电传感器、磁性传感器、温度处理器、温度传感器以及各种按钮组成。 1、XXX 系统的主要性能和技术参数 ●主机电源:Vac-----220VAC/50HZ ●传感器电源:Vdd-----+24V ● PLC接口:40位输入、32位输出、1个RS232通信串口 ●工作温度:-10℃~+55℃ ●存储温度:-20℃~+60℃ 2、XXX 系统的内部地址 XXX 系统的内部地址及主要功能部件: ●输入继电器— X ●输出继电器— Y ●辅助继电器— M ●定时器— T ●计数器— C ●数据寄存器— D ●变址寄存器— Z 3、XXX 系统的外部引线功能定义 XXX 系统共有82根引脚,具体定义如下: ㈡指令描述 XXX 系统主要有如下指令: ㈢人机界面(GOT) 1、参数设置

人机界面(GOT)可用于参数设置和数据的显示(如图所示) 2、手动操作 人机界面亦可制作手动调试所需的各种按键,以替代繁琐的按钮(如图) 3、生产信息 人机界面还可用于显示生产时的各种数据以及PLC内部的信息,比如外部引脚的通断 信息、生产时产生的报警信息等(如下图) ㈣ XXX 系统的接口及编程 1、硬件接口 XXX系统与电脑的接口可以有两种方式:直接控制方式和间接控制方式。直接控制方式就是将PLC的RS232接口直接与电脑的RS232接口对接(如图1-1);间接控制方式就是将PLC的RS232接口与触摸屏的RS232接口对接,然后将电脑的RS232接口与触摸屏的RS422接口对接,然后对该外设进行间接操作而实现控制(如图1-2)。 2、程式流程方框图 A、系统回原点流程图 B

软件工程实验报告

1.1 实验一结构化需求分析 一.实验类型 图书馆管理系统 假定校图书馆需要你设计一个图书馆管理系统,要求包括以下功能: ●图书管理员可以管理馆藏图书,包括每本图书的藏书编号、书名、编著者、 ISBN号、出版社、出版时间、入馆时间、馆藏数量(如果馆藏数量为1,则标明为孤本图书)、在馆数量、学科类别等(或其它你认为有用的信息); ●管理员可以查询、统计所有图书、每一类图书或每一本书的借阅记录; ●图书管理员可以管理所有读者的信息,包括读者类型(学生、教师、社会人 士)、姓名、图书证编号、办证时间、证件状态(正常、挂失、冻结)等信息; ●图书管理员可以查询和统计所有读者、每一类读者或每一个读者的借阅记录; ●读者可以通过本系统查询馆藏图书; ●读者可以通过本系统借阅读书。但对于孤本图书或在馆数量为1的图书则不 准外借; ●管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年 不归还图书的读者冻结其图书证; ●读者可以通地本系统归还图书。如果图书超期,则自动计算罚款金额。二.实验目的 1.掌握数据流的分析技术 2.掌握软件需求分析的过程和方法。 3.熟悉项目开发计划和需求规格说明书的制定方法。 三.实验内容和要求 1.用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流图和数据字典。 2.正确运用图表工具进行表示。 3.按规范正确编写软件文档。

四.实验步骤 1.理解所承担项目的业务流程和业务内容。 本软件项目是面向中小型学校、单位机构对于图书管理的基于服务的一款便捷式软件。能满足一系列常用图书管理的功能模块,提供简介、准确的操作性,可以很大程度减少人为因素带来的数据错误,统计错误,系统逻辑错误。并且规模小,很容易进行推广。 ●本项目的参与对象有图书管理员及读者。 ●对于读者,能通过该软件浏览馆藏的所有图书。读者在图书馆找到自己喜欢 的书后,能自行通过该软件操作完成借阅操作。若读者是第一次借书,必须通过图书管理员进行添加读者记录,登记读者信息。读者在登陆后方能完成借阅操作,对于孤本图书(即图书馆中馆藏只有一本的图书)则拒绝进行借阅操作。在规定期限内,读者可以通过该软件完成还书操作,对于超期的图书,应将扣除一定罚款金额,对于超期一年不归还图书的读者冻结其图书证。 并且读者能修改个人信息。 ●对于图书管理员,能管理自己和比自己低一级管理权限的管理员。一级管理 员能完成维护管理员的基本信息和二级管理员的一切操作。二级管理员则能维护自己的信息和添加读者、添加图书的功能。管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年不归还图书的读者冻结其图书证; 2.按照系统的功能及性能要求,系统的作业范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。 根据软件编程经验,本系统将采用面向对象的设计方法,使用Eclipse开发工具,java窗体应用程序,操作系统使用Win8。 3.绘制数据流图、功能分析图等。

南京邮电大学软件设计VHDL实验报告

南京邮电大学软件设计VHDL实验报告

通信与信息工程学院 / 年第 2 学期 软件设计实验报告 模块名称VHDL 专业通信工程 学生班级 学生学号 学生姓名 指导教师梅中辉

设计题目 基本课题:04. 2对4译码器 综合课题:18. 奇偶校验器 任务要求 1.基本课题:设计一个2对4译码器(输入:A B 输出:Y3 Y2 Y1 Y0),真值表如图2。 2. 奇偶校验器系统的功能是对八位二进制数据及其奇偶校验位的输入进行校验,输出正确的奇、偶校验位。ODD_IN 与EVEN_IN 是控制奇校验和偶校验功能输入,IN0到IN7是七位数据及一位校验位数据输入,IN_READY 表示输入数据已经准备好,能够处理,当OUT_REQ 输入表示要求输出数据,CLK 端口用于接收时钟信号,支持系统的时钟上升沿同步。当输出端口OUT_READY 输出信号有效时,表示输出数据已经准备好,能够为下级电路使用,ODD_OUT 与EVEN_OUT 用来输出正确的奇偶校验位。上述控制端口均为高电平有效。 A B Y3 Y2 Y1 Y0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 实验设备 及软件 1. 微型计算机 2. EDA-VHDL 开发软件 同组人员 学号及姓名 11001803 胡雪琪

参考文献 1. 张顺兴 《数字电路与系统设计》东南大学出版社 .8 2. 苗丽华《VHDL 数字电路设计教程》人民邮电出版社 .11 VHDL 课程设计题目及要求(自编资料) 3. VHDL 课程设计题目及要求(自编资料) 4. 杨晓慧 杨永健 《基于FPGA 的EDA/SOPC 技术与VHDL 》 国防工业出版社 .7 5. Peter J. Ashenden 《The VHDL Cookbook 》Dept. Computer Science University of Adelaide South Australia July, 1990 报告内容 一. 实验目的 1.掌握组合逻辑中译码器电路的设计原理。 2.能利用VHDL 语言设计一个2-4译码器。 二. 实验器件 1.微型计算机 2.EDA-VHDL 开发软件 三. 实验名称 2-4译码器 四. 题目要求概述 设计一个2对4译码器(输入:A B 输出:Y3 Y2 Y1 Y0),真值表如图 五. 系统分析 ○ 1.原理图: 分析:EN=1,Z[0]=Z[1]=Z[2]=Z[3]=1; EN=0,Z[0]=!(!A!B ),Z[1]=!(!AB),Z[2]=!(A!B),Z[3]=!AB ○ 2.设计算法: A B Y3 Y2 Y1 Y0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1

软件设计模式与软件体系结构实验报告

《软件体系结构》大作业(1) 学院:软件学院 课程名称:软件体系结构 专业班级: 学生姓名:学号: 学生姓名:学号: 指导教师: 完成时间:年月日 评分表 1、叙述各小组成员完成本题目的分工协作情况。 小组中的每个成员都先理解题目要求及涉及的设计模式,并一起完成代码编写。另外,组长负责文档制作。 2、评分表 序号姓名评分是否组长 1 2 作业正文需要包括以下内容: 1、作业题目内容的详细描述。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的 软件体系结构名称及画出相应的体系结构图。

3、画出完成本题目所设计程序的设计类图;如还有其他图,也一并画出。 4、完成本题目所设计的程序代码。 5、程序运行的典型界面截图

1、作业题目内容的详细描述。 【作业2.1-1】例2.3为使用工厂方法模式设计的汽车保险管理应用程序实例。现在需要 扩展例2.3的设计图,添加一个名为LuxuryCarInsurance的类,并且需要编写此类和其他需要添加的类的代码,详细要求参见光盘的相应作业部分。 【作业2.1-1】在例2.4中,设计并且实现了豪华(Super)和中等(Medium)别墅(House)与公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码,实现相应的查询功能,详细要求参见光盘的相应作业部分。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的软件体系结构名称及画出相应的体系结构图。 【作业2.1-1】采用的是工厂方法模式 【作业2.1-2】采用的是抽象方法模式

软件设计实验报告

通达学院 2017/2018 学年第 1 学期 课程设计实验报告 模块名称综合软件设计 专业通信工程 学生班级141301 学生学号14130118 学生姓名陈启朋 指导教师王诚

目录 第一章在线考试系统 (1) 1.1 实验目的 (1) 1.2 实验内容 (1) 1.3.1考试登录模块设计 (1) 1.3.2管理员模块设计 (7) 1.4 实验结果 (12) 第二章学生成绩管理系统 (13) 2.1 实验目的 (13) 2.2 实验内容 (13) 2.3 实验过程 (13) 2.3.1学生成绩管理模块设计 (13) 2.3.2 公共模块设计 (18) 2.4 实验结果 (20) 总结 (21) 参考文献 (21)

第一章在线考试系统 1.1 实验目的 通过本次软件设计,使学生掌握并能熟练运用Java和mysql语言编写程序,掌握面向对象的概念,采用C/S结构,设计数据库模型,能够了解和数据库连接的方法。 1.2 实验内容 本次实验的内容是编辑生成试题库,随机生成本次考试试题,提供在先评分并保存结果;同时,管理员可以添加、修改、删除考题和考生用户。 1.3 实验过程 1.3.1考试登录模块设计 主要程序如下: package com.Exam.Index; import java.awt.Insets; import javax.swing.*; import javax.swing.GroupLayout; import https://www.doczj.com/doc/515752055.html,youtStyle; import com.Exam.bean.*;

import com.Exam.controller.ControllerFrame; import com.Exam.dao.*; public class MyLand extends javax.swing.JFrame { initComponents(); }@SuppressWarnings("unchecked") private void initComponents() { jTextField3 = new javax.swing.JTextField(); jTextField1 = new javax.swing.JTextField(); jpanel = new MyJPanel(); choicejLabel = new javax.swing.JLabel(); userChoicejComboBox = new javax.swing.JComboBox(); choicejLabel1 = new javax.swing.JLabel(); UserNameTextField = new javax.swing.JTextField(); choicejLabel2 = new javax.swing.JLabel(); PassWordjTextField = new javax.swing.JPasswordField(); enterButton = new javax.swing.JButton(); enterButton.setMargin(new Insets(2, 2, 2, 2)); resButtonjButton = new javax.swing.JButton(); resButtonjButton.setMargin(new Insets(2, 2, 2, 2)); jTextField3.setText("jTextField3"); jTextField1.setText("jTextField1"); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); choicejLabel.setText("选择用户:"); userChoicejComboBox.setModel(newjavax.swing.DefaultComboBoxModel(new String[] { "","考生", "管理员" })); setTitle("考试系统"); choicejLabel1.setText("用户名:"); UserNameTextField.setText(""); choicejLabel2.setText(" 密码:"); PassWordjTextField.setText(""); enterButton.setText("登录"); enterButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { enterButtonActionPerformed(evt); } }); resButtonjButton.setText("重置"); resButtonjButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

相关主题
文本预览
相关文档 最新文档