1 题目介绍

1.1 问题描述

出于不同目的的旅客对交通工具和交通路径有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个交通咨询系统程序,为旅客提供最优决策的交通咨询。

1.2 需求分析提供对城市信息进行编辑的功能,包括交通信息的增加,删除,修改。

城市之间有两种交通工具:火车和飞机。

提供两种最优决策 : 最快到达或最省钱到达。全程只考虑一种交通工具。

咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具 , 输出信息 : 最快需要多长时间才能到达或者最少需要多少旅费才能到达。

2 系统功能分析

2.1 概要分析

交通咨询系统包括交通信息的查询,交通信息的增加与修改,最省时间与最省钱的路线的生成。

2.2 功能结构分析

为了实现交通咨询系统的作用,系统包含功能如图所示。

3 数据结构设计

3.1 抽象数据类型定义typedefstructunDiGraph

{

intnumVerts;//结点

costAdj cost;//邻接矩阵

}unDiGraph,*UNG;

基本操作:

unDiGraph*CreateCostG()

操作结果:构造带权(费用)图。

unDiGraph*CreateTimeG()

操作结果:构造带权(时间)图。

构造飞机带权(费用)图。

PathMat*Floyed(unDiGraph*D)

操作结果:Floyed函数 求任意两点的最短路径。

3.2 预存数据结构

为了便于系统测试使用,在系统初始化时便存入了预留的数据。

3.2.1 预存城市信息及编号

1.成都

2.兰州

3.石家庄

4.郑州

5.武汉

6.贵阳

3.2.2预存交通信息

成都与郑州之间的火车行程的时间为2,费用为4。

成都与兰州之间的火车行程的时间为3,费用为5。

成都与武汉之间的火车行程的时间为1,费用为3。

武汉与郑州之间的火车行程的时间为1,费用为2。

兰州与武汉之间的火车行程的时间为3,费用为6。

兰州与石家庄之间的火车行程的时间为1,费用为3。

武汉与贵阳之间的火车行程的时间为5,费用为2。

贵阳与石家庄之间的火车行程的时间为2,费用为4。

贵阳与兰州之间的火车行程的时间为4,费用为1。

成都与武汉之间的飞机行程的时间为3,费用为3。

成都与兰州之间的飞机行程的时间为1,费用为1。

兰州与石家庄之间的飞机行程的时间为2,费用为5。

兰州与贵阳之间的飞机行程的时间为4,费用为2。

石家庄与贵阳之间的飞机行程的时间为3,费用为1。

武汉与贵阳之间的飞机行程的时间为2,费用为3。

武汉与石家庄之间的飞机行程的时间为3,费用为4。

4 功能模块设计

实现全国交通咨询模拟系统的开发,采用图结构类型存储城市的信息。其中,各城市间的邻接关系用图的邻接矩阵类型存储;城市信息用结构体数组存储,其中每个数组元素是一个结构体变量,包含时间和费用三个分量;图的顶点的个数和边的个数由变量费用、时间大小表示,它们是整型数据。

4.1 主要功能模块设计

全国交通咨询模拟系统由4个功能模块组成:添加城市、删除程序、采用火车出行、采用飞机出行

下面给出功能模块图,如图所示。

4.2 主要函数调用关系图

ADT内基本操作函数之间的函数调用关系图,如图所示。

4.3 费洛伊德算法求最小路径初始化:D[u,v]=A[u,v]

For k:=1 to n

For i:=1 to n

For j:=1 to n

If D[i,j]>D[i,k]+D[k,j] Then

D[i,j]:=D[i,k]+D[k,j];

算法结束:D即为所有点对的最短路径矩阵

5 调试与运行结果

5.1 主界面设计

为了实现全国交通咨询模拟系统,需要设计一个含有多菜单项的主控菜单子程序,以链接系统中各个子项目的调用,为了方便用户使用本系统,本系统主控菜单的运行界面如图所示。

5.2 运行结果及分析

交通资讯系统调试成功后在本地运行结果如下:

查看城市

选择最短时间路线的两种方式

选择以火车的方式出行

坐火车从石家庄到贵阳的最短时间路线与所花费的金额

从成都到贵阳的最少花费与时间

管理员程序

增添新城市 沧州

增添石家庄到沧州的火车费用

增添石家庄到沧州的火车时间

坐火车从石家庄到沧州的最短时间

店铺咨询系统c语言,课内资源相关推荐

  1. C语言编程求解圆盘的汉诺塔,课内资源 - 基于80x86汇编的汉诺塔

    一.软件背景介绍 我们今天要陈述的应用叫做汉诺塔,大家可能小时候都接触过类似于鲁班锁,九连环的益智玩具,我们要说的汉诺塔其实也可以说是益智玩具的一种. 下面我们具体介绍一下汉诺塔.汉诺塔有三根杆子A, ...

  2. java实现一元多项式减法,课内资源 - 基于C语言实现的一元多项式的计算

    一.概述 通过C语言使用链式存储结构实现一元多项式加法.减法和乘法的运算.按指数降序排列. 二.需求分析 建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式 ...

  3. devccp中c语言输入二维数组,课内资源

    1 概述1.1 项目简介本次实训项目是做一个飞机大战的游戏,应用MFC编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是MFC编程中的一些函数.链表思 ...

  4. c语言外卖程序,课内资源 - 基于C语言的外卖派单模拟系统

    一.课题任务概述 你运行一家外卖快递服务店,负责一个区域内的外卖订单接收和餐食快递.你有一笔启动资金,可以招募外卖骑手帮你送餐,来赚取快递费.但你也会面临风险,本区域的订单你都有义务接收,不能拒绝,若 ...

  5. 用c语言写扫雷游戏倒计时代码,课内资源 - 基于VS2013实现的扫雷小游戏

    1.任务概述 1.1 系统总体目标 本项目的目的在于开发一个扫雷软件,该软件面向游戏玩家用户,具有进行扫雷游戏的功能.游戏玩家将使用系统中的如下功能: 进行游戏 使用自定义游戏规格功能 使用计时器功能 ...

  6. 餐厅管理程序c语言源代码,课内资源 - 基于C++的餐厅管理程序的设计与实现

    摘 要 随着计算机应用技术的快速发展和日益普及,网络也遍及到我们生活的每个角落,为我们的学习和工作带来极大的方便.很多人都使用过传统的文字,纸张管理手段,与之不同的另外一种管理方式就是利用电脑程序管理 ...

  7. c语言文字冒险类游戏,课内资源 - 基于C语言和easyx实现的巧虎划船大冒险游戏...

    1 需求分析 1.1 功能需求 游戏性:通过键盘方向键的←.→.↑.↓来控制巧虎(船)的移动,躲避暗礁,碰撞宝物(特殊宝物),来增加积分,在倒计时结束前(到达终点前)争取得到更多分数.为提高可玩性,宝 ...

  8. c语言全民飞机游戏代码,课内资源 - 基于VC++和OpenCV实现的全民飞机大战游戏

    摘要功能:利用C++语言完成了一个小游戏项目-全民飞机大战,该游戏首先能够给用户提供注册,登录功能:提供了菜单栏及两种游戏模式,一种是无尽模式,另一种是一般模式:一般模式中用户通过控制玩家飞机攻击敌方 ...

  9. 数学金字塔C语言原函数,课内资源 - 基于C语言实现的金字塔问题(Pyramid Problem)...

    1 开发软件说明 Dev C++是一个 Windows 下的C 和C++程序的集成开发环境,是一款自由软件,遵守GPL 许可协议分发源代码.它使用MingW32/GCC 编译器,遵循 C/C++ 11 ...

最新文章

  1. LTE PUCCH Format1
  2. Ubuntu配置上位机Blackfin开发环境手记
  3. Windows 技术篇-减少对视频相关服务的cpu分配,减少cpu占用率
  4. 删除链表重复节点 python_java删除链表中重复的节点(保留一个节点)
  5. python 乘法运算定律_计算机组成原理(上)资料
  6. 【内含福利】七牛云线下专场活动免费报名
  7. CentOs基础操作指令(时间日期、搜索查找)
  8. CentOS 6.5安装配置Nginx
  9. 人工智能各层思维导图
  10. 金蝶K3CLOUD7.2内部培训PPT下载
  11. 苹果Mac OS X 10.6 Snow Leopard雪豹操作系统BT种子(.torrent)下载,6.13G个人版和Sever服务器版
  12. 哪个手机浏览器可以倍速_手机四款浏览器APP的比较
  13. qq说说时间轴php实现,QQ说说时间 qq说说时间轴
  14. 一个区块链美女小白的蜕变——我庆幸自己能生活在这个高速时代!
  15. Matplotlib绘制图片——膨胀算法
  16. linux+格式化磁盘格式化,Linux下的磁盘格式化
  17. SeleniumLibrary4.5.0 关键字详解(五)
  18. P4995 跳跳! java 洛谷
  19. CXXNET 安装教程
  20. Myeclipse下载github上项目到本地(图解)

热门文章

  1. 数组正遍历,数组倒遍历
  2. MySQL5.7.x 安装 Linux7环境
  3. IDEA 断点调试高级玩法 |debug高手必看!
  4. RabbitMQ 集群搭建_02_rpm版本(linux环境)
  5. win10 下安装、配置、启动mysql5.7
  6. python3-pandas 缺失数据的处理
  7. iphone字体_iPhone 适合老人盘吗?
  8. full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序
  9. Qt中QMap删除元素的简单使用
  10. BugkuCTF-Crypto题你喜欢下棋吗