店铺咨询系统c语言,课内资源

1 题目介绍

1.1 问题描述

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

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

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

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

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

2 系统功能分析

2.1 概要分析

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

2.2 功能结构分析

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

3d9c7062c047274238c9c8d6722f9b6e.png

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个功能模块组成:添加城市、删除程序、采用火车出行、采用飞机出行

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

3d9c7062c047274238c9c8d6722f9b6e.png

4.2 主要函数调用关系图

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

5683bdb05d40bc77dd83cb3c33cd33c2.png

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 主界面设计

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

44bf0aee2a5f1693a123f04269144971.png

5.2 运行结果及分析

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

查看城市

7ffd53d434c176652a47f2eec56ab874.png

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

f01d1898194b9865898f49876cb25283.png

选择以火车的方式出行

78b6b4ee8da490551c49fee6d18cf6fe.png

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

6ff76d331a630ebe7f6923cd30c4a4ff.png

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

6dc43cea37e13337c936a23eb0f445a6.png

管理员程序

a9586b2eb619c88129bb1eb3e9594607.png

增添新城市 沧州

c0adbf9e6d47a01abca8caadfefc1f0c.png

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

a1dd00e6bbfa2bdee54fbafced2b2c95.png

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

e64fbd05aca522478266fb3f08f7ce39.png

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

1bc242b329611fb92567ec0907d0f17b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

f分布表完整图_【教育统计答疑】如何理解正态分布、均值分布、^2分布、t分布和F分布...

许多教育统计的初学者都表示这几个分布感到学起来非常吃力,结合最近上课的体会以及答疑的情况,觉得很有必要在这里简单地对这部分内容进行澄清和梳理,以助理解。首先,“为什么要学习这几个分布”可能是许多人纠结的问题&#xff0…

新颖的c语言题目,新颖版c语言经典习题100例(全面面)

新颖版c语言经典习题100例(全面面) (66页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!19.90 积分实用文档C语言习题100例(最新整理版)习题目录:(按住Ctrl点击可以快速跳转到…

c语言jt808协议库,平台如何应答——关于JT/T808协议

前两篇也说明了一些应答的相关内容,对于刚接触的开发者来说恐怕还是不太容易理解,这里专门列举一个篇幅来讲解如何针对终端设备上报的信息进行应答。严格来讲,如果不应答,终端设备会判别为服务平台断开连接,就会重复发…

熊猫的python小课账号_学习python中的pandas有没有好的教程推荐?

之前好多人私信我python数据分析怎么快速入门,我在这里直接介绍一下自己的心得经验吧。 要学习pandas,我并不建议看大量的教程,等看完教程,天都黑了,一觉醒来热情都凉了。 我的建议是,首先放平心态&#xf…

ubuntu nfs linux,Ubuntu的NFS功能配置

环境:Ubuntu 10.04步骤:1.sudo apt-get install portmap2.sudo apt-get install nfs-kernel-server注意:第2步我安装失败,换源后仍然如此,最后我在新立得里面搜索到nfs-kernel-server,安装成功3.在更目录下新建共享目录:mkdir /forlinux4.gedit /etc/exprots,在后面添加/forlin…

一个android工程生成两个aar,android studio生成aar包并在其他工程引用aar包(示例代码)...

1.aar包是android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件2.生成aar包步骤:①.用android studio打开一个工程,然后新建一个Module&#…

android 尺寸变化动画,Android ScaleAnimation类:尺寸变化动画类

ScaleAnimation类是Android系统中的尺寸变化动画类,用于控制View对象的尺寸变化,该类继承于Animation类。 ScaleAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是ScaleAnimation构造方法。【基本语法】public ScaleAnimat…

javascript 本地对象和内置对象_详解 JavaScript 面向对象

1. 概述JavaScript面向对象比较难理解的点是类的继承。不管是es5写法还是es6写法,JavaScript继承的本质是原型链。具体可看我的上一篇文章:田浩:详解原型、原型链、构造函、实例、new​zhuanlan.zhihu.com因为es6有专门的语法,写法…

工作汇报ppt案例_【赠书】开工大吉!今年一定要干过写PPT的!

不知不觉,春节就过去了,新年开工,朋友圈里晒满了开工红包,领了开工礼就意味着真正新的一年开始了。虽然假期的慵懒安逸留下了倦怠的后遗症,但状态依旧切换到工作模式,毕竟每年都希望能比过去更进一步&#…

postscript打印机什么意思_涨知识|你不知道的关于打印机的打印过程和打印机驱动的那些事...

以前一直以为打印很简单,不就是编辑好文件按个“打印”就行了?但其实打印过程可以复杂到你分分钟“怀疑人生”。你以为的打印过程可能是这样的 ↓。我们看到的打印过程然而,真正的打印过程是这样的 ↓。实际上的打印过程打印机打印一页文件或…

python dicom图像分割_python读取DICOM头文件的实例

这篇文章主要介绍了关于python 读取DICOM头文件的实例,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 用dicompyler软件打开dicom图像,头文件如图所示:当然也可以直接读取: ds dicom.read_…

索尼android电视图片轮播,电视投屏居然还能这样玩?

原标题:电视投屏居然还能这样玩?现如今,投屏几乎成为大家日常生活必不可少的一种观影方式,通过电视投屏可以带来更清晰的画面效果,成为追剧党以及各类球赛爱好者的不二之选。那么今天小智就以索尼电视为例,…

android 高并发弹幕,高并发实时直播弹幕研发实践

高并发实时直播弹幕研发实践直播间特点聊天室限制人数的原因应对万级以上的实时互动跨服务器是为了解决单一服务器接入数量限制、发布消息吞吐限制等问题;多进程并发则是为了充分利用多核CPU以及减小一个循环规模从而达到降低延迟的目的。云巴实时系统的设计云巴是基…

linux python3_在Linux上安装Python 3

在Linux上安装Python 3这份文档描述了如何在Ubuntu Linux机器上安装Python 3.6。 想要获取已安装的Python 3版本号,可以通过终端运行命令: $ python3 --version 如果您使用的是Ubuntu 16.10或更新,可以通过以下命令简单地安装Python 3.6: $ s…

android手机电话铃声设置,安卓手机铃声怎么设置

网上有很多安卓手机铃声的设置教程,说什么SD卡里建立这个那个的文件夹,那问题是怎么才能进到SD卡里去建立文件夹啊?手机里哪个选项里进去呢?这里小编告诉你,可以通过电脑连接数据线管理SD卡。下面介绍两种简单的设置安…

安装squid_「首席推荐」设置Squid转发代理或者正向代理

如果您正在阅读这篇文章,您可能会因为缺少与Squid相关的信息而感到沮丧,Squid是一种非常流行的转发代理。这些令人沮丧的事情包括:在小的软件修订之后出现的重大的可用性变化,对幕后发生的事情的误解,以及真正糟糕的文档。这是一个…

android区域截图app,【干货】最新App应用市场截图尺寸大全

今天给大家分享最新的干货,刚好碰上这段时间设计市场截图,所以给各位设计新人,分享本人整合的尺寸大全,希望对你们的设计之路有所帮助。一、IOS App Store尺寸尺寸(机型) 大小(px)3.5寸(iphone4/4s)…

2018python做图形界面哪个库简单_2018年常见的python编程开发库都有哪些类型

python编程开发可以说是目前比较热门的一项编程开发语言了,而今天我们就一起来了解一下,关于python编程都有哪些常见的python库可以使用。1、TensorFlow “TensorFlow是一个使用数据流图进行数值计算的开源软件库。图形节点表示数学运算,而图…

c++ socket线程池_java 网络编程,Socket编程

Java的网络编程主要涉及到的内容是Socket编程,那么什么是Socket呢?简单地说,Socket,套接字,就是两台主机之间逻辑连接的端点。TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应…

android签名忘记密码,修改Android签名证书keystore的密码、别名alias以及别名密码

之前在测试Eclipse ADT的Custom debug Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和1. 首先当然是先复制一份正式证书出来作为要修改为的临时调试证书。2. 修改keystore密码的命令(keytool为JDK带的命令行工具):keytoo…