- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全国交通咨询模拟
数据结构
课程设计报告
实验题目:5组+全国交通咨询模拟
班级:191132-04
姓名:薛福兴
学号:20131000447
指导老师:郭艳
完成日期:2015年07月
5组 + 全国交通模拟咨询系统 3
1、需求分析 3
1.1、解决问题: 3
1.2、程序的功能: 3
1.3、输入和输出的形式: 3
2.设计 4
2.1 设计思想 4
2.2 设计表示 5
2.3 详细设计 5
3.调试分析 10
4.用户手册 10
5.测试数据及测试结果 10
6.参考文献 14
7.总结 14
8.检查过后对程序的修改(07.25) 15
5组 + 全国交通模拟咨询系统
1、需求分析
1.1、解决问题:
城市之间有两种交通工具:火车和飞机。出于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省。编制一个全国城市间的交通咨询程序,为旅客提供两种最优决策的交通咨询。
1.2、程序的功能:
读取城市信息文件并在程序运行时动态加载到内存;提供对城市信息进行编辑(如添加或删除)的功能。
读取列车时刻表和飞机航班表并在程序运行时动态加载到内存;提供对列车时刻表和飞机航班表进行编辑(增设或删除)的功能。
用户输入城市起点和终点,以及决策选项(最快到达或最省钱到达)后,系统针对用户所选的决策策略提供城市起点到城市终点间的所有不重复的可行方案(按照最优到最差的顺序排序输出)。全程只考虑一种交通工具。数据结构设计应尽可能快地实现查询和排序。
旅途中耗费的总时间应该包括中转站的等候时间。
咨询以用户和计算机的对话方式进行。
1.3、输入和输出的形式:
功能:模拟全国交通咨询系统对费用或运行时间的最佳方案进行排序。
数据流入:将站台、铁路线的信息通过读取文件的方式进行对图的建立。
数据流出:在退出程序时对修改过的文件进行保存。
程序流程图:资源管理器流程图如图
2.设计
2.1 设计思想
一、数据与操作的特性
数据特性分析
在本项目共包含2大类。
1.1.1)AdjLWGraph类
AdjLWGraph类为图的邻接表,内含seqlist类的顶点Vertices私有数据成员,numOfEdges代表图中所含边数。
1.1.2)Railroadline类
Railroadline类为铁路线所含含的信息,number为铁路线编号、name为铁路线的名称、S_allv中存储的为铁路线所经过的站、S_rrl中存储火车到达每个站的时间、S_orrl中存储火车在该点的出发时间。
操作特性分析
1.2.1)构造两个类,分别用于存储站点(站点之间的联系)、铁路线。
1.2.2)通过读取文件的格式将数据读入项目中。
1.2.3)通过在已创建好的图中,对站点、铁路线进行增加。
1.2.4)通过输入两个站点并选择最快方式or最省钱方式,并对所有结果按升序进行排序。
1.2.5)对站点和铁路线进行增加与删除。
二、数据结构设计
逻辑结构设计:
? 在AdjLWGraph类中存放着站点,站点中含有每个站点的名称、简称、两点之间所属铁路线、站点的编号以及和此站点相连的站点的信息。
存储结构设计:
? 通过采取邻接表的格式,将站与站之间的联系进行构建。在数据读入时,将铁路线进行构建。
三、算法设计
总体设计
主要算法的基本思想
在读入读出中,对图的点与边进行构建,对铁路线所经过的点与铁路线的名称进行构建。
在找符合条件的所有路线时,采用递归。
在对所有符合条件的所有可能进行组合,并计算出时间、与费用,采用数组进行存取。
对所有可能采用快速排序+插入排序,然后进行输出。
2.2 设计表示
函数调用关系图
函数接口规格说明
void ifile1(AdjLWGraph g2) //将图进行读入,通过引用修改图。
void GetEdgRoadline(const int v1,const int v2,SeqListint S_line)const; //将边间所有路线读出。读入引用数组S_line中。
void InsertEdge(const int v1, const int v2, double Money); //在两个站点间插入边与权值。
Railroadline(int num,string n); //将铁路线的标号和铁路的名称进行初始化
//查询两点间的所有线路(递归)
void Circle1(int v0, int j, int k, SeqListMessage m_vec, SeqListEdg m_total,Edg w)//此函数传入所有边的信息、m_tot
您可能关注的文档
- 企业职工伤亡事故调查分析规则.doc
- 优质生态土鸡养殖标准.doc
- 企业战略管理作业2.docx
- 会计基础多选题.doc
- 传统造型元素在城市景观中的应用.doc
- 传染病资料.doc
- 低碳经济测试题及答案.doc
- 住宅设计规范.doc
- 作业指导书-水压试验.doc
- 住宅室内装饰装修管理规定.doc
- 2025年江苏旅游职业学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 2025合伙经营合同8篇.docx
- 2025年江苏护理职业学院单招(数学)历年真题考点含答案解析.docx
- 2025年最新版教育实习合同7篇.docx
- 2025年江苏城市职业学院单招语文2019-2024历年真题考点试卷含答案解析.docx
- 7号楼土石方工程合同5篇.docx
- 化工仪购销合同标准电子版10篇.docx
- 2025年江苏旅游职业学院单招职业技能测试近5年真题考点含答案解析.docx
- 2025年江苏海事职业技术学院单招职业技能测试近5年真题考点含答案解析.docx
- 2025年江苏海事职业技术学院单招语文2019-2024历年真题考点试卷含答案解析.docx
文档评论(0)