1、 I 目录目录 1、需求分析. I 2、总体设计. 2 2.1 抽象数据类型图的定义. 2 2.2 程序中包含的模块. 2 2.3 模块间的调用关系 3 3、详细设计. 3 3.1 代码设计. 错误错误!未定义书签。未定义书签。 3.1.1 定义结构体和全局变量 错误错误!未定义书签。未定义书签。 3.1.2 平面图的初始化 错误错误!未定义书签。未定义书签。 3.1.3 最短路径查询 错误错误!未定义书签。未定义书签。 3.1.4 景点信息查询 错误错误!未定义书签。未定义书签。 3.1.5 景点信息更新. 错误错误!未定义书签。未定义书签。 3.2 界面分析. 11 3.2.1 主程序界面
2、 11 3.2.2 景点信息的查询 11 3.2.3 最短路径查询 14 3.2.4 管理校园查询系统 14 4、总结报告 14 参考文献. 15 2 1 1、需求分析、需求分析 设计一个校园导游系统程序,为来访的客人提供各种服务的信息查询。 (1).设计潍坊学院校园平面图,所含的景点不少于 10 个。以图中顶点表示校内各 景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关 信息。 (2).为来访客人提供图中任意景点相关信息的查询。 (3).为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条 最短的简单路径。 2 2、算法算法设设计计 2.1 概要设计 2.
3、1.1 函数定义的变量 /*定义符号常量*/ #define INT_MAX 10000 #define n 10 /*定义全局变量*/ int costnn; /* 边的值*/ int shortestnn;/* 两点间的最短距离*/ int pathnn; /* 经过的景点*/ 2.1.2 程序中包含的模块 (1)主程序模块 void main()/*主函数*/ 打印菜单,景点,景点信息 定义景点之间的权值 (2)查询模块 景点信息查询:void introduce()/*景点介绍*/ 最短路径查询:int shortestdistance() /*要查找的两景点的最短距离*/ void
4、floyed()/*用 floyed 算法求两个景点的最短路径*/ (3)打印模块 3 打印最短路径:void display(int i,int j) /* 打印两个景点的路径及最短距离 */ 2.1.3 模块间的调用关系 2.2 2.2 详细设计详细设计 #include #include /*定义符号常量*/ #define INT_MAX 10000 #define n 10 /*定义全局变量*/ int costnn; /* 边的值*/ int shortestnn;/* 两点间的最短距离*/ int pathnn; /* 经过的景点*/ /*自定义函数说明*/ void intro
5、duce() int shortestdistance() void floyed() void display() Main() 4 void introduce(); int shortestdistance(); void floyed(); void display(int i,int j); void main() int i,j; char k; for(i=0;i10 的数字编号并用,间隔):“); scanf(“%d,%d“, if(in|in|j10 的数字编号并用,间 隔):n“); scanf(“%d,%d“, 8 else floyed(); display(i,j);
6、 return 1; /*shortestdistance*/ void floyed()/*用 floyed 算法求两个景点的最短路径*/ int i,j,k; for(i=1;i%d“,pathij); if(i%d“,b); printf(“nn“); printf(“(%d-%d)最短距离是:%5d 米nn“,a,b,shortestab); else printf(“输入错误!不存在此路!nn“); printf(“n“); /*display*/ 11 3 3 测试结果测试结果 3.1 主程序界面 根据图中提示选择要执行的操作 图 1 主界面 3.2 输入错误 输入 i ,s ,e 来完成相应的操作,如果输入有误,系统将显示错误信息,请重新输 入。 12 3.3 景点信息的查询 输入你要查询的景点名称:通过调用函数 void introduce()来查询景点信息。 如果输入的景点