欢迎来到天天文库
浏览记录
ID:6603976
大小:329.00 KB
页数:45页
时间:2018-01-20
《交通咨询系统设计—课程设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数学与统计学院课程设计实验报告课程名称:《算法与数据结构》设计题目:交通咨询系统设计交通咨询系统设计1.系统的设计要求1)问题的描述根据不同目的的旅客对交通工具的不同要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市之间的模拟交通咨询的程序,为旅客提供两种或者三种最优决策的交通咨询。2)需求分析1)提供对城市信息进行编辑(如:添加或删除)的功能。(2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。(3)提供两种最优决策:最快到达或最省
2、钱到达。全程只考虑一种交通工具。(4)旅途中耗费的总时间应该包括中转站的等候时间。(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。2.系统概要为实现上述程序功能,要用到一种数据结构,图。根据输入的顶点和边,建立图,然后利用图的邻接表存储结构实现算法。ADTGraph{数据对象V:v是具有相同数据特性的元素的集合,称作顶点集。数据关系R:R={VR}VR={
3、v,w属于V且P(v,w),
4、表示从v到w的弧,谓词P(v,w)定义了弧的意义或信息}基本操作P:CreateGraph70405(&G,V,VR);初始条件:V是图的顶点集,VR是图的弧的集合。操作结果:按V和VR的定义构造图G。Initgraph70405(G);初始条件:图G存在。操作结果:各个变量初始化。LocateVex70405G,u);初始条件:图G存在,u和G中顶点具有相同的性质。操作结果:若图中存在顶点u,则返回该顶点在图中的位置;否则返回其他信息。Cityedit70405(G);初始条件:图G存在。操作结果:对城市进行编辑。EnterVertex70405(G
5、);初始条件:图G存在。操作结果:增加城市。UserDemand70405(ALGraphG);初始条件:图G存在。操作结果:显示选择项目。MinExpenditure70405(arcs,expenditure,route);初始条件:图G存在。操作结果:从一个顶点到另一个顶点的最少钱数。MinTime70405(arcs,time,route);初始条件:图G存在。操作结果:从一个顶点到另一个顶点的最短时间。DeleteVex70405(&G,v);初始条件:图G存在,v是G中某个顶点。操作结果:删除G中顶点v以及相关的弧。}ADTGraph系统模块图如下:
6、全国交通咨询系统退出显示交通系统用户咨询管理员模块管理员管理列车车次编辑飞机航班编辑城市编辑初始化交通系统用户咨询最少中转次数最少旅行时间最少旅行费用显示交通系统显示城市显示飞机航班显示列车车次键盘输入初始化交通系统文档形式输入入飞机航班编辑删除航班新增航班火车列次编辑新增车次删除车次3详细设计图的邻接表存储结构表示如下:#includeMAX_VERTEX_NUM20typedefstructArcNode{//弧的结构intadjvex;//该弧所指向的顶点的位置structArcNode*nextarc;//指向下一个弧的指针infoType*info;/
7、/该弧相关信息的指针}ArcNode;typedefstructVNode{//顶点结构vertextypedata;//顶点信息Arcnode*firstarc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MAX_VERTEX_NUM];typedefstruct{//图的结构AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数intkind;//图的种类标志}ALGraph;//队列的链式存储结构typedefstructQNode{intadjvex;structQNode*next;}QNode;
8、typedefstruct{QNode*front;//对头指针。QNode*rear;//队尾指针。}LinkQueue;主界面操作:intmain(){界面初始化;输入操作命令;While(“命令”!=“退出”){接受命令(用户输入要实现功能);进入各个处理命令函数;}}图的相关数据类型的定义//初始化图G当i=1,执行如下:a.创建城市b.创建飞机航班c.创建列车车次d.创建图G当i=2,执行创建图Gvoidinitgraph70405(ALGraph*G){switch(i){case1:createcityfile70405();createplane
9、file70405();
此文档下载收益归作者所有