• 孙鑫mfc视频教程 > 问题的描述
  • 问题的描述

    免费下载 下载该文档 文档格式:DOC   更新时间:2007-12-01   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:doc
    文档作者:User
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    第一章 问题的描述
    问题域概述
    创建一个仿真系统,使得用户可以操纵机器人来探索虚拟世界,并观察机器人的行为.
    虚拟世界用来模拟现实世界中的不同环境(这里假设它是由14×14的方格构成的,如下图所示).在虚拟世界的特定区域存在一些障碍物,机器人在运动过程中,必须避开这些障碍物.在虚拟世界的交叉点上可能会放置单个的字符.机器人到达这个位置时,用户可以控制机器人读取这个字符,或者用其他的字符替换这个位置的字符.机器人在虚拟世界中只能沿着交叉点向东,南,西,北四个方向做直线运动(不能走斜线).
    机器人维护着两个变量b1和b2,用来保存从虚拟世界中读取的字符.
    机器人有6种基本动作:
    Move:机器人朝着正前方移动一个交叉点(以上图中的机器人为例,执行一次"Move"动作之后,机器人由位置(8,1)移动到(7,1)).
    Left:机器人原地沿逆时针方向旋转90度.
    Read:机器人读取其所在位置的字符,并将这个字符的值赋给b1;如果这个位置上没有字符,则不改变b1的当前值.
    Write:机器人将b1中的字符写入机器人当前所在的位置,如果这个位置上已经有字符,该字符的值将会被b1的值替代.如果这时b1没有值,即在执行Write动作之前没有执行过任何Read动作,那么需要提示用户相应的错误信息.
    b1=b2:将b2的值赋给b1,b1的值被b2的值替代.
    b2=b1:将b1的值赋给b2,b2的值被b1的值替代.
    用户有3种操控机器人的方法:
    手动控制:通过直接调用机器人的基本动作使机器人产生相应的行为.例如用户直接发送"Move"命令,使机器人移动到下一个交叉点.
    自动控制(Run):事先编排好机器人的动作序列(这里称为指令),直接执行这个指令,使机器人可以连续运作.
    单步控制(Step):是自动控制方式一种特殊形式,只执行指定指令中的一个动作.单步控制与手动控制的区别在于,单步控制时执行的是指令中的动作,只有一种控制方式,即执行下个动作;而手动控制时有6种基本动作可控制.
    限定条件
    机器人不能跨越虚拟世界的边界,即机器人的活动范围只能在上图所示的14×14的方阵内.
    机器人不能穿越障碍物,只能避开.
    若机器人试图跨越边界或穿越障碍物,则必须提示用户,不允许执行这个操作.
    变量b1,b2的值只能通过机器人的"Read","b1=b2","b2=b1"动作设置,不能在程序中进行初始化.
    须仿真的活动
    创建虚拟世界:根据障碍物,字符的特定位置(针对特定的虚拟世界,这些位置在仿真过程中不能改变)和机器人的初始位置,创建机器人的活动环境(这时称虚拟世界处于其初始状态).虚拟世界处于初始状态时,默认为机器人都面向北方.
    用户手动控制机器人的行为:要能够提供用户直接调用机器人基本动作的方式.
    用户采用自动控制方式操控机器人.
    用户采用单步控制方式操控机器人.
    Reset:终止机器人的活动,并回到虚拟世界的初始状态.
    提示用户错误操作:在仿真过程中,若出现错误而导致仿真活动无法继续进行时,要给出明确的错误提示信息.
    第二章UML表示的分析与设计模型
    此图是通过工具导入代码自动生成.有2个独立的类,机器类Robot和棋盘类Chess,还定义了一个点的结构,机盘上的每个点都是一个结构.在此用结构更好.在程序刚开始编写时考虑过定义成类,用对象填充每个点,但后来发现这样完全没必要.白白增加了程序编写的复杂性.结构也是一个很好的"类"型,在我的观念中,类也是一种特殊的结构,只是对结构的功能进行了扩充而已.可能这样理解不太准确,但在实际代码编写中个人感觉完全可以这么理解.若不正确请老师指出,不胜感激.
    还有2个枚举类型,导入代码时自动生成了,我感觉放到图上没什么太大意义,就删除了.具体在代码部分会给出说明.
    第三章 类,方法,全局变量或静态变量的命名规则;
    命名规则按操作或变量的英文单词组合给出,便于理解.如机器类Robot和棋盘类Chess,点结构的名称为Point.
    第四章 仿真流程
    运用棋盘初始化文件 chess_b.txt
    内容如下:
    (0,0)=q
    (1,2)-(1,12)//表示从(1,2)到(1,12)为障碍物
    (1,2)-(10,2)//同上
    手动控制运行结果:
    自动运行:

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • 孙鑫mfc视频教程下载  孙鑫mfc教程  孙鑫mfc教程01  孙鑫mfc视频  孙鑫mfc教学视频  孙鑫mfc源代码下  孙鑫mfc  孙鑫java视频教程下载  孙鑫c视频教程下载