交通运输数据结构课程设计交通咨询系统设计

上传人:蜀歌 文档编号:147993566 上传时间:2020-10-15 格式:PDF 页数:44 大小:384.63KB
返回 下载 相关 举报
交通运输数据结构课程设计交通咨询系统设计_第1页
第1页 / 共44页
交通运输数据结构课程设计交通咨询系统设计_第2页
第2页 / 共44页
交通运输数据结构课程设计交通咨询系统设计_第3页
第3页 / 共44页
交通运输数据结构课程设计交通咨询系统设计_第4页
第4页 / 共44页
交通运输数据结构课程设计交通咨询系统设计_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《交通运输数据结构课程设计交通咨询系统设计》由会员分享,可在线阅读,更多相关《交通运输数据结构课程设计交通咨询系统设计(44页珍藏版)》请在金锄头文库上搜索。

1、(交通运输)数据结构课程 设计交通咨询系统设计 (交通运输)数据结构课程 设计交通咨询系统设计 TrafficNodeDat; typedefstructVNode CityTypecity; intTrainNum,FlightNum;/标记下面 Train 数组和 Flight 数组里元素个数 TrafficNodeDatTrainMAX_TRAFFIC_NUM;/数组成员为结构体,记录了到达城 市、起止时间、票价和班次 TrafficNodeDatFlightMAX_TRAFFIC_NUM; /intCost;/遍历时到达该城市的耗费(时间或者费用) VNodeDat; typedefs

2、tructPNode intCity; intTraNo; PNodeDat; 3系统功能设计3系统功能设计 (1)添加城市。添加一个城市的名称 (2)删除城市。输入一个城市名称,删除该城市。 (3)添加交通路线。输入起始城市、终点城市、航班或火车、车次、起始时间、 终点时间和票价 (4)删除交通路线。输入火车或飞机的班次删除该交通路线。 (5)查询最小费用路线。输入起始城市、终点城市、航班或火车、车次、起始 时间、终点时间查询最小费用路线。 三、模块设计三、模块设计 1模块设计1模块设计 (图 2.2 模块调用示意图) 2系统子程序及功能设计2系统子程序及功能设计 (1)intShowMen

3、u()/主菜单 (2)voidCopyRight() (3)intSeekCity(char*name)/寻找城市 (4)intInsertCity(char*Name)/添加城市 (5)intSaveSysInfo()/向程序输入数据 (6)intDelCity(char*Name)/删除城市 (7) intInsertTrain(char*train,char*StartCity,char*EndCity,intStartTime,in tEndTime,intcost)/添加火车路线 (8) intInsertFlight(char*flight,char*StartCity,char*

4、EndCity,intStartTime, intEndTime,intcost)/添加飞机航线 (9)intDelPath(char*name)/删除路线 (10) voidDijkstra(intmatxDij_MAXNDij_MAXN,intp_start,intp_end,intTrave lType) 无向网操作模块 (11)intInitSysData()/存储数据 (12) intSearchMinTime(CityTypeCity,CityTypeEndCity,intCurTime,intcurPathNo,i ntTravelType)/查询最短时间 (13)intCalc

5、MinTime(intStartCity,intEndCity,intTravelType)/显示最短 时间 (14)intCalcMinCost(intStartCity,intEndCity,intTravelType)/最少花费 (15)intmain()/主函数 3函数主要调用关系图3函数主要调用关系图 (图 2.3 函数主要调用关系图) 四、详细设计四、详细设计 1数据类型定义1数据类型定义 (1)全局变量的定义 typedefshortintCityType;/CityType 定义短整形的变量 typedefstructTrafficNode charnameMAX_STRING

6、_NUM;/班次/MAX_STRING_NUM 最为 10 intStartTime,StopTime;/起止时间 intEndCity;/该有向边指向的顶点在数组中的位置,即该城市编号 intCost;/票价 TrafficNodeDat; typedefstructVNode 15main () 89 1 12 754 13 6 3 6 1 2 237 16 CityTypecity; intTrainNum,FlightNum;/标记下面 Train 数组和 Flight 数组里元素个数 TrafficNodeDatTrainMAX_TRAFFIC_NUM;/数组成员为结构体,记录了到达

7、城 市、起止时间、票价和班次 TrafficNodeDatFlightMAX_TRAFFIC_NUM; /intCost;/遍历时到达该城市的耗费(时间或者费用) VNodeDat; typedefstructPNode intCity; intTraNo; PNodeDat; 2系统主要子程序详细设计2系统主要子程序详细设计 (1)用户工作区模块的设计 intShowMenu() printf(n|*欢迎使用交通咨询系统*|n); printf(n|-1:添加城市-|); printf(n|-2:删除城市-|); printf(n|-3:添加交通路线-|); printf(n|-4:删除交通

8、路线-|); printf(n|-5:查询最小费用路线-|); printf(n|-6:查询最快路线-|); printf(n|-7:清除屏幕-|); printf(n|-0:退出-|n); printf(n|*o(_)oo(_)o*|n); printf(n 请输入你的选择:); return1; (2)用 Dijkstra 算法求两段路程的最短距离 voidDijkstra_Output(intmatxDij_MAXNDij_MAXN,intPreCityDij_MAXN, intp_end,intTravelType) inttrackDij_MAXN; inti=0,j,k,min,t

9、mp,end,cost=0; j=p_end;tracki+=j; while(PreCityj=0) cost+=matxPreCityjj; tracki+=j=PreCityj; printf(nTrackWay:); if(!TravelType) for(i-;i0;i-) printf(n%s:,CityNametracki); end=tracki-1;min=32767; for(k=0;kAdjListtracki.Tra ink.Cost) min=AdjListtracki.Traink.Cost; tmp=k; printf(%s,AdjListtracki.Train

10、tmp.name); printf(%2d:%2d-%2d:%2d,AdjListtracki.Traintmp.StartTime/60,Ad jListtracki.Traintmp.StartTime%60,AdjListtracki.Traintmp. StopTime/60,AdjListtracki.Traintmp.StopTime%60); else for(i-;i0;i-) printf(n%s:,CityNametracki); end=tracki-1;min=32767; for(k=0;kAdjListtracki.Fli ghtk.Cost) min=AdjLis

11、ttracki.Flightk.Cost; tmp=k; printf(%s,AdjListtracki.Flighttmp.name); printf(%2d:%2d-%2d:%2d,AdjListtracki.Flighttmp.StartTime/60,A djListtracki.Flighttmp.StartTime%60,AdjListtracki.Flighttm p.StopTime/60,AdjListtracki.Flighttmp.StopTime%60); printf(n%s:DESTINATION!,CityNametrack0); printf(nMinCost:

12、%dn,cost); voidDijkstra(intmatxDij_MAXNDij_MAXN,intp_start,intp_end,intTrave lType) intPreCityDij_MAXN;/PreCityi=-1,neverused; /PreCity0,theprecityofCityi inti,j,min,pre,pos; for(i=0;iCityNum;i+) PreCityi=-1; PreCityp_start=-2; while(PreCityp_end=-1) min=-1; for(i=0;iCityNum;i+) if(PreCityi!=-1) for

13、(j=0;j0pos=j;min=matxij; PreCitypos=pre; Dijkstra_Output(matx,PreCity,p_end,TravelType); 五、测试分析五、测试分析 1.添加城市 在主菜单下,用户输入 1,添加城市名称。 (图 2.4添加城市) 2删除城市 在主菜单下,用户输入 2,删除已添加城市名称。 (图 2.5删除城市) 3添加交通路线 在主菜单下,用户输入 3,已添加城市名称。添加起始城市、终点城市名称、乘 车类型、乘车班次、起始时刻、终点时刻、和票价。 (图 2.6添加交通路线) 4删除交通路线 输入班次号,删除交通路线 (图 2.7删除交通路线

14、) 5查询最小费用交通路线 (图 2.8查询最小费用交通路线) 6查询最快交通路线 (图 2.9查询最快交通路线) 7清除屏幕 8退出 六、用户手册六、用户手册 使用本系统时,用户需先向程序添加城市后,在已有城市基础上添加已有城市的 路线和使用各项功能。 七、调试报告七、调试报告 程序运行无错误,但当系统输入其他无储存内容时程序会意外中断,代码需要优 化。 八、程序清单八、程序清单 #includestdafx.h #include #include #include #defineERR0 #defineOK1 #defineDij_MAXN100 #defineMAX_VERTEX_NUM

15、100 #defineMAX_STRING_NUM100 #defineMAX_TRAFFIC_NUM100 constcharCityFile=; constcharTrainFile=; constcharFlightFile=; typedefshortintCityType;/CityType 定义短整形的变量 typedefstructTrafficNode charnameMAX_STRING_NUM;/班次/MAX_STRING_NUM 最为 10 intStartTime,StopTime;/起止时间 intEndCity;/该有向边指向的顶点在数组中的位置,即该城市编号 intCost;/票价 TrafficNodeDat; typedefstructVNode CityTypecity; intTrainNum,FlightNum;/标记下面 Train 数组和 Flight 数组里元素个数 TrafficNo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号