交通咨询系统设计(共8页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《交通咨询系统设计(共8页).doc》由会员分享,可在线阅读,更多相关《交通咨询系统设计(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上交通咨询系统设计实验目的和要求1. 掌握最短路径的算法;2. 编写实验报告;实验内容本设计要求一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一个城市顶点之间的最短路径、最低花费或最少时间等问题。对于不同的咨询要求,可输入城市间的路程、所需时间或所需费用。实验步骤1、 问题分析 该设计分为三个部分:l 建立交通网络图的存储结构l 解决单源最短路径问题l 实现两个城市顶点之间的最短路径问题2、 问题求解l 2.1建立交通网络图的存储结构图的邻接矩阵#define MVNum 50Typedef struct VertexType vexsMVNum;/顶点信息 Adj
2、matrix arcsMVNumMVNum;/邻接矩阵边的信息MGraphl 2.2单源最短路径Dijkstra算法按路径长度递增产生诸顶点的最短路径l 2.3任意两个顶点之间的最短路径Floyd算法3、 完整的程序清单4、 程序运行测试#include stdafx.h #include #include #define MVNum 50 #define Dij_MAXN 33 #define MAX_VERTEX_NUM 31 #define MAX_STRING_NUM 10 #define MAX_TRAFFIC_NUM 10typedef struct TrafficNode cha
3、r nameMAX_STRING_NUM; int Time;/int EndCity /火车到达城市的编号int Cost;/票价 TrafficNodeDat; typedef struct VNode CityType city; /城市编号int TrainNum; /标记下面Train数组里元素个数 TrafficNodeDat TrainMAX_TRAFFIC_NUM; /数组成员为结构体,记录了到达城市、起止时间、票价和班次 VNodeDat; typedef struct TrafficNode char nameMAX_STRING_NUM; /班次 int Time;int
4、 EndCity; /火车到达城市的编号int Cost; /票价 TrafficNodeDat; typedef struct VNode CityType city; /城市编号int FlightNum; /标记下面Train数组和Flight数组里元素个数 TrafficNodeDat FlightMAX_TRAFFIC_NUM; VNodeDat;int main()switch(Command) case 0: return 0; case 1: Administrators();/管理员操作界面函数 break; case 2: User();/用户操作界面函数 break; d
5、efault: coutt选择序号错误!请重新选择!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(CityNamei,CityNamei+1);AdjListi.FlightNum=AdjListi+1.FlightNum;AdjListi.TrainNum=AdjListi+1.TrainNum;for(j=0;jAdjListi.Flight
6、Num;j+)AdjListi.Flightj.Cost=AdjListi+1.Flightj.Cost;AdjListi.Flightj.EndCity=AdjListi+1.Flightj.EndCity;strcpy(AdjListi.Flightj.name,AdjListi+1.Flightj.name);AdjListi.Flightj.Time=AdjListi+1.Flightj.Time;CityNum-;return 1;int DelPath(char *name) /删除路线/删除路线int i,j,flag=0;for(i=0;iCityNum;i+)for(j=0;
7、jAdjListi.FlightNum;j+)if(strcmp(AdjListi.Flightj.name,name)=0)flag=1;break;/找到要删除的路线,找到跳出for循环if(flag)for(;jAdjListi.FlightNum-1;j+)AdjListi.Flightj.Cost=AdjListi.Flightj+1.Cost;AdjListi.Flightj.EndCity=AdjListi.Flightj+1.EndCity;strcpy(AdjListi.Flightj.name,AdjListi.Flightj+1.name);AdjListi.Flight
8、j.Time=AdjListi.Flightj+1.Time;AdjListi.FlightNum-;/将要删除路线后面的路线全部向前移,并将总数减1break;for(j=0;jAdjListi.TrainNum;j+)if(strcmp(AdjListi.Trainj.name,name)=0)flag=1;break;if(flag)for(;jAdjListi.TrainNum-1;j+)AdjListi.Trainj.Cost=AdjListi.Trainj+1.Cost;AdjListi.Trainj.EndCity=AdjListi.Trainj+1.EndCity;strcpy
9、(AdjListi.Trainj.name,AdjListi.Trainj+1.name);AdjListi.Trainj.Time=AdjListi.Trainj+1.Time;AdjListi.TrainNum-;break;return 1;int InsertCity(char *Name) /添加某个城市/添加城市strcpy(CityNameCityNum,Name);AdjListCityNum.city=CityNum;/设置城市编号AdjListCityNum.FlightNum=0;AdjListCityNum.TrainNum=0;/新增城市火车数和飞机数初始为零City
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通 咨询 系统 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内