(1)需求分析
a.程序的功能。
给出一张某公园的导游图,游客通过终端询问可知:从某一景
点到另一景点的最短路径。游客从公园大门进入,选一条最佳路线,使
游客可以不重复地游览各景点,最后回到出口(出口就在入口旁边)。
要求用图示展示最佳路径。
一个公园的导游图,至少应该有一个简单的景点分布图,让游
客能对公园概况一目了然。以上功能是基础,在此基础上,使公园的导
游图系统更具人性化,更具有实用性:为导游图系统添加景点最短路径
的计算,提供依次不重复访问所有景点的最佳旅游路线。
b.输入输出的要求。
(2)概要设计
a.程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模
块的功能。
1.主函数 int main()
2.从文件中 读取图形到程序 void LoadImg(int vl[][2],MGraph *g)
3.在屏幕显示图形到 void OutputImg(int vl[][2],MGraph *g)
4.显示整个路径 void disbestpath(Stack *psta, int vl[][2])
5.起点编号 int bestpath(MGraph *g, int k, int vl[][2])
6.弗洛伊德算法求最短路径 void Floyed(MGraph *g, int A[][MAX],
int path[][MAX],int vl[][2])
7.显示两点间的最短路径 void FDisPath(int path[][MAX],int A[]
[MAX],int vl[][2], int i, int j,int k)
b.课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样
的结构,它们之间有什么关系等。
要完成对整个导游图系统的功能实现,需要对的每一项功能都有清楚的
设想和认识,了解并明确每一项功能的实现需要解决的问题,选择正确并且高
效的算法把问题逐个解决,最终实现程序的正确调试运行。
为此,可把系统分为以下几个核心:图的初始化、图的遍历、求两点
间的最短路径、求最佳路线。
(3)详细设计
a.采用 C 语言定义相关的数据类型。
b.写出各模块的类 C 码算法。
c.画出各函数的调用关系图、主要函数的流程图。
评论0