【声明】本博客内容,若有侵权请告之,会删除 非商业用途,如有侵权,请告知我,我会删除
如回复不及时,或不懂的请加我微信 island68 QQ823173334 可以的话注明来自CSDN
很希望通过CSDN这个平台与大家交流
在数据结构每个人思路不同这篇博文只是给大家提供一个相对简单的解决办法
1北京景点查询系统
在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游图的线路来游览,而是挑选自己感兴趣的景点游览。为于帮助这类游客信息查询,就需要计算出所有景点之间最短路径和最短距离。建立北京景区旅游信息管理系统,实现的主要功能包括制订旅游景点导游线路策略和制订景区道路铺设策略。具体实现的功能模块如下:
2需求分析
- 创建景区景点分布图,要求至少分布图中至少有10个景点;
- 输出景区景点分布图,用邻接矩阵表示;
- 输出从某点开始的导游线路图;
- 判断导游线路图有无回路;
- 求两个景点间的最短路径和最短距离;
- 输出道路修建规划图。
3部分设计内容
(1)输入任一个景点,能够为游客输出该景点的相关信息,包括(编号,名称,票价,简介);
(2)输入起点以及下一个要到达的景点,为游客输出两个景点间的最短路径;
(3)输入任意两个景点,为游客输出两个景点间的所有路径;
(4)可动态添加景点,加后可查询该景点到其它景点的最短路径;
struct Matrix
{
string Sname;//景区名称,为了解决哈希冲突
int count;//景点总数量
int edge;//道路数量
int m[M][M];//景点邻接矩阵
string Pname[M];//各个景点的名称
};
struct Scenic
{
Scenic(): next(NULL){}
Matrix mat;
struct Scenic *next;
};
int hash(string name);
void Welcome();//欢迎界面
void create_graph();//创建景区景点图
void print_graph();//输出景点分布(邻接矩阵的形式输出)
void DFS(int c,struct Scenic *p);//深度优先搜索导游线路
void guide_line();//导游线路
void dfs(int i,struct Scenic *p);//递归实现
void check_circuit();//判断回路
void Floyd(int a,int b,struct Scenic *&p);//Floyd算发求最短路
void min_distance();//最短路径、距离
void prime(struct Scenic *&p,string name);//最小生成树(prime算法)
void build_road();//道路修建规划图、
void scenic_message();//浏览所有景区景点信息
void change_sceic_name(struct Scenic *&p);//修改景点名称;
void change_weight(struct Scenic *&p);//修改该景区某条道路上的权值
void increase_number(struct Scenic *&p);//增加该景区小路的数量
void change_information();//修改景区景点信息
void MainFace();//主界面
void returnMainFace();//返回主界面