数据结构地图课程设计含源码
数据结构课程设计报告
题 目: XXXX大学校园导游系统
院系名称: 专业名称: 班 级: 学生姓名: 计算机学院
软件工程 2012级01班 XX XX
学号(8位):
指导教师: XX
设计起止时间:2013年12月16日~2013年12月27日
一. 设计目的
进一步的了解图的遍历的问题,图的DFS,BFS的递归和非递归算法的实现,实现图的遍历,用邻接矩阵和邻接表的存储方式存储图。
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。 训练学生灵活应用所学数据结构的基本知识,熟练的完成问题分析、算法设计、编写程序,求解出指定的问题。
训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养严谨的科学态度和良好的工作作风。 提高综合运用所学的理论知识和方法独立分析和解决问题的能力。
二. 设计内容
1、设计并显示学校的校园平面图, 地点(地点名称、地点介绍), 路线(公里数)均不少于10个。(文件存储) 2、提供图中任意地点相关信息的查询。 3、提供图中任意地点的问路查询:
1)任意两个地点之间的一条最短的简单路径; (最短路径长度——中转次数最少)
2)任意两个地点之间的一条最佳访问路线; (带权(公里数)最短路径长度) 3)任意两个地点之间的所有简单路径。 4、提供图中所有地点的最佳布网方案; 5、增加新地点和路线、撤销旧地点和路线。 三.概要设计
1.各个模块详细的功能描述。
int Locate(AdjMatrix *G,char name[]); 根据景点名称查找景点编号 int VexExit(); 判断景点是否存在 int Creat(AdjMatrix *G); 创建无向图
void Savefile(AdjMatrix *G); 将图保存到文件中
void Readfile(AdjMatrix *G); 从指定文件中读取信息并存入图中
void ShowSchool(AdjMatrix *G); 显示校园全景图 void ShowRoute(AdjMatrix *G); 显示图的所有路线
void ShowVex(AdjMatrix *G); 显示图中所含景点的信息 void Serach(AdjMatrix *G); 查找景点 void AddRoute(AdjMatrix *G); 增加新路线 void DeleteRoute(AdjMatrix *G); 删除旧路线 void AddVex(AdjMatrix *G); 增加新景点 void DeleteVex(AdjMatrix *G); 删除旧景点
void Dijkstra(AdjMatrix *G,int start,int ending,int dist[],int path[][MAXVEX]); 求起点到终点的最短路线
void Prim(AdjMatrix *G,int start); 采用Prim算法求得最短连通路线
void MiniSpanTree(AdjMatrix *G); 查询从某个景点的最短连通路线 void DFS(AdjMatrix *G,int start,int ending,int stack[],int visited[]); 深度遍历查找所有路径
void SimpleRoute(AdjMatrix *G); 查询两个景点间的最优路径 void SearchAllRoute(AdjMatrix *G); 输出两景点之间的所有路径 void menu(); 显示主菜单 void menu1(); 开始菜单界面 void menu2(); 退出菜单界面 四.详细设计
1. 功能函数的调用关系图;
调用 ShowSchool
调
Serach
用
调用 AddRoute
调用 DeleteRoute Locate 调用 DeleteVex VexExit 调用
Locate
ShortCut Dijkstra
MiniSpanTree 调用 Prim
调用 DFS SimpleRoute
SearchAllRoute 调用 DFS
Locate Locate ShowRoute VexExit
2.功能模块图: 开始 menu1 main menu choice
choice=1 choice=2 choice=3 choice=4 choice=5 choice=6 choice=7 choice=8 choice=9 choice=10 choice=11 choice=12 choice=0
menu2 Readfile Readfile Readfile Readfile Readfile Readfile Readfile Readfile Readfile Readfile Readfile Creat ShowSchool ShowVex Serach AddRoute DeleteRoute AddVex DeleteVex SimpleRoute ShortCut MiniSpanTree SerachAllRoute Savefile Savefile Savefile Savefile Savefile 结束 2. 各功能函数的数据流程图;
Creat
输入vexnum,arcnum i=0 i
Readfile
读出vexnum,arcnum
i 保存name,introduce i 保存路线,距离 结束 Savefile 写入vexnum,arcnum i=0 i