交通咨询系统设计.docxVIP

  • 42
  • 0
  • 约6.95千字
  • 约 14页
  • 2020-03-13 发布于江西
  • 举报
交通咨询系统设计 实验目的和要求 掌握最短路径的算法; 编写实验报告; 实验内容 本设计要求一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一个城市顶点之 间的最短路径、最低花费或最少时间等问题。对于不同的咨询要求,可输入城市间的路程、 所需时间或所需费用。 实验步骤 1、 问题分析 该设计分为三个部分: 建立交通网络图的存储结构 解决单源最短路径问题 实现两个城市顶点之间的最短路径问题 2、 问题求解 ? 2.1 建立交通网络图的存储结构 图的邻接矩阵 #define MVNum 50 Typedef struct{ VertexType vexs[MVNum];//顶点信息 Adjmatrix arcs[MVNum][MVNum];//邻接矩阵边的信息 }MGraph ? 2.2 单源最短路径 Dijkstra 算法 按路径长度递增产生诸顶点的最短路径 ? 2.3 任意两个顶点之间的最短路径 Floyd 算法 完整的程序清单 程序运行测试 #include stdafx.h #include stdio.h #include string.h #define MVNum 50 #define Dij_MAXN 33 #define MAX_VERTEX_NUM 31 #define MAX_STRING_NUM 10 #define MAX_TRAFFIC_NUM 10 typedef struct TrafficNode { char name[MAX_STRING_NUM]; int Time;// int EndCity //火车到达城市的编号 int Cost;//票价 } TrafficNodeDat; typedef struct VNode { CityType city; //城市编号 int TrainNum; //标记下面 Train 数组里元素个数 TrafficNodeDat Train[MAX_TRAFFIC_NUM]; //数组成员为结构体,记录了到达城市、 起止时间、票价和班次 } VNodeDat; typedef struct TrafficNode { char name[MAX_STRING_NUM]; //班次 int Time; int EndCity; //火车到达城市的编号 int Cost; //票价 } TrafficNodeDat; typedef struct VNode { CityType city; //城市编号 int FlightNum; //标记下面 Train 数组和 Flight 数组里元素个数 TrafficNodeDat Flight[MAX_TRAFFIC_NUM]; } VNodeDat; int main() switch(Command) { case 0: return 0; case 1: Administrators();//管理员操作界面函数 break; case 2: User();//用户操作界面函数 break; default: cout\t 选择序号错误!请重新选择!\n; int InitSystem() void User() void Administrators() int DelCity(char *Name) { //删除城市 //删除城市 int city,i,j; city=SeekCity(Name); for(i=city;iCityNum-1;i++) { strcpy(CityName[i],CityName[i+1]); AdjList[i].FlightNum=AdjList[i+1].FlightNum;AdjList[i].TrainNum=AdjList[i+1]. TrainNum; for(j=0;jAdjList[i].FlightNum;j++) { AdjList[i].Flight[j].Cost=AdjList[i+1].Flight[j].Cost; AdjList[i].Flight[j].EndCity=AdjList[i+1].Flight[j].EndCity; strcpy(AdjList[i].Flight[j].name,AdjList[i+1].Flight[j].name); AdjList[i].Flight[j].Time=AdjList[i+1].Flight[j].Time; } } CityNum--; return 1; } int DelPath(char *name) //删除路线 { //删除路线 int i,j,flag=0; for(i=0;iCityNum;i++) { for(j=0;jAdjList[i].FlightN

文档评论(0)

1亿VIP精品文档

相关文档