《校园导游咨询*》设计报告
0
—5—
《校园导游咨询*》设计报告
三、 概要设计
1) 抽象数据类型定义描述
(对各类的成员及成员函数进行抽象描述,参见书或ppt及实验) Site类 Data: 编号Code 景点名称SiteName 景点介绍Introduction 景点X坐标
景点Y坐标 Operation: 构造函数
输入: 编号,名称,介绍,X坐标,Y坐标 前臵条件: 无
动作: 初始化Site类元素 输出: 无 后臵条件: 无 SetSite
输入: 编号,名称,介绍,X坐标,Y坐标 前臵条件: 无
动作: 赋值Site类元素 输出: 无 后臵条件: 无
ArcNode类 Data : 邻接点下标值Adjvx
指向下一个边结点的指针 *nextarc; 风景等级sceneLevel; 距离distance; Operation: 构造函数
输入: Adjvx, *nextarc, sceneLevel; 前臵条件: 无
动作: 初始化ArcNode类 输出: 无 后臵条件:无
—6—
《校园导游咨询*》设计报告
VertexNode类 Data : 节点内容vex
节点首指针*firstarc Operation: 无 Road类 Data : Site型节点1,节点2
距离Distance 风景等级
Bool型是否是机动车道carAviliable; Operation: SetRoad 构造函数
输入: 节点1,节点2,风景等级 前臵条件: 存在Site对象 动作: 初始化Road类 输出: 无 后臵条件:无
BGraph 类 Data :
邻接表adjlist[] Int 距离矩阵 Int 风景值矩阵 Operation: 构造函数 输入: 前臵条件: 动作: 输出:
后臵条件:无
addSite函数
输入:景点名称,景点信息,景点X坐标,景点Y坐标前臵条件:顶点表已建立
动作:添加邻接表顶点、修改邻接矩阵
—7—
《校园导游咨询*》设计报告
输出:无 后臵条件:无
addRoad函数
输入:景点1名称,景点2名称,风景等级 前臵条件:顶点表已建立
动作:添加邻接表的边表,修改邻接矩阵 输出:无 后臵条件:无
ShowInfo函数 输入: 无
前臵条件:函数已初始化 动作: 输出当前图信息 输出: 顶点数、边数 后臵条件:无
pGraph函数 输入: 无
前臵条件:函数已初始化 动作: 输出邻接表 输出: 邻接表 后臵条件:无
pMatrix 输入:无
前臵条件:函数已初始化 动作: 输出邻接矩阵 输出: 邻接矩阵 后臵条件:无
searchByName 输入:景点名称
前臵条件: 图已初始化 动作: 搜索符合名称的节点 输出: 节点site型 后臵条件:无
DFSTraverse函数 输入: 无
—8—
《校园导游咨询*》设计报告
前臵条件:图已初始化 动作: 深度优先遍历 输出: 遍历路径 后臵条件:无
BFSTraverse函数 输入: 无
前臵条件:图已初始化 动作: 广度优先遍历 输出: 遍历路径 后臵条件:无
FindPath函数
输入: 节点1,节点2 前臵条件:图已初始化 动作: 计算最短路径
输出:路径经过点、路径产长度、每一步的方向 后臵条件:无
2) 功能模块设计(如主程序模块设计)
1. 主程序模块:连接各种功能子模块,使用循环等待用户操作,完
成程序的基本操作实现功能。
2. 菜单显示模块:生成每个菜单的显示界面,使程序更简单清晰
3. 用户操作功能模块,由主程序直接调用的函数模块,将功能具象
化
4. 系统工具函数模块,提供如判断字符串是否为纯数字、计算两点
之间距离等功能,将常用功能独立化,方便重复使用
—9—