本文主要是介绍数据结构课程设计-校园导游程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
根据题目内容,需要用无向网表示所在学校的景点平面图,即校内每个景点
为无向网中的各个结点,景点的编号、名称、简介等信息存储在结点中,图中的 边表示景点间的道路,存放景点之间的路径长度等信息。需要回答有关景点介绍、
游览路径等问题。具体要求为:
(1) 能够查询各个景点的相关信息。
(2) 查询图中任意两个景点间的最短路径。
(3) 查询图中任意两个景点间的所有路径。
(4) 增加、删除、更新有关景点和道路的信息。
选取10个代表性景点
实现代码
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
#include<string.h>
#include<algorithm>
#include<stack>
#define INF 9999999
#define MAX 30
int dist[MAX][MAX];///距离
int path[MAX][MAX];///路径
int Stack[MAX];///路径栈
int top;///栈顶
int counts;///记录路径数typedef struct VexNode//景点信息结构体
{int vertex;//景点编号char name[20];//景点名称char vertax_message[400];//景点介绍
}VerNode;
typedef struct maps//景点图的结构体
{
VerNode v[MAX];
int vexnum;//点数
int arcnum;//边数
int edgs[MAX][MAX];//邻接矩阵
}AdjList;
int visited[MAX];void create_vertex(AdjList &GL);//初始化校园景点及景点信息函数
void Init_Creat_maps(AdjList & GL);//初始化校园景点图函数
void Dis_menu();//展示程序菜单
void Dis_map();//展示校园景点图
void add_message(AdjList &GL);//更新或添加或删除校园景点及路径信息函数
void find_message(AdjList GL);//查询景点信息函数
void Floyd(AdjList GL);//弗洛伊德求最短路径
void Floyd_print(int s, int e,AdjList GL);//打印最短路径
void Dfs_allpaths(int s,int e,AdjList GL);//查询两景点之间所有路径函数
void message(AdjList GL);//已有景点int main(){ AdjList graph;int key;int start,end;create_vertex(graph);Init_Creat_maps(graph);while(1){Dis_menu();cin>>key;if(key==1){Dis_map();find_message(graph);system("pause");system("cls");}if(key==2){message(graph);printf("请输入起点的景点(编号):\n");scanf("%d",&start);printf("请输入起点的终点(编号):\n");scanf("%d",&end);Floyd(graph); printf("从%s到%s的最短路径是:%d米 ",graph.v[start].name,graph.v[end].name,dist[start][end]);printf("%s->",graph.v[start].name);Floyd_print(start,end,graph);printf("%s\n",graph.v[end].name);system("pause");system("cls");}if(key==3){message(graph);printf("请输入起点的景点(编号):\n");scanf("%d",&start);printf("请输入起点的终点(编号):\n");scanf("%d",&end);counts=0;top=0;Dfs_allpaths(start,end,graph);system("pause");system("cls");}if(key==4){message(graph);add_message(graph);system("pause");system("cls");}if(key==0){printf("使用结束!\n");printf("即将退出安工程校园导游系统.....");break;}if(key>4||key<0){printf("输入有误!请重新输入!");continue;}}return 0;}void create_vertex(AdjList &GL)
{//预置初始时景点图的景点信息GL.v[1].vertex=1;strcpy(GL.v[1].name,"网球场");strcpy(GL.v[1].vertax_message,"网球场是安工程校园的一个户外运动场地,提供给师生们进行网球运动的场所。这里有专业的网球场地和设施,可以让你尽情享受网球运动的乐趣。");GL.v[2].vertex=2;strcpy(GL.v[2].name,"体育馆");strcpy(GL.v[2].vertax_message,"体育馆是安工程校园内的一个综合性体育场馆,设有多个室内运动场地,如篮球场、羽毛球场、乒乓球场等。师生们可以在这里进行各种体育锻炼和比赛活动。");GL.v[3].vertex=3;strcpy(GL.v[3].name,"英语角");strcpy(GL.v[3].vertax_message,"英语角是安工程校园内一个特殊的交流区域,提供给学生们练习英语口语和交流的场所。在这里,你可以与其他同学自由对话,提高自己的英语口语能力。");GL.v[4].vertex=4;strcpy(GL.v[4].name,"情人桥");strcpy(GL.v[4].vertax_message,"情人桥是安工程校园内的一座浪漫的小桥,因其景色优美而得名。这里是情侣们约会和散步的热门地点,也是学生们放松心情的好去处。");GL.v[5].vertex=5;strcpy(GL.v[5].name,"师生活动中心");strcpy(GL.v[5].vertax_message,"师生活动中心是安工程校园的一个集休闲、娱乐、学习于一体的场所。这里有图书馆、电影院、多功能厅等设施,为师生们提供了丰富多样的活动和学习资源。\n学生处、招生就业处、校团委、校史馆、校学生会联合会、校社团联合会、校大学生艺术团在此办公。");GL.v[6].vertex=6;strcpy(GL.v[6].name,"建设银行");strcpy(GL.v[6].vertax_message,"建设银行是安工程校园内的一家银行分支机构,为师生们提供金融服务,包括存取款、贷款、理财等。方便师生们进行日常的金融交易和管理。");GL.v[7].vertex=7;strcpy(GL.v[7].name,"图书馆");strcpy(GL.v[7].vertax_message,"图书馆是安工程校园内的知识殿堂,收藏了大量的
这篇关于数据结构课程设计-校园导游程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!