一、课程设计目的和要求
(1)目的
1. 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所具备的科学工作方法和作风。
(2)要求
现请根据学校的平面图,找出一些重要的场所,画出学校的平面图(场所可以根据其重要性适当减少),根据实际画出不同点间的路径,并估算每两个场所间的路径长。请设计数据结构并编程,当给出一个出发点和要到达另外一个场所的信息时,请给出最佳路径,并输出路径相关信息。
二、系统开发相关情况
(一)开发背景
GDOU是真是一个好地方,校园如一座大花园,美丽而宽广。校园有许多建筑如教学楼、饭堂、宿舍楼、图书馆、体育馆、运动场、商业街、医院等,还有一些著名的风景点。现请根据学校的平面图,找出一些重要的场所,画出学校的平面图(场所可以根据其重要性适当减少),根据实际画出不同点间的路径,并估算每两个场所间的路径长。请设计数据结构并编程,当给出一个出发点和要到达另外一个场所的信息时,请给出最佳路径,并输出路径相关信息。
三、系统及需求分析
(一)需求分析
1、问题描述 图的最短路径问题是指从指定的某一点v开始,求得从该地点到图中其它各地点的最短路径,并且给出求得的最短路径的长度及途径的地点。除了完成最短路径的求解外,还能对该图进行修改,如顶点以及边的增删、边上权值的修改等。
校园最短路径问题中的数据元素有:
a) 顶点数
b) 边数
c) 边的长度
四 .逻辑结构设计
1. 抽象数据类型图的定义如下:
ADT Graph{ 数据对象V:V是具有相同特性数据元素的集合,称为顶点集。
数据关系R:
R={VR}
VR={(v,w)| v , w∈V, (v , w)表示v和w之间存在路径}
基本操作P:
CreatGraph(&G, V, VR)
初始条件: V是图的顶点集,VR是图中边的集合。
操作结果: 按定义(V, VR) 构造图G。
DestroyGraph(&G)
初始条件: 图G已存在。
操作结果: 销毁图。 LocateVex(G, u)
初始条件: 图G存在,u和G中顶点具有相同特征。
操作结果: 若G中存在顶点u,则返回该顶点在图中“位置” ;
否则返回 其它信息。 GetVex(G, v)
初始条件: 图G存在,v是G中某个顶点。
操作结果: 返回v的信息。 InsertVex(&G, v)
初始条件: 图G存在,v和G中顶点具有相同特征。
操作结果: 在图G中增添新顶点v。 DeleteVex(&G, v)
初始条件: 图G存在,v和G中顶点具有相同特征。
操作结果: 删除G中顶点v及其相关的边。 InsertArc(&G, v, w)
初始条件: 图G存在,v和w是G中两个顶点。
操作结果: 在G中增添弧<v,w>,若G是无向的,则还增添对称弧<w,v>。 DeleteArc(&G, v, w)
初始条件: 图G存在,v和w是G中两个顶点。
操作结果: 在G中删除弧