1、 课课 程程 设设 计计 课程名称 数据结构 题目名称 广东工业大学校园导游系统 学生学院 计算机学院 专业班级 学 号 学生姓名 指导教师 2010 年 7 月 7 日 C 语言与数据结构课程设计 2 校园导游系统设计校园导游系统设计 一、 设计要求 1问题描述 课程设计 5.5 校园导游系统 设计一个校园导游程序,为来访的客人提供信息查询服务。 2需求分析 (1)设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图(无向 网) ,以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。 (2)存放景点代号、名称、简介等信息供用户查询。 (3)为来访客人提供图中任意景点相关信
2、息的查询。 (4)为来访客人提供图中任意景点之间的问路查询。 (5)可以为校园平面图增加或删除景点或边,修改边上的权值等。 二、 概要设计 为了实现以上功能,可以从 3 个方面着手设计。 1主界面设计 为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序 以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如图 7-10 所示。 2存储结构设计 本系统采用图结构类型(mgraph)存储抽象校园图的信息。其中:各景点间的邻接关系 用图的邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每 个数组元素是一个结构变量,包含景
3、点编号、景点名称及景点介绍三个分量;图的顶点个数及 边的个数由分量 vexnum、arcnum 表示,它们是整型数据。 此外,本系统还设置了三个全局变量:visited 数组用于存储顶点是否被访问标志;d 数组用于存放边上的权值或存储查找路径顶点的编号;campus 是一个图结构的全局变量。 3系统功能设计 本系统除了要完成图的初始化功能外还设置了 8 个子功能菜单。图的初始化由函数 initgraph( )实现。依据读入的图的顶点个数和边的个数,分别初始化图结构中图的顶点向量数 组和图的邻接矩阵。8 个子功能的设计描述如下。 (1)学校景点介绍 学校景点介绍由函数 browsecompus(
4、 )实现。当用户选择该功能,系统即能输出学校全部 景点的信息:包括景点编号、景点名称及景点简介。 (2)查看浏览路线 第 7 章 图结构及其应用 3 查看浏览路线由函数 shortestpath_dij( )实现。 该功能采用迪杰斯特拉 (Dijkstra) 算法实现。 当用户选择该功能, 系统能根据用户输入的起始景点编号, 求出从该景点到其它景点的最短路 径线路及距离。 (3)查看两景点间最短路径 查看两景点间最短路径由函数 shortestpath_floyd( )实现。该功能采用弗洛伊德 (Floyd)算 法实现。当用户选择该功能,系统能根据用户输入的起始景点及目的地景点编号,查询任意两 个景点之间的最短路径线路及距离。 (4)景点信息查询 景点信息查询由函数 seeabout( )实现。 该功能根据用户输入的景点编号输出该景点的相关 信息。例如,景点编号、名称等。 (5)更改图的信息 更改图的信息功能由主调函数 changeg