- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全国交通资讯模拟数据结构课程设计报告课案
全国交通咨询模拟系统的设计与实现
问题描述
出于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。
需求分析
(1) 提供对城市信息进行编辑 ( 如 : 添加或删除 ) 的功能。
(2) 城市之间有两种交通工具:火车和飞机。
(3) 提供两种最优决策 : 最快到达或最省钱到达。全程只考虑一种交通工具。
(4) 旅途中耗费的总时间应该包括中转站的等候时间。
(5) 咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具 , 输出信息 : 最快需要多长时间才能到达或者最少需要多少旅费才能到达 , 并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。
概要设计
因为全国交通咨询模拟中有众多城市之间的连接关系,为实现全国交通咨询系统的开发,采用图类型与邻接表类型来存储城市之间的信息。下面给出他们的ADT的定义。
3.1 抽象数据类型定义如下:
typedef struct unDiGraph
{
int numVerts; //结点
costAdj cost; //邻接矩阵
}unDiGraph,*UNG;
基本操作:
unDiGraph* CreateCostG()
操作结果:构造带权(费用)图。
unDiGraph* CreateTimeG()
操作结果:构造带权(时间)图。
构造飞机带权(费用)图。
PathMat *Floyed(unDiGraph *D)
操作结果:Floyed函数 求任意两点的最短路径。
3.2 系统功能模块设计
全国交通咨询模拟系统由4个功能模块组成:添加城市、删除程序、采用火车出行、采用飞机出行
下面给出功能模块图,如图3-1所示。
图3-1全国交通模拟图3-2 系统函数调用关系图
3.4主界面设计
为了实现全国交通咨询模拟系统,需要设计一个含有多菜单项的主控菜单子程序,以链接系统中各个子项目的调用,为了方便用户使用本系统,本系统主控菜单的运行界面如图3-3所示。
详细设计
实现全国交通咨询模拟系统的开发,采用图结构类型存储城市的信息。其中,各城市间的邻接关系用图的邻接矩阵类型存储;城市信息用结构体数组存储,其中每个数组元素是一个结构体变量,包含时间和费用三个分量;图的顶点的个数和边的个数由变量费用、时间大小表示,它们是整型数据。
4.1 数据类型定义
数据存储:有向图、邻接表
函数调用:
#include windows.h
#include stdio.h
#include crtdbg.h
#include string.h
#includeiostream.h
#include malloc.h//引用的文本件
#define INF 65535 //定义一个最大数定为无穷值
#define MAX 13
typedef int costAdj[MAX+1][MAX+1];//图邻接矩阵从1开始记数
int Path[MAX+1][MAX+1];//图邻接矩阵从1开始记数
int o[13],h;
typedef struct unDiGraph
{
int numVerts; //结点
costAdj cost; //邻接矩阵
}unDiGraph,*UNG; //图的定义
costAdj B,L;
void pr(int i)//选择城市
void pri()//输出城市
unDiGraph *CreateCostG()//构造带权(费用)图 返回首地址G:
unDiGraph *CreateTimeG()//构造带权(时间)图 返回首地址G:
unDiGraph *CreateFlyG()//飞机的相关信息
void Floyed(unDiGraph *D,unDiGraph *M) //Floyed函数 求任意两点的最短路径:
:
void prn_pass(int i,int j) //为了求从i到j的最短路径,只需要调用如下的过程
void time()//求最少时间路径。。
void money()//求最少花费路径
void administrator()//管理员功能
void main()//main函数
4.2 系统子程序详细设计
4.2.1 求最小路径
Void ShortPath_DIJ(AMGraph G, int v0,PathMatrix P, ShortpathTable D)
{
For(v = 0;v G.vexnum;++v)
{
Final[v] = FALSE;
D[v] = G.arce[v0][v];
For( w
您可能关注的文档
- 党章党规党纪题库(判断题150题).doc
- 党章党规知识100问.doc
- 土建施工全工艺流程图解.ppt
- 党的组织原则和组织制度.pptx
- 党章基本知识测试题(答案版).doc
- 党章党规网络测试答案.docx
- 土木工程定额原理.ppt
- 土木工程制图组合体答案.pptx
- 党规知识测试题2(普通党员).doc
- 党课结业考试复习内容.doc
- 某某单位2024年党建工作总结及2025年工作计划.doc
- 某某市发改委关于2024年度落实党风廉政建设工作责任制情况的报告.doc
- 某某局2024年全面从严治党和党风廉政建设工作总结.doc
- 某某区财政局2024年法治政府建设总结及2025年工作谋划.doc
- 2024年党管武装工作述职报告2篇.doc
- 2024年度国企党委书记抓基层党建工作述职报告3篇.doc
- 公司党委书记2024年述职述廉报告.docx
- 2024年度乡镇党委领导班子民主生活会(四个带头)对照检查材料.doc
- 市医疗保障局关于2024年法治政府建设工作情况的报告.docx
- 市民政局党组2024年巡察整改工作情况报告.docx
文档评论(0)