全国交通咨询模拟系统

上传人:博****1 文档编号:552608244 上传时间:2023-07-07 格式:DOC 页数:28 大小:385.50KB
返回 下载 相关 举报
全国交通咨询模拟系统_第1页
第1页 / 共28页
全国交通咨询模拟系统_第2页
第2页 / 共28页
全国交通咨询模拟系统_第3页
第3页 / 共28页
全国交通咨询模拟系统_第4页
第4页 / 共28页
全国交通咨询模拟系统_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《全国交通咨询模拟系统》由会员分享,可在线阅读,更多相关《全国交通咨询模拟系统(28页珍藏版)》请在金锄头文库上搜索。

1、全国交通咨询模拟系统目录一、 需求分析4二、 个人工作4三、概要设计51主程序流程图:52创立图算法流程图:6四、源程序14五、程序结果2529六、程序设计体会30全国交通咨询模拟系统一、 需求分析旅客对由于出行目的的不同对交通工具的要求也有不同。例如,因公事出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客那么希望旅费尽可能省,而老年旅客那么要求中转次数最少。为了能满足广阔旅客的需求,方便旅客出行,就此编制一个全国城市间的交通咨询程序,为旅客提供两种或者三种最优决策的交通咨询,到达如下的根本要求::(1) 提供对城市信息进行编辑如:添加和删除的功能.(2) 城市之间有两种交通工具:火车和飞

2、机。提供对列车时刻表和飞机航班表进行编辑增加或删除的功能。(3) 提供两种最优决策:最快到达和最省钱到达。全程只考虑一种交通工具。(4) 旅途中消耗的总时间应该包括中转站的等候时间。(5) 咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原那么和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘哪趟列车或哪一次班机到何地。(6) 通过比照以及用户操作根本到达旅客出行的便利。二、 个人工作 此次课程设计是对全国城市交通图列车时刻表及飞机航班表的编辑。此次课设是利用VC工具在dos环境下实现全国交通的咨询与管理。通过此次程序可以对全

3、国城市之间火车与飞机进行两方面的咨询,即最少的时间与最少的费用的咨询,从而方便旅客的出行。通过此次课程设计,我要学会怎样用在VC dos环境下编程,而且要通过此次课程设计加深对数据结构的理解,在设计中用邻接表作交通图的存储结构,表示边的结点中除含有邻接点的信息外,还包括交通工具、路程中消耗的时间和花费以及出发和到达的时间等属性。图中顶点城市的信息,包括城市名称、城市编号和依附该顶点的边的指针。在程序中,利用迪杰斯特拉算法求花钱最少和花时间最少的交通方式。三、概要设计1主程序流程图:开始CreateGraph(GT)CreateGraph(GP)OpenGraph_T(GT)OpenGraph_

4、P(GP)Main_Menu(GT,GP)DestoryGraph(GT) DestoryGraph(GP)结束SaveGraph_T(GT)SaveGraph_P(GP)2创立图算法流程图:N开始iMAXVTXNUMG.FLAGI=0i+Y结束3翻开图算法流程图:开始NY读出城市的号数cityNum,标志Flag,城市名称cityNamejvexNum读出图中顶点数vexNum,边数edgeNum翻开文件j+iedgeNumN读出边上的各信息Y 结束i+4主菜单操作算法流程图:开始Switch(n)Case 2:Case 0:Case 1:Inquire_Menu(GT,GP)breakMa

5、nage_Menu(GT,GP)5咨询菜单流程图Inquire_Menu(GT,GP)Switch(choice)Case 1:Case 2:Case 0:Inquire_Money(GT,GP)Inquire_Time(GT,GP)break6咨询钱最少模块图Inquire_Money(GT,GP)NWhile(True)Y输入 nYn=1NYinput_Money(GP,st, nd)n=2LeastMoneyPath (GP,st,nd,p)Ninput_Money(GT,st, nd)print_Money(GP,p)LeastMoneyPath(GT,st,nd,p)Yn=2结束Np

6、rint_Money(GT,p)结束结束结束7input_Money(Graph G, int &st,int &sn)算法流程图While(True)输入起始城市名称YinputVex(G,st)=truebreakNWhile(True)输入终止城市名称inputVex(G,sn)=truebreakN8inputVex(G,st)算法流程图开始输入城市名字 nameYLocateVex(G,name,i)=trueReturn trueN输出城市不存在结束9LocateVex(G,name,i)算法流程图开始imaxvexnumYG.Flagi=1&strcmp(G.Adjlisti.c

7、ityName,name)=0i+YReturn falseReturn true结束10print_Money(GT,p)算法流程图开始i=0打印边p的信息Sum+=p.money i+Y结束输钱sumN11LeastMoneyPath(GT,st,nd,p)算法流程图结束初始化i=0inextEdgep-elem.Moneyelem.jvex重置每个顶点的最少钱的路径dijkst t=p-elemSetPath(pathp-elem.jvex,st,p-elem.jvex,t)Yp=qYNFound = false求从st 到nd 的最短路径算法并复制此路径copyPath(pathw,p

8、athv)开始11ShortestTimePath(GT,st,nd,p)算法流程图开始每个点初始一个最大值初始每条路径置时间0置起点的时间为n置p为起点的第一条边检测依附每个顶点的边依据迪杰斯特求每个起点到终点的时间最少的路径结束12Manage_Menu(GT,GP)算法流程图开始Switch(choice)Case 1:Case 0:Case 3:Case 2:Plane_Edit(GT,GP)breakTrain_Edit(GT,GP)City_Edit(GT,GP)13City_Edit(GT,GP)算法流程图开始输入n进行选择Nn=1NYn =2添加城市及相关信息Y删除城市及相关信

9、息结束输出错误输入n进行选择结束Nn =0Y结束14. Train_Edit(GT,GP)算法流程图开始NWhile(true)YBreak 输入n进行选择结束Yn=1NYn=2输入列车的信息breakN删除列车的信息重新输入n进行选择Nn=0breakYbreak注释:局部算法的设计思想相同,只是参数不同,故省略局部程序流程图。四、源程序#define MAXVTXNUM 30 /图中顶点数的最大值/*顶点、边和图类型*/typedef struct /定义各车次及航班的信息弧的信息int ivex; /起始点号int jvex; /终点号char Number10; / 车次号int Mo

10、ney; /费用int StartTime; /起始时间秒int EndTime; /终止时间秒int Time; /中途时间秒EdgeInfo; /边的信息typedef struct EdgeNode /边的信息 弧结点 EdgeInfo elem; EdgeNode *nextEdge;EdgeNode, *EdgePtr;/边的结点类型,指向边的指针typedef struct /城市信息 头结点char cityName10;int cityNumber;EdgePtr firstEdge; /指向的一条依附该顶点的边的指针Vnode; /顶点类型typedef struct /图的结构Vnode AdjlistMAXVTXNUM;/邻接表int vexNum, edgeNum; /图中的顶点数和边数int FlagMAXVTXNUM; /标志是否是图中的顶点,0表示不是,1表示是 Graph; /图类型/*图的根本操作*/* 路径类型 */typedef structint vx,vy; /vx为路径的起点,vy为路径的终点EdgeInfo p; /路径中边的信息Edge;typedef struct Edge edgesMAXVTXNUM; /路径中边的序列 : edgesi表示从起点到i的最短路径int len;

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

当前位置:首页 > 商业/管理/HR > 商业计划书

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