交通咨询系统设计—课程设计实验报告精选.doc

交通咨询系统设计—课程设计实验报告精选.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
交通咨询系统设计—课程设计实验报告精选

数学与统计学院 课程名称:《算法与数据结构》 设计题目: 交通咨询系统设计 交通咨询系统设计 1.系统的设计要求 问题的描述 根据不同目的的旅客对交通工具的不同要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市之间的模拟交通咨询的程序,为旅客提供两种或者三种最优决策的交通咨询。 需求分析 1)提供对城市信息进行编辑(如:添加或删除)的功能。 (2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。 (3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具。 (4)旅途中耗费的总时间应该包括中转站的等候时间。 (5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。 2.系统概要 为实现上述程序功能,要用到一种数据结构,图。 根据输入的顶点和边,建立图,然后利用图的邻接表存储结构实现算法。 ADT Graph{ 数据对象V:v是具有相同数据特性的元素的集合,称作顶点集。 数据关系R: R={VR} VR={v,w|v,w属于V且P(v,w),v,w表示从v到w的弧, 谓词P(v,w)定义了弧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); 初始条件:图G存在。 操作结果:增加城市。 UserDemand70405(ALGraph G); 初始条件:图G存在。 操作结果:显示选择项目。 MinExpenditure70405(arcs,expenditure,route); 初始条件:图G存在。 操作结果:从一个顶点到另一个顶点的最少钱数。 MinTime70405( arcs,time,route); 初始条件:图G存在。 操作结果:从一个顶点到另一个顶点的最短时间。 DeleteVex70405(G,v); 初始条件:图G存在,v是G中某个顶点。 操作结果:删除G中顶点v以及相关的弧。 }ADT Graph 系统模块图如下: 3 详细设计 图的邻接表存储结构表示如下: #include MAX_VERTEX_NUM 20 typedef struct ArcNode{ //弧的结构 int adjvex;//该弧所指向的顶点的位置 struct ArcNode *nextarc;//指向下一个弧的指针 infoType *info;//该弧相关信息的指针 }ArcNode; typedef struct VNode{//顶点结构 vertextype data;//顶点信息 Arcnode *firstarc;//指向第一条依附该顶点的弧的指针 }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct {//图的结构 AdjList vertices; int vexnum ,arcnum;//图的当前顶点数和弧数 int kind;//图的种类标志 }ALGraph; //队列的链式存储结构 typedef struct QNode { int adjvex; struct QNode *next; }QNode; typedef struct { QNode *front;//对头指针。 QNode *rear;//队尾指针。 }LinkQueue; 主界面操作: int main() { 界面初始化; 输入操作命令; While(“命令” != “退出”) { 接受命令(用户输入要实现功能);

文档评论(0)

feixiang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档