没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
16页
我看过 对提升C++知识帮助很大。对如何编小系统,深入解答分析: 实验报告示例: 生态仿真系统开发报告 目录 需求分析 概要设计 核心设计 界面设计 详细设计 基本类的设计 Creature 抽象类 Animal 类 Mover 类 Hunted 和Hunter 接口 Prey 类 Predator 类 CreatureGroup 接口 Herd 类和Pack 类 Ecology 类 辅助类 LifeState 枚举 Speed 类 用户手册 平台要求 C#GUI 版 JavaCUI 版 使用说明 开发心得 对图像绘制闪烁问题的解决 对系统结构的其他想法
资源推荐
资源详情
资源评论
《C++程序设计语言-习题解答及综合实验讲义》
1
附件二:简单生态仿真系统
问题描述:
设计并实现一个简单的二维生态仿真系统。系统中至少包含两种对象:一种为捕食者,另一种为被
捕食者。它们在某个时钟的驱动下进行统一的移动,同时捕食者每移动一步其生命值减一。当被捕食者
移动到捕食者的捕食范围内时,捕食者将对其进行捕杀,被捕食者的生命期结束,同时捕食者的生命值
恢复到最佳。如果捕食者在一定的时钟周期内没有完成任何捕食活动,生命值将减为0,此时捕食者的
生命也将结束。
实验报告示例:
生
生
态
态
仿
仿
真
真
系
系
统
统
开
开
发
发
报
报
告
告
目录
需求分析
概要设计
核心设计
界面设计
详细设计
基本类的设计
Creature 抽象类
Animal 类
Mover 类
Hunted 和 Hunter 接口
Prey 类
Predator 类
CreatureGroup 接口
Herd 类和 Pack 类
Ecology 类
辅助类
LifeState 枚举
Speed 类
用户手册
平台要求
C#GUI 版
JavaCUI 版
使用说明
开发心得
对图像绘制闪烁问题的解决
对系统结构的其他想法
《C++程序设计语言-习题解答及综合实验讲义》
2
需求分析 回目录
设计一个简单的二维生态仿真系统。系统中至少包含两种对象,一种为捕食者,另一种为被捕食者。
他们在某个时钟的驱动下进行统一的移动,同时捕食者的生命值减一。当被捕食者移动到捕食者的捕食
范围内时,捕食者将对其进行捕杀,被捕食者的生命期结束,同时捕食者的生命值恢复到最佳。如果捕
食者在一定的时钟周期内没有完成任何捕食活动,生命值将减为 0,此时捕食者的生命也将结束。
捕食者状态的描述见下图
被捕食者的状态描述:
《C++程序设计语言-习题解答及综合实验讲义》
3
概要设计 回目录
系统开发采用 C# 1.0。由于 C#的语法和 java 非常类似,但在类库的使用上可能有一定的差距。为
了方便将系统的代码修改为 java,这里采用了一种业务层和表现层分离的方法,将系统分为核心和界面
两个部分。由于对库的使用几乎都在界面部分,这样在将转换代码为 java 语言时,只需要对界面部分进
行库调用的修改,而对核心的修改量将会非常的小。这样既减少了代码的修改量,也可以在一定程度上
减少测试的强度。
核心设计 回目录
为了简化系统的复杂度,又不丧失功能的完整性,系统中仅仅开发捕食者(Predator
)和被捕食者
(Prey
)两个类。以后的扩充可完全建立在已有的 Predator 类和 Prey 类的基础上,而不会引入过多的代
码修改。
由于 Prey 和 Predator 均属于动物这种类型的(is a),所以可将二者从 Animal
类继承而来。考虑到
以后系统可能会加入一些非动物的类别(如植物类),所以有必要将 Creature
抽象类从 Animal 类中独立
出来。它们的关系如图所示
Prey
类和 Predator 类是不同的类,一个是可以捕食其他动物的类,而一个是可以被其他动物捕食的
类,考虑以后的扩充,有必要对他们分别实现 Hunter
和 Hunted 接口表示他们在行为方面的不同。
每个动物都有一个最基本的属性就是移动,所以有必要在 Animal
类在中加入有关移动的构件,为
了防止 Animal 类的负担过重和保持代码的清晰,这里也将 Mover
类从 Animal 类中分离出来
《C++程序设计语言-习题解答及综合实验讲义》
4
系统中必然要涉及很多的 Prey 和 Predator,为了对它们进行有效的管理必须开发两个容器类 Herd
和 Pack。
这样一来就可以通过容器来对系统中的生物进行管理。但会发现 Herd 和 Pack 中有很多的行为是冗
余的;并且系统以后或许会加入其他的生物类型,也就意味着可能加入新的容器类,添加 CreatureGroup
来对所有的容器进行统一的管理、操作是很关键的。
至此,一个生态仿真系统的简单模型就出来了:
剩余15页未读,继续阅读
资源评论
qq491450937
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功