欢迎来到天天文库
浏览记录
ID:58056082
大小:183.98 KB
页数:32页
时间:2020-04-09
《全国交通咨询模拟.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据结构课程设计课题:全国交通咨询模拟学院:计算机科学与技术专业:通信工程班级:0903学号:2009115020322学生姓名:指导教师:一、题目分析1.【问题描述】处于对不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能的短,出门旅游的游客则希望旅费尽可能的省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两到三种最优决策的交通咨询。2.【基本要求】(1)提供对城市信息进行编辑(添加、删除)的功能。(2)城市之间有两种工具:火车和飞机。提供对列车时刻表和飞机航班表的编辑。(3)提供两种最优决策:最快到达或最省钱到达。全程只考
2、虑一种交通工具。(4)旅途中耗费的总时间应该包括中转站的等候时间。(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具。输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。二、概要设计1.【抽象数据类型】本程序运用了图这种数据结构,并以邻接表作交通图的存储结构。数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。数据关系R:R={VR}VR={
3、v,w∈V且P(v,w),表示从v到w的弧。谓词P(v,w)定义了弧的意义或信息}基本操作:AdjIniti
4、ate(&G)初始化邻接表AdjDestroy(&G)撤销邻接表InsertVertex(&G,i,&a)插入结点DeleteVertex(&G,i)删除结点InsertEdge()插入边DeleteEdge()删除边GetFirstVex()取第一个邻接结点GetNextVex()取下一个邻接结点CreatGraph()创建图邻接表的存储结构typedefstructNode{intdest;structNode*next;intt_time;floatt_price;intt_start[5];intt_get[5];intf_time;floatf_price;intf_start
5、[5];intf_get[5];}Edge;typedefstruct{DataTypedata[20];intscore;Edge*adj;}AdjLHeight;typedefstruct{AdjLHeighta[Max];intnumOfVerts;intnumOfEdges;}AdjLGraph;栈的存储结构typedefstructsnode{intdata;structsnode*next;}LSNode;其他基本操作:voidAdminister(AdjLGraph*G);voidUserDemand(AdjLGraph*G);voidCreatTraffic(AdjLGr
6、aph*G);voidEditCity(AdjLGraph*G);voidAddCity(AdjLGraph*G);voidDeleteCity(AdjLGraph*G);voidEditTraffic(AdjLGraph*G);intAddTraffic(AdjLGraph*G,inta[]);intDeleteTraffic(AdjLGraph*G,inta[]);voidLeastMoney(AdjLGraph*G,intv1,intv2,intTraffic[])voidLeastTime(AdjLGraph*G,intv1,intv2,intTraffic[])2.【程序的模块
7、】主函数main退出用户咨询UserDemand管理系统AdministerAdminister(&G)Administer(&G)管理系统Administer退出编辑道路EditTraffic编辑城市EditCity初始化交通系统CreatTraffic编辑城市EditCity退出添加城市AddCity删除城市DeleteCity编辑道路EditTraffic退出添加道路Addtraffic删除道路DeleteTraffic用户咨询UserDemand退出最省钱到达LeastMoney最快到达LeastTime三、详细设计1.【函数调用关系】DeleteQueueEnterQueueT
8、ransferDisposePrintGraphCreatTrafficInsertVextexAddcityEditCityDeleteVextexDeletetCityInsertEdgeAddTrafficEditTrafficAdministerDeleteTrafficDeleteEdgeStackPushMain()LeastMoneyStackPopUserDemandStackTopLeastTime2.【源文件】#
此文档下载收益归作者所有