火车票售票系统-软件工程设计报告

更新时间:2024-03-07 00:33:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

成绩:

软件工程课程设计说明书

专 业_ 网 络 工 程 班 级 _ _

姓 名 _

学 号 _ 指导老师 _

完成日期 2014-09-18

火车票售票系统

摘要

火车站是目前客流量最大的运输工具。对于售票如此大的工作量,完全靠人工是不可能达到高效水平的,因此,开始思考开发提高售票效率以及劳力的计算机售票系统。售票系统的核心是数据库技术,利用数据库将整个火车站的票务情况存入计算机,再配置上用户接口,基本实现了查询、售票、退票、订票、改签等功能,一定程度上提高了售票效率。

针对火车站的售票实际情况,按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析、总体设计、详细设计,以及编码实现和调试等步骤设计开发了火车站网上订票系统。并运用数据流图和数据字典、E-R图和数据库逻辑结构、层次图、系统流程图、以及程序流程图,对该系统的数据需求、数据库、系统软件结构、系统流程、以及处理过程等进行分析和设计。

关键词:信息管理、售票、数据库 、用户接口。

目录

第一章 前言 ............................................. 5

1.1项目开发的必要性 .................................. 5 1.2项目功能的概述 .................................... 5 第2章 软件开发环境 ..................................... 6

2.1 软件开发环境 ...................................... 6 2.2 软件性能需求 ...................................... 6 第3章 需求分析 ......................................... 6

3.1可行性研究 ........................................ 6 3.1.1经济可行性 .................................... 6 3.1.2技术可行性 .................................... 6 3.1.3操作可行性 .................................... 7 3.2需求分析 .......................................... 7 3.2.1功能需求 ...................................... 7 3.2.2数据需求 ...................................... 8 3.2.3性能需求 ...................................... 8 3.2.4约束与限制 .................................... 9 第4章 总体设计 .......................................... 9

4.1 系统概要 ......................................... 9 4.2 系统结构组成 .................................... 10 第5章 详细设计 ........................................ 11

5.1 数据库设计 ...................................... 11

5.1.1数据库介绍 ................................. 11 5.1.2数据表设计 ................................... 12 5.1.3数据表的应用 ................................. 14 5.2 模块设计 ......................................... 14 5.2.1登录/注册模块 ................................ 15 5.2.2查询模块 ..................................... 16 5.2.3售票模块 ..................................... 18 5.2.4退票模块 ..................................... 20 5.2.5 改签模块 .................................... 22 5.2.6 修改车次模块 ................................ 24 5.2.7 统计信息模块 ................................ 25

第一章 前言

1.1项目开发的必要性

火车是目前客流量最大的运输工具,未来很长一段时间中也会延续这种现状。传统的人工售票成本大,出错率高等缺点,已是跟不上现代人的生活节奏。而软件相对于人工来说,它有更高处理速度,出错率也将很低,当然,其成本也会大大降低。如今,对火车的要求在于提高售票效率,火车售票也渐渐进入自动化:自动化售票,快捷方便的查询、改签、退票,智能化的订票。在曾经看来是复杂繁琐的工作,变得简单快速人性化。通过提高售票效率,还可以提高火车运输甚至整个运输业的运行效率。

火车站售票系统的主要作用是通过计算机实现票务信息的统一管理,来提高工作效率,使售票员售票和乘客购票更加方便高效。实现计算机管理的当然少不了数据库技术。我们可以利用数据库将整个火车站的票务情况存入计算机,再配置上界面友好功能完善的用户接口,以满足用户需求。一个火车站售票信息管理系统应达到的目标是提供及时、准确的信息服务,加快信息检索的效率,实况灵活的查询,减轻管理人员制作报表和统计分析的负担,且系统规模不太大但又要保证支持日常工作的要求,以便系统应易于扩充,提高管理水平。

1.2项目功能的概述

本系统主要用于火车票的销售,提供了以下几个子功能:用户登录和注册、火车票订购、火车票信息查询、订票查询、售票、取票方式、改签、退票以及后台方面的火车班次信发布、取消火车班次、订票生成、取票号生成等后台功能。

火车站售票系统将由四部分组成:网上订票客户程序,售票员系统,系统管理员系统以及置于服务器的数据库服务器。

第2章 软件开发环境

2.1 软件开发环境

开发工具:Visual C++6.0 使用的数据库:Server 2008 系统开发语言:C++ 开发环境:Win 7

2.2 软件性能需求

本系统对电脑配置要求不高,一般中低端配置就行,由于开发环境是Win 7,其他操作系统运行此系统的稳定性还未知。

第3章 需求分析

3.1可行性研究

该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行性三方面进行分析。

3.1.1经济可行性

本系统其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。

3.1.2技术可行性

系统实现依靠我相对熟悉的c++语言和SQL Server2008数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。所以,从技术角度来看,

该系统可行。

3.1.3操作可行性

系统采用菜单式,实现用户与数据库的交互,界面设计时将尽量使系统界面简单易操作,充分考虑使用人员的习惯,使得操作简单,数据录入简单、迅速、规范、可靠;统计、计算准确;制表灵活;适应力强。因此,操作方面的可行性也能满足。

3.2需求分析

需求分析是软件设计的一个重要的环节。本阶段对售票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。用户对系统的需求我们从以下几方面进行分析。

3.2.1功能需求

本火车售票系统应该具备如下功能:

1、查询模块:分为对车次信息的查询和客户对已订车票信息的查询。要求:

1)对车次的查询,可以按照发车车次进行查询;

2)车次信息包括:火车列次、出发地、目的地、发车日期、开出时刻、票价。

3)座位类型设定。

4)车次信息只允许用户查询,不能修改。

2、售票模块:通过查询系统,根据客户的需求找到满意的车次,再输入个人信息后直接通过网上售票确定已预订选中的车票。要求:

售票记录应包括:会员名、车号、发车日期、订购票数、总价。

3、退票模块:可退票,通过查询系统,可以根据客户的名字找到客户的订票信息,通过退票模块退去已购车票。

4、改签模块:当行程计划有变是,可改签,通过查询系统,可以根据客户的名字找到客户的订票信息,通过改签模块改签已购车票。

5、车次修改:提供车次信息、票价修改、站点修改、增加车次,减少车次、车次的临时调度和临时路线更改等操作。

6、统计信息:将要统计的车次号输进到统计界面,根据车次的售票情况作出销售额、客流情况统计表。

3.2.2数据需求

1、数据录入和处理的准确性

数据的输入是否正确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而得不到想要的结果。数据的输入来源是手工输入。所以系统地界面要让用户容易使用,如果用户出现误操作,系统能简单明了的给出中文提示。

2、数据的一致性和完整性

由于系统的数据是共享的,在不同的代售点中,车次信息是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要求系统能保证数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。

对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据,并给出出错提示。

3、数据的共享与独立性

整个售票系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使不同权限的用户都可以正常进行操作。

3.2.3性能需求

为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。

1.准确性和及时性

系统处理的准确性和及时性是系统的必要性能。系统应能及时而且准确的根据用户权限及所输入的信息做出响应。由于本系统的查询功能对于整个系统的功

能和性能完成举足轻重。作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。

2.易用性

本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。

此外,对服务器的要求,至少能够满足当地售票人员同时访问。对客户端,在线使用的电脑中安装即可使用,使用本系统功能时,电脑配置一般情况下,响应速度2s左右,

3.2.4约束与限制

客户下订单提交后需在半小时内进行确认信息,并且做出相应的决定,如:退票、换票、付款等。售票员在开车前半小时不准售票,在开车前2小时不准退票。改签的天数的范围为1天,一天内只能改签一次。

关于操作权限,客户应该只有查询、订票、改签、退票的权限,售票员应该只有售票和查询票务信息的权限,管理员应该给予特殊权限,使之能对票务信息查询、修改。

第4章 总体设计

4.1 系统概要

本火车站售票系统是根据需求分析开发的原型系统,目的是为了火车站工作人员顺利快速完成每次售票工作,以致火车运行畅通。该系统在开发各个阶段,都突出现代软件设计的新思想、新技术的研究与应用及其有效性和实用性的证实。

系统使用的用户主要有:客户、售票员、系统管理员。都是在客服端界面上进行操作,并不需要了解服务器具体情况。只要用户的计算机上安装本单机版软

件便可方便的使用本系统。

4.2 系统结构组成

系统的软件系统总体分为五部分:登录、售票、退票、改签、用户管理。: 登录模块:验证用户合法性,登录后设定用户权限; 售票模块:提供查询和售票操作;

退票模块:提供查询、核对信息和退票操作; 改签模块:提供查询、核对信息和改签操作;

车次修改:提供车次信息、票价修改、站点修改、增加车次,减少车次、车次的临时调度和临时路线更改等操作;

统计信息:将要统计的车次号输进到统计界面,根据车次的售票情况作出销售额、客流情况统计表。 总体数据流图如下图:

提供所需信息 查询数据库 数据库 购票者 售票系统 反馈给购票者 显示查询结果

总体结构图下图:

数据库 服务器 客服端(客户) 客服端(售票员) 客服端(管理员) 第5章 详细设计

5.1 数据库设计

5.1.1数据库介绍

系统基于Visual C++ 6.0平台开发,使用了 Server2008数据库。Server 2008 功能强大,方便系统管理员组织和共享的数据库,方便系统管理员工作组作出更好的决策。

5.1.2数据表设计

下面具体创建每一个表:

表1 管理员信息 字段名称 管理员ID 字段类型 Varchar(10) 管理员姓名 Varchar(50) 管理员密码 Varchar(16) 表2 售票员 字段名称 售票员ID 字段类型 Varchar(10) 售票员姓名 Varchar(50) 售票员密码 Varchar(16) 证件号码 联系地址 联系电话 Varchar(20) Varchar(50) Varchar(20) 表3 客户表 字段名称 客户ID 客户姓名 客户密码 字段类型 Varchar(10) Varchar(50) Varchar(16)

主键 是 否 否 外键 否 否 否 是否为空 否 否 否 默认值 001 Admin 无 主键 是 否 否 否 否 否 外键 否 否 否 否 否 否 是否为空 否 否 否 否 否 否 默认值 100 无 无 无 无 无 主键 是 否 否 外键 否 否 否 是否为空 否 否 否 默认值 10000 无 无

证件号码 真实姓名 联系地址 邮政编码 联系电话 Varchar(20) Varchar(50) Varchar(100) Varchar(10) Varchar(20) 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 无 无 无 无 无 表4 订单信息 字段名称 订单号 乘车日期 车次 始发站 终点站 席别 票种 张数 备注 字段类型 Varchar(10) Datetime Varchar(10) Varchar(10) Varchar(10) Varchar(10) Varchar(10) Varchar(5) 否 Varchar(100) 表5 列车信息表 字段名称 始发站 车次 字段类型 Varchar(10) Varchar(10)

主键 是 否 否 否 否 否 否 外键 否 否 是 否 否 否 否 否 否 是否为空 否 是 是 是 是 是 是 是 是 默认值 10000 无 无 无 无 无 无 1 无 否 主键 否 是 外键 否 否 是否为空 是 否 默认信息 无 无

终点站 发车时间 停靠站 到站时间 票种 Varchar(10) Datetime Varchar(10) Datetime Varchar(10) 否 否 否 否 否 否 否 否 否 否 是 是 是 是 是 无 无 无 无 无 表6 火车票表 字段名称 票种 车次 张数 字段类型 Varchar(10) Varchar(10) Varchar(10) 否 否 是 1 否 是 否 无 主键 是 外键 否 是否为空 否 默认信息 无 5.1.3数据表的应用

当客户端登录时,后台服务器查找数据库,匹配相应的用户名和密码,若未找到,则返回错误信息。登录订票系统,用到售票员表,通过每一个售票员来操作每一个终端,通过对客户需求(即:客户买票的要求填写订单信息表,包括火车票表)。若要查询统计功能则需要以管理员身份登录,用到管理员信息表,管理员可以修改列车时刻表。

5.2 模块设计

本火车售票下系统主要有登录/注册、查询、售票、退票、改签、修改车次、统计信息这些功能,设计时按这些功能设计模块就可以了。其详细功能图如下:

火车票售票系统 客户 售票员 用户管理

查 询 5.2.1登录/注册模块 购票 退票 改签 查询 售票 退票 改签 统计信息 修改车次 本火车售票下系统有客户、售票员、系统管理员三种用户,其中客户可以自己注册账户登录,而售票员和系统管理员则直接由相关部门授权给定账号密码登录。

其程序流程图如下所示: 提示输入错误 注册 输入登录信息 否 登录是否 是 验证输入 格式正确 调用函数 提示账号或密码错误 格式错误 验证输入 格式正确 调用函数 匹配失败 到数据库中匹配 匹配成功 登录成功 客户登录/注册模块流程图

存储到数据库中 是 登录是否 否

输入登录信息 是 验证输入 格式正确 匹配失败 到数据库中匹配 匹配成功 登录成功

提示账号或密码错误 调用函数 格式错误 提示输入错误 售票员/管理员登录模块流程图

5.2.2查询模块

客户与售票员成功登录后,都具有查询车票信息的权限,其享有的操作是一样的。

查询可分为按车次查询与站点查询,客户或售票员通过输入待查询车次或者站点查询车票的相关信息,包括票价,时刻,剩余票数等信息。若用户输入的车次或者站点错误,系统会提示输入错误。

能够对客户要求的大部分查询类型都能够查询,每个查询功能键都一目了然,能快速精确的显示要查询的信息。要求单次的查询系统的处理时间在2秒以内。

查询功能时序图如下图:

客服或售票员

查询功能时序图 输入项目:车次号或者站名。

输出项目:车次号、站点、发车时间、到站时间、剩余票数、车票价格、旅程历时。

该模块通过访问数据库查询车票信息,提取客户或售票员输入的车次或者站名,封装成SELECT语句,到数据库中查询车票信息,将信息返回到用户界面。若输入错误,弹出错误提示框。

其程序流程图如下图:

输入数据 格式错误 验证输入 格式正确 无车票 到数据库中查询 有车票 输出到界面 查询功能流程图

结束查询 输出“车票售完” 调用函数 提示输入错误 返回查询界面 5.2.3售票模块

客户成功登录后,享有购票服务;售票员成功登录后,享有售票权限。购票与售票实质上是同一中操作,只不过是操作主体不同,下面对售票员的售票模块进行说明。

根据客户的需求如发车日期、发车时间、车票类型(学生票、军人票?)等,

客售票员查询相关的车票信息,选择客户所需要的车次,下订单,然后结算。单次售票任务在25秒之内完成,系统的反应时间在3秒之内;保证多台机器同时运行该系统不会有过高延时。

售票时序图如下图所示:

售票控制器数据库模块售票界面 : 售票员1: 输入购票信息2: 购票信息3: 修改4: 返回修改成功5: 提示车票已售出6: 提示

售票功能时序图

输入项目: 车次、站点、日期。

输出项目:车票信息、剩余票数。

售票员输入客户预购车票的相关信息,调用查询模块,到数据库中查询是否有票,若有,则选择需要的票数和车次,并将卖出票数写入数据库,数据库中对应车次剩余票数刷新,储存,售票员选择打印火车票给客户;若无则提示车票已售完,回到输入信息界面,重复上边的算法流程。

售票算法流程图如下图:

输入车票信息 无车票 查询 有车票 选择票数与车 次 票数写会数据库 更新数据库 点击打印 售票算法流程图

提示并返回 5.2.4退票模块

客户与售票员登录后,均有退票的权限,下面对售票员的退票情景进行分析。

处理客户由于某种情况需要退回车票的情况,客户要在车站指定的时间内进行退票。超过指定时间,只能改签,不能退票。系统及时的记录下所退回的车票,更新数据库。

退票时序图如下图所示:

本文来源:https://www.bwwdw.com/article/nvra.html

Top