数据结构课程设计全国铁路交通咨询模拟

  • 格式:doc
  • 大小:1.12 MB
  • 文档页数:26

下载文档原格式

  / 26
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库课程设计

—全国铁路咨询系统

目录

一.需求分析****************************************** 3 二.概要设计****************************************** 6 三.储存结构设计************************************** 8 四.详细设计****************************************** 11 五.用户手册****************************************** 17 六.测试数据****************************************** 18 七.心得体会****************************************** 26

一、需求分析

1、问题描述

由于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省。编制一个全国城市间的交通咨询程序,为旅客提供两种最优决策的交通咨询。

根据铁路的特征,数据的储存需要使用图的结构。每个城市之间有不同的车次,每个车次的始发站、路过车站和终点站都不一样,所以两个城市之间就有指向明确的边,是一个有向图;而由于车次的不一样,所以发车时间,到站时间,价格等也会不一样;所以每两个点之间不止两条边,可能存在不同的多条边。

2、功能需求

铁路咨询的对象是用户,所以,需要一个对用户友好的功能菜单,根据用户可能需要的实际需求,功能菜单中可能会包括以下要点:

1:显示所有车站信息

2: 显示所有车次信息(包括时刻表)

3: 查询车站信息

4: 查询两个城市之间的铁路信息

5: 增加或删除车站

6: 增加或删除铁路信息

7: 增加、删除或修改时刻表、距离和价格

8:寻找两城市间最省钱的一条路径

9:寻找两城市间最省时间的一条路径

10:寻找两城市间所有路径(按费用从低到高排序输出)

11:寻找两城市间所有路径(按所用时间从少到多排序输出)

12:退出咨询系统

图的初始数据从文本中读入,文本是老师给的标准数据。

3、输入及输出格式

(1):输入格式:

A:图的初始数据输入

数据的初始化是需要从文本中读入的,所以不需要有专门的文本输入函数,只需要给出读文本的函数input();使用input()函数从测试数据的三个文本中读入数据,然后使用创建图的函数CreateGraph()创建起整个图。初始数据的读入,分别是从station.txt 中读入每个城市站点的名称的城市编号,从iinformation.txt中读入每个城市间的铁路信息,从railway.txt中读入所有铁路线的信息。

如:

以下从station.txt中节选部分

0 北京

1 广州

2 石家庄

3 郑州

4 武汉

5 长沙

以下从information.txt中节选部分

出发城市编号到达城市编号车次里程费用出发时刻到达时刻

0 2 1000 287 62.5 0000 0246

0 2 1016 287 72 0060 0275

0 8 1001 137 23.5 0000 0117

0 8 1017 137 28.5 0060 0163

0 13 1002 1199 156.5 0000 1028

1 6 1008 1257 162.5 0000 1077

以下从railway.txt中节选部分

各条铁路线上城市编号(此行可去掉)

京广线 0 2 3 4 5 6 1

京九线 0 13 14 12

京沪线 0 8 9 10 11 7

陇海线 18 10 3 20 24 19

B:用户要求输入

用户在使用本程序时,会要求用户输入各种数据,如城市编号id、抉择选项y/n等;用户只需要按照程序菜单的要求输入即可。如城市编号id就是初始化数据(文本数据)中每个城市就有的编号,用户在不知道城市编号之前先查看一下城市信息就可以清楚明了的知道城市id了。

(2):输出格式

在系统的管理下,为了用户的查询方便,需要有多重输出方式。如每条铁路线上信息的输出。这里面就包括了,在每条铁路上所有车次信息,每个车次始发站信息、过站信息和终点站信息。

样例如下:

兰新线中有以下车次:

1005次列车运行情况:

出发城市到达城市车次距离(km) 出发时间到达时间费用(元)

兰州酒泉 1005 748 0:0 10:41 102

酒泉乌鲁木齐 1005 797 10:51 22:14 152.5

乌鲁木齐阿拉山口 1005 477 22:24 5:13 64.5

1013次列车运行情况:

出发城市到达城市车次距离(km) 出发时间到达时间费用(元)

阿拉山口乌鲁木齐 1013 477 0: 0 6:49 64.5

乌鲁木齐酒泉 1013 797 6:59 18:22 152.5

酒泉兰州 1013 748 18:32 5:13 102

对于每个城市信息的输出,只需要输出经过每个城市的铁路新路即可,当然必须得输出城市站点的id,方便用户的查询和管理

样例如下:

城市编号城市名称过站铁路线

0 北京京广线京九线京沪线

1 广州京广线

2 石家庄京广线

3 郑州京广线陇海线

4 武汉京广线

5 长沙京广线

6 株洲京广线沪昆线

7 上海京沪线沪昆线