- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课外实践报告
项
目
名
称
景区旅游信息管理系统
所
在
班
级:
小
组
成
员:
指
导
教
师:
起
止
时
间:
安阳师范学院·
安阳师范学院
·数据结构课外实践·
课外实践评定成绩记录
系统完成情况:优
良
中
差
指导教师意见
报告完成情况:优
良
中
差
团队整体成绩:
“姓名” “学号”
成答辩评定成绩 员
成绩
综 合 成 绩
- 2 -
安阳师范学院
安阳师范学院
·数据结构课外实践·
项目基本信息
项目名称 景区旅游信息管理系统
旅游业随着我国经济的增长和人民收入的提高迅
项目简介
速发展,而景区旅游管理问题日益紧迫。本项目提供基本的有关的管理操作,能够智能化的管理,还能够为导游提供指引,为游客指路,
小组成员
:项目基本框架设计、项目工程中“ 4.cpp”文件“main.cpp”文件和“structure.h”文件 、
任务分工
后期的调试工作、PPT 制作。
:项目工程中的“3.cpp”文件、课外实践报告。
:项目工程中的“2.cpp”文件。
:项目工程中的“1.cpp”文件。
一、 问题描述及分析
在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游图的线路来游览,而是挑选自己感兴趣的景点游览。为于帮助这类游客信息查询,就需要计算出所有景点之间最短路径和最短距离。算法采用迪杰斯特拉算法或弗洛伊德算法均可。建立一个景区旅游信息管理系统,实现的主要功能包括制订旅游景点导游线路策略和制订景区道路铺设策略。
任务中景点分布是一个无向带权连通图,图中边的权值是景点之间的距离。
景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出 一个入口景点,建立一个导游线路图,导游线路图用有向图表示。遍历采用深度优先策略, 这也比较符合游客心理。
为了使导游线路图能够优化,可通过拓朴排序判断图中有无回路,若有回路,则打印输出回路中的景点,供人工优化。
在导游线路图中,还为一些不愿按线路走的游客提供信息服务,比如从一个景点到另一个景点的最短路径和最短距离。在本线路图中将输出任意景点间的最短路径和最短距离。
在景区建设中,道路建设是其中一个重要内容。道路建设首先要保证能连通所有景点,但又要花最小的代价,可以通过求最小生成树来解决这个问题。本任务中假设修建道路的代价只与它的里程相关。
- 3 -
安阳师范学院·
安阳师范学院
·数据结构课外实践·
因此归纳起来,本任务有如下功能模块: 创建景区景点分布图;
输出景区景点分布图(邻接矩阵) 输出导游线路图;
判断导游线路图有无回路;
求两个景点间的最短路径和最短距离; 输出道路修建规划图。
主程序用菜单选项供用户选择功能模块。
二、 功能模块及结构描述
结构:
*****************图的邻接表存储结构********************* typedef struct ArcNode
{
int adjvex;//该弧所指向的顶点的位置; int weight;//弧长度
struct ArcNode*nextarc; //指向下一条弧的指针;
}ArcNode;
typedef struct VNode
{
VertexType data; //顶点信息
ArcNode *firstarc; //指向第一条依附该顶点的弧的指针
}VNode,*AdjList;
typedef struct
{
AdjList vertices;
int vexnum,arcnum; //图的当前顶点数和弧数;
}ALGraph;
//************************end********************
//*******************图的邻接矩阵存储结构********* typedef char VertexType;
typedef struct
{
VertexType*vexs; //顶点向量;
int**arcs; //邻接矩阵//存储对应的长度
int vexnum,arcnum; //图的当前顶点数和弧数;
}MGraph;
//*******************end*********************
- 4 -
安阳师范学院·
安阳师范学院
·数据结构课外实践·
//*************十字链表存储结构*********** typedef struct ArcBox
{
int tailvex,headvex; //该弧的尾和头顶点的位置int weight; //该弧的长度;
struct ArcBox *hlink,*tlink; //分别为弧头相同和弧尾相同的弧的链域
}ArcBox;
typedef struct Vex
文档评论(0)