资源简介
设计一个交通咨询系统,能让旅客咨询从任一城市顶点到另一城市顶点之间的最短路径(里程)或最低花费或最少时间等问题。对于不同咨询要求,可输入城市间的路程或所需时间或所需费用。
完成功能的详细说明:
1.创建图的存储结构使用邻接矩阵。
2.查询分为两类。一类是能让旅客咨询从一个城市到另外所有城市的最短路径(要求使用迪杰斯特拉算法),显示出所有路径,按升序排列。第二类是任意两个城市间的最短路径(要求使用弗洛伊德算法),显示最短路径。
代码片段和文件信息
#include
#include
#include
#define VertexType int
#define MAXSIZE 26
#define MAXCOST 10000
#define INFINITY 999999
using namespace std;
typedef struct{
int length;
int time;
int fee;
}edge_info;
typedef struct{
VertexType vex[MAXSIZE];
edge_info edges[MAXSIZE][MAXSIZE];
int vexnumedgenum;
}MGraph;
void cities(int m){
switch(m){
case 1:cout<<“北京“;break;
case 2:cout<<“长春“;break;
case 3:cout<<“成都“;break;
case 4:cout<<“大连“;break;
case 5:cout<<“福州“;break;
case 6:cout<<“广州“;break;
case 7:cout<<“贵阳“;break;
case 8:cout<<“哈尔滨“;break;
case 9:cout<<“呼和浩特“;break;
case 10:cout<<“昆明“;break;
case 11:cout<<“兰州“;break;
case 12:cout<<“柳州“;break;
case 13:cout<<“南昌“;break;
case 14:cout<<“南宁“;break;
case 15:cout<<“上海“;break;
case 16:cout<<“沈阳“;break;
case 17:cout<<“深圳“;break;
case 18:cout<<“天津“;break;
case 19:cout<<“武汉“;break;
case 20:cout<<“乌鲁木齐“;break;
case 21:cout<<“西安“;break;
case 22:cout<<“西宁“;break;
case 23:cout<<“徐州“;break;
case 24:cout<<“郑州“;break;
case 25:cout<<“株洲“;break;
default:cout<<“错误,系统无此城市!“;break;
}
}
void CreatMGraph(MGraph *G){
int ijktfs;
ifstream infile;
infile.open(“C:\\交通系统数据.txt“ios::in|ios::out);
if(!infile){
cerr<<“打开‘交通系统数据.txt’文件失败!“< infile.close();
return;
}
infile>>G->edgenum>>G->vexnum;
for(i=1;i<=G->vexnum;i++)
G->vex[i]=i;
for(i=0;i<=G->vexnum;i++){
for(j=0;j<=G->vexnum;j++){
G->edges[i][j].length=INFINITY;
G->edges[i][j].time=INFINITY;
G->edges[i][j].fee=INFINITY;
}
}
for(s=0;sedgenum;s++){
infile>>i>>j>>f>>t>>k;
G->edges[i][j].fee=f;
G->edges[j][i].fee=f;
G->edges[i][j].time=t;
G->edges[j][i].time=t;
G->edges[i][j].length=k;
G->edges[j][i].length=k;
}
infile.close();
}
void window()
{
cout<<“\n\n\t\t*****************交通查询系统*******************\n\n“;
cout<<“1:北京 2:长春 3:成都 4:大连 5:福州 6:广州 7:贵阳 8:哈尔滨 9:呼和浩特\n“;
cout<<“10:昆明 11:兰州 12:柳州 13:南昌 14:南宁 15:上海 16:沈阳 17:深圳 \n“;
cout<<“18:天津 19:武汉 20:乌鲁木齐 21:西安 22:西宁 23:徐州 24:郑州 25:株州\n“;
}
void shortestpath1(MGraph *Gint v0int n){
int kl;
int min;
int e[MAXSIZE][MAXSIZE];
int ijvpre;
int p[30]d[30];
int final[30]shuchu[30];
switch(n){
case 1:for(k=0;k for(l=0;l if(G->edges[k][l].length e[k][l]=G->edges[k][l].length;
else e[k][l]=INFINITY;
}
break;
case 2:for(k=0;k for(l=0;l if(G->edges[k][l].length e[k][l]=G->edges[k][l].time;
else e[k][l]=INFINITY;
}
break;
case 3:for(k=0;k for(l=0;l if(G->edges[k][l].length e[k][l]=G->edges[k][l].fee;
else e[k][l]=INFINITY;
}
break;
default:cou
相关资源
- 数据结构五叉路口交通灯的设计
- 航空客运订票系统 c语言 数据结构作
- 池塘夜降彩色雨
- 关键路径的算法源代码
- 数据结构 C语言版 第2版 严蔚敏 李冬
- 数据结构与程序设计C++语言描述(中
- C语言数据结构课程设计之统计C程序单
- 数据结构——利用 Stack类 为其
- Data Structures and Algorithm Analysis in C++
- 数据结构课程设计 停车场管理系统
- C++ 数据结构书籍 - 清华大学 - 邓俊辉
- [算法:C语言实现(第1-4部分)基础知
- C++数据结构原理与经典问题求解源代
- 数据结构与程序设计C++描述(Kruse著)
- C语言数据结构pdf,严蔚敏
- c++ 数据结构 哈夫曼压缩&解压软件 控
- 数据结构c语言版第2版课后习题答案
- 数据结构与算法分析C++语言描述第四
- 数据结构课程实验C++实现的银行系统
- 数据结构 考研复习笔记
- C-C++与数据结构(王立柱清华大学出版
- 数据结构——C语言描述》习题及答案
- 通讯录的制作数据结构c语言 代码+报
- 英文原版数据结构与算法分析——C语
- 数据结构与算法(严蔚敏)
- 数据结构英文版电子书
- c语言数据结构期末大作业-家族族谱管
- c++笔试面试之数据结构与算法
- 教学计划编制 C++ 数据结构
- 数据结构C++版第三版 习题解析 邓俊辉
评论
共有 条评论