校园导游
来源:互联网 发布:php学生管理系统源代码 编辑:程序博客网 时间:2024/04/26 11:10
#include<iostream>#include<cstring>using namespace std;#define Maxvexnum 50 /*景点个数最大50*/#define MAXCOST 1000 /*定义路径的无穷大*/#define T 10 /*目前景点个数*/typedef struct{ char name[20]; /*景点名称*/ char number[15]; /*景点代号*/ char introduce[100]; /*景点简介*/}Elemtype;typedef struct{ int num; /*顶点编号*/ Elemtype date; /*顶点信息*/}Vertex; /*定义顶点*/typedef struct{ Vertex vexs[Maxvexnum]; /*存放顶点的一维数组*/ unsigned int edges[Maxvexnum][Maxvexnum]; /*存放路径的长度*/ int n,e;}MGraph;MGraph MGr; /*全局变量,定义MGr为MGraph类型*/int shortest[Maxvexnum][Maxvexnum]; /*定义全局变量存贮最小路径*/int path[Maxvexnum][Maxvexnum]; /*定义存贮路径*/void init(){ int i,j; MGr.vexs[1].num=1; strcpy(MGr.vexs[1].date.name,"图书馆"); strcpy(MGr.vexs[1].date.number,"01"); strcpy(MGr.vexs[1].date.introduce,"自习和看书的地方\n"); MGr.vexs[2].num=2; strcpy(MGr.vexs[2].date.name,"校医院"); strcpy(MGr.vexs[2].date.number,"02"); strcpy(MGr.vexs[2].date.introduce,"学生看病的地方\n"); MGr.vexs[3].num=3; strcpy(MGr.vexs[3].date.name,"中国邮政"); strcpy(MGr.vexs[3].date.number,"03"); strcpy(MGr.vexs[3].date.introduce,"发收邮件的地方\n"); MGr.vexs[4].num=4; strcpy(MGr.vexs[4].date.name,"学生活动中心"); strcpy(MGr.vexs[4].date.number,"04"); strcpy(MGr.vexs[4].date.introduce,"学生活动和文艺演出\n"); MGr.vexs[5].num=5; strcpy(MGr.vexs[5].date.name,"篮球场"); strcpy(MGr.vexs[5].date.number,"05"); strcpy(MGr.vexs[5].date.introduce,"打篮球的地方,附近有网球场和排球场\n"); MGr.vexs[6].num=6; strcpy(MGr.vexs[6].date.name,"第七教学楼"); strcpy(MGr.vexs[6].date.number,"06"); strcpy(MGr.vexs[6].date.introduce,"学生上课的地方\n"); MGr.vexs[7].num=7; strcpy(MGr.vexs[7].date.name,"第二教学楼"); strcpy(MGr.vexs[7].date.number,"07"); strcpy(MGr.vexs[7].date.introduce,"电子、机械、自动化学院\n"); MGr.vexs[8].num=8; strcpy(MGr.vexs[8].date.name,"第一教研楼"); strcpy(MGr.vexs[8].date.number,"08"); strcpy(MGr.vexs[8].date.introduce,"通信和计算机学院\n"); MGr.vexs[9].num=9; strcpy(MGr.vexs[9].date.name,"第六教研楼"); strcpy(MGr.vexs[9].date.number,"09"); strcpy(MGr.vexs[9].date.introduce,"自习和考研学习的地方\n"); MGr.vexs[10].num=10; strcpy(MGr.vexs[10].date.name,"南大门"); strcpy(MGr.vexs[10].date.number,"10"); strcpy(MGr.vexs[10].date.introduce,"学校南边的入口,气势宏伟\n"); for(i=1;i<=T;i++) { for(j=1;j<=T;j++) { MGr.edges[i][j]=MAXCOST; } } for(i=1;i<=T;i++) { shortest[i][i]=0; } /*初始化*/ MGr.edges[1][2]=MGr.edges[2][1]=15; MGr.edges[1][9]=MGr.edges[9][1]=15; MGr.edges[2][3]=MGr.edges[3][2]=6; MGr.edges[2][6]=MGr.edges[6][2]=20; MGr.edges[3][4]=MGr.edges[4][3]=24; MGr.edges[3][6]=MGr.edges[6][3]=17; MGr.edges[4][6]=MGr.edges[6][4]=20; MGr.edges[4][8]=MGr.edges[8][4]=18; MGr.edges[5][7]=MGr.edges[7][5]=16; MGr.edges[6][7]=MGr.edges[7][6]=30; MGr.edges[6][8]=MGr.edges[8][6]=10; MGr.edges[7][8]=MGr.edges[8][7]=12; MGr.edges[7][9]=MGr.edges[9][7]=28; MGr.edges[8][10]=MGr.edges[10][8]=45; MGr.edges[1][1]=MGr.edges[2][2]=MGr.edges[3][3]=MGr.edges[4][4]=MGr.edges[5][5]=0; MGr.edges[6][6]=MGr.edges[7][7]=MGr.edges[8][8]=MGr.edges[9][9]=MGr.edges[10][10]=0;} void introduce(){ int n; cout<<"请输入查询景点编号:"<<endl; cin>>n; switch(n) { case 1: cout<<"景点编号:"<<MGr.vexs[1].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[1].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[1].date.introduce<<endl; break; case 2: cout<<"景点编号:"<<MGr.vexs[2].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[2].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[2].date.introduce<<endl; break; case 3: cout<<"景点编号:"<<MGr.vexs[3].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[3].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[3].date.introduce<<endl; break; case 4: cout<<"景点编号:"<<MGr.vexs[4].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[4].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[4].date.introduce<<endl; break; case 5: cout<<"景点编号:"<<MGr.vexs[5].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[5].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[5].date.introduce<<endl; break; case 6: cout<<"景点编号:"<<MGr.vexs[6].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[6].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[6].date.introduce<<endl; break; case 7: cout<<"景点编号:"<<MGr.vexs[7].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[7].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[7].date.introduce<<endl; break; case 8: cout<<"景点编号:"<<MGr.vexs[8].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[8].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[8].date.introduce<<endl; break; case 9: cout<<"景点编号:"<<MGr.vexs[9].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[9].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[9].date.introduce<<endl; break; case 10: cout<<"景点编号:"<<MGr.vexs[10].date.number<<endl; cout<<"景点名称:"<<MGr.vexs[10].date.name<<endl; cout<<"景点简介:"<<MGr.vexs[10].date.introduce<<endl; break; default: cout<<"输入序号错误。"; break; }}/*弗洛伊德算法求最短路径*/void floyd(){ int i,j,k; for(i=1;i<=T;i++) { for(j=1;j<=T;j++) { shortest[i][j]=MGr.edges[i][j]; //初始化数组 path[i][j]=0; } } for(k=1;k<=T;k++) { for(i=1;i<=T;i++) { for(j=1;j<=T;j++) { if(shortest[i][j]>(shortest[i][k]+shortest[k][j])) { shortest[i][j]=shortest[i][k]+shortest[k][j]; path[i][j]=k;//记录经过的路径 } } } }}/* 打印两个景点的路径及最短距离 */void display(int i,int j){ int a,b; int temp; a=i; b=j; temp=path[i][j]; cout<<a; if(path[i][j]!=0) { if(path[i][temp]!=0) { cout<<"->"<<path[i][temp]; } cout<<"->"<<temp; if(path[temp][j]!=0) { cout<<"->"<<path[temp][j]; } } cout<<"->"<<b; cout<<"\n\n"; cout<<a<<"->"<<b<<"最短距离是"<<shortest[a][b]<<"米"<<"\n\n"; }/*查找的两景点的最短距离*/int shortestdistance(){ int i,j; cout<<"请输入要查询的两个景点的编号(数字编号之间用' '间隔):"; cin>>i>>j; if(i>T||i<=0||j>T||j<0) { cout<<"输入信息错误!请重新输入!\n\n"; } else { floyd(); display(i,j); } return 1;}void main(){ char k; init(); cout<<"* 欢迎使用校园导游咨询 *\n"; while(1) { cout<<"1.景点信息查询请按 i 键\n"; cout<<"2.景点最短路径查询请按 s 键\n"; cout<<"3.退出系统请按 e 键\n"; cout<<"请选择服务:"; cin>>k; switch(k) { case 'i': cout<<"景点简介查询(请输入1~8)。"; introduce(); break; case 's': cout<<"景点最短路径查询。"; shortestdistance(); break; case 'e': exit(0); } } system("pause");}
阅读全文
0 0
- 校园导游
- 校园导游咨询
- 校园导游程序
- 校园导游咨询
- 校园导游咨询系统
- 校园导游咨询
- 校园导游系统
- 小型校园导游系统
- 校园导游图
- 校园导游系统
- 校园交通导游系统
- 课程设计校园导游
- 数据结构-校园导游咨询系统
- C项目-校园导游系统
- 校园导游系统 数据结构课程设计
- 数据结构项目-校园导游系统
- 【算法设计】虎溪校园导游系统
- 数据结构-校园导游咨询系统…
- jQuery获取相邻标签的值
- 根据Json自动生成实体类链接整理
- 微信小程序开发—(十四)表单验证2
- ulimit用法
- ASP-Server.Transfer-Response.Redirect
- 校园导游
- 剑指offer 3. 二维数组中的查找
- jQuery-PHP跨域请求数据
- Gesture Recognizers 与触摸事件分发
- getDomain(url)-我的JavaScript函数库-MazeyQ
- 使用PHP-curl获取验证码并模拟登录教务系统
- PHP单引号和双引号的区别
- Fragment自定义栈的使用
- box-shadow阴影效果