软件工程程序设计火车售票系统Word下载.docx
《软件工程程序设计火车售票系统Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程程序设计火车售票系统Word下载.docx(30页珍藏版)》请在冰点文库上搜索。
目标……………………………………………………………………………………………7
开发系统已满足条件…………………………………………………………………………8
可行性研究相关办法…………………………………………………………………………8
技术方面的可行性………………………………………………………………………………8
火车站方面经济可行性………………………………………………………………………8
操作可行性…………………………………………………………………………………………9
法律方面可行性…………………………………………………………………………………9
可行性分析结论…………………………………………………………………………………9
需求分析…………………………………………………………………………………………………9
需求分析目的……………………………………………………………………………………9
参与需求分析人员……………………………………………………………………………9
系统需求概述……………………………………………………………………………………9
第四章总体设计…………………………………………………………………………………………………9
系统概要…………………………………………………………………………………………………10
系统组成以及结构…………………………………………………………………………………10
第五章数据库设计……………………………………………………………………………………………11
数据库介绍……………………………………………………………………………………………11
建立数据库准备工作……………………………………………………………………………11
数据表设计……………………………………………………………………………………………11
第六章具体实现………………………………………………………………………………………………13
详细设计概述…………………………………………………………………………………………13
面向售票员的详细设计…………………………………………………………………………14
查询……………………………………………………………………………………………………14
时序及I/O…………………………………………………………………………………14
算法实现……………………………………………………………………………………15
售票……………………………………………………………………………………………………16
时序及I/O……………………………………………………………………………………16
算法实现…………………………………………………………………………………….17
退票……………………………………………………………………………………………………18
时序及I/O……………………………………………………………………………………18
算法实现…………………………………………………………………………………….19
改签……………………………………………………………………………………………………20
时序及I/O……………………………………………………………………………………20
算法实现…………………………………………………………………………………….20
面向管理员的详细设计………………………………………………………………………….21
修改车次模块…………………………………………………………………………………….21
修改时序图……………………………………………………………………………….21
算法实现……………………………………………………………………………………22
统计信息模块……………………………………………………………………………………22
统计时序图…………………………………………………………………………………22
算法实现……………………………………………………………………………………23
结论………………………………………………………………………………………………………………………24
参考文献………………………………………………………………………………………………………………24
第1章前言
课题的来源
鉴于人工售票的工作量过于巨大,为了方便旅客以及售票工作人员,提高效率,也为了提高火车这种交通工具的整体效率,产生了面向此课题的研究。
现实意义
如摘要所说,火车是目前客流量最大的运输工具,未来很长一段时间中也会延续这种现状。
关键的在于售卖火车票,曾经的人工售票在现在看来,已是跟不上现代人的生活节奏。
人工售票,还有成本大,出错率高等缺点。
而软件相对于人工来说,因为它是借助物理方式,会有更高处理速度,出错率也将很低,当然,其成本也会大大降低。
在未来,对火车的要求也会在于提高售票效率,可以想象,将来的火车售票终会渐渐进入自动化:
自动化售票,快捷方便的查询、退票,智能化的订票。
不久的将来,在曾经看来是复杂繁琐的工作,会变得简单快速人性化。
再远大一点的目标,通过提高售票效率,也可以提高火车运输甚至整个运输业的运行效率。
研究内容及成果
系统实现了查询,售票,退票,票务管理,统计。
本系统各个功能模块示意图如.
技术都是慢慢进步的,本系统也就不可能完全达到需求标准,只能说基本实现了要求,一定程度上也提高了售票效率。
希望后来者能再接再厉,一起完善,努力实现完全自动化。
图系统详细功能模块(孙清茂,2011)
第2章软件开发环境
软件开发环境及性能要求
软件开发环境
开发工具:
VisualC++
使用的数据库:
Access2000
系统开发语言:
C++
开发环境:
WinXPSP3
软件运行性能需求
本系统对电脑配置要求不高,一般中低端配置就行,由于开发环境只是WinXPSP3,其他操作系统运行此系统的稳定性还未知。
一般配置的电脑,运行此系统的响应时间都在2s左右,能满足系统操作者要求。
开发系统配置如图
图开发本系统电脑配置(孙清茂,2011)
第3章方案论证
可行性分析
要求以及目标
要求
要求系统能够查询票务信息,售票(确定后能够打印车票),退票办理改签,管理员进行票务查询以及修改票务信息,统计已售票务信息并打印销售情况。
具体功能如图。
性能上,要求查询数据库时,系统能够迅速响应,并显示出来供操作者选择。
关于操作权限,售票员应该只有售票和查询票务信息的权限,管理员应该给予特殊权限,使之能对票务信息查询、修改。
目标
此系统的目标在于为售票员提供快速查询票务信息,并打印车票,或者进行退票改签等服务,方便售票员同时也方便旅客,给旅客带去准确快速的服务。
最终达到提高整体效率的水平。
另外,还可以减少人力资源,使一个窗口就可以进行查询、售票、退票、改签等旅客需要的基本功能。
与此同时,系统还向管理员提供了查询票务信息并可以修改票价、时间和车次站点等票务信息,统计售出票务情况并打印的功能。
开发系统已满足条件
开发需要的环境:
个人笔记本下进行,已安装VisualC++,Access2003数据库软件和其他开发需要用到的软件;
开发时间限制:
时间自由,无限制;
开发经费:
需要的资源完全自有,因此不需要经费;
开发人员:
孙清茂;
预计开发时间:
一个月;
预计系统使用寿命:
5年
有关法律法规:
开发完全靠自己,未抄袭任何已有软件,系统也没有违反相关法律法规规定,属于正规软件系统。
可行性研究相关办法
系统的可行性研究主要建立在问卷调查结果上,期间进行了网络问卷调查,实地问卷调查。
调查结果表明,本系统有其开发的必要性。
同时,本系统需要资源较少,人力能及,时间无限制。
所以该系统是可行的。
技术方面的可行性
虽然还是学生,但是经过两年半的学习,已经基本掌握面向对象程序设计,C++语言,图形学,软件工程导论,虽然数据库还没有系统学习,但是自学一些还是没有问题的,特别是可以用比较简单的Access2003据库,所以开发本系统的技术能力基本足够,同时还有指导老师的技术支持。
由上可知,开发本系统的技术方面是可行的。
火车站方面经济可行性
由于本系统是为了提高火车站售票效率,将会为他们带去成本降低的好处,系统开发完成火车站即可安装使用,同时系统开发完全有开发者自付,火车站只会得到利益,完全没有风险。
于是在经济上也是可行的。
操作可行性
界面设计时将尽量使系统界面简单易操作,充分考虑使用人员的习惯,使得操作简单,数据录入简单、迅速、规范、可靠;
统计、计算准确;
制表灵活;
适应力强。
由此可见,操作方面的可行性也能满足。
法律方面可行性
此方面已在满足条件中指明,此处不赘述。
可行性分析结论
由上综述,可见开发此系统确实有可行性。
需求分析
此系统需要满足两方面的需求,一是售票员,一是管理员。
需求分析目的
需求分析的目的在于详细、准确并全面的定义本售票系统的功能,以及用户需求,用以指导系统顺利地进行开发。
参与需求分析人员
由于系统是面向售票员、管理员和旅客(旅客对系统要求不是很高,可以忽略),所以需求分析需要包括售票员、管理员以及一些旅客的建议,还应有同行的一些建设性意见。
系统需求概述
所开发的火车站售票系统能够完成火车票的查询、出售等一系列工作,方便火车票的出售、管理以及简化工作的过程,同时也节约人力、物力和财力,更加完善火车票的出售。
系统提供给售票人员和管理人员使用,售票人员可以完成查询车票、售票、退票、改签等工作,管理员可以对整个系统进行管理(包括使用人员管理、数据库维护)。
第4章总体设计
系统概要
火车站售票系统是根据需求分析开发的原型系统,目的是为了火车站工作人员顺利快速完成每次售票工作,以致火车运行畅通。
该系统在开发各个阶段,都突出现代软件设计的新思想、新技术的研究与应用及其有效性和实用性的证实。
系统使用的用户主要有:
火车站售票员、系统管理员。
都是在客服端界面上进行操作,并不需要了解服务器具体情况。
只要用户的计算机上安装本单机版软件便可方便的使用本系统。
系统组成以及结构
系统的软件系统总体分为五部分:
登录、售票、退票、改签、用户管理。
:
登录模块:
验证用户合法性,登录后设定用户权限;
售票模块:
提供查询和售票操作;
退票模块:
提供查询、核对信息和退票操作;
改签模块:
提供查询、核对信息和改签操作;
用户管理:
提供用户信息的查询、修改、添加、删除等操作;
总体数据流图如图
图总体数据流图(孙清茂.2011)
总体结构图如图
图总体结构图(孙清茂.2011)
第5章数据库设计
数据库介绍
系统基于VisualC++平台开发,使用了简单操作的MicrosoftAccess2003数据库。
MicrosoftAccess2003您容易得到所需信息,并提供强大工具,可以帮助您组织和共享您的数据库,以便您和您的工作组能作出更好的决策。
建立数据库准备工作
列出需要建立数据表的对象:
车票,管理员,售票员,以及每个数据表中的内容。
数据表设计
下面具体创建每一个表:
车票信息表train:
车次TrainNo字符串(10),
起始站Start字符串(10),
终点站Terminal字符串(10),
发车时间Timing字符串(10),
里程Distance整型数,
日期Date字符串(10),
票种TicketType字符串(10),
票价Price整型数(10),
剩余票数Remain整型数(10),
车票数据表如图
图车票数据表(孙清茂.2011)
管理员信息表users
编号UserID整型数(10),
姓名UserName字符串(10),
密码UserPsw字符串(10),
用户类型UserType字符串(5),
管理员数据表如图
图管理员数据表(孙清茂.2011)
技术原因,当前只设计两张数据表。
第6章具体实现
详细设计概述
成功登陆系统
(1)查询——售票员可做如下操作:
Step1:
输入所要查询车票信息;
Step2:
查看所查询结果显示信息;
Step3:
回复客户。
(2)售票——售票人员可做如下操作:
按客户要求查询所需车票;
查看车票信息,并回复客户;
确认是否出售此票,是则打印车票,收取现金;
Step4:
完成售票操作下一个旅客;
(3)退票——售票人员可做如下操作:
核对所退车票信息是否符合退票;
系统计算判断,确认找还余额;
回收车票,找还现金,完成退票操作;
(4)改签——售票人员可做如下操作:
查询客户所提供车票信息;
退票改签,系统判断;
确认改签,找补现金;
完成改签操作;
(5)管理:
系统管理人员可使用人员信息管理操作;
(6)系统功能模块如下表;
表6-1系统功能模块
功能模块
功能使用者
查询车票
售票人员
售票
退票
改签
用户管理
管理人员
系统管理
数据库管理
面向售票员的详细设计
查询
时序及I/O
查询可分为按车次查询与站点查询,用户通过输入待查询车次或者站点查询车票的相关信息,包括票价,时刻,剩余票数等信息。
若用户输入的车次或者站点错误,系统会提示输入错误。
能够对乘客要求的大部分查询类型都能够查询,每个查询功能键都一目了然,能快速精确的显示要查询的信息。
要求单次的查询系统的处理时间在2秒以内。
查询功能时序图如图,
图查询功能时序图(孙清茂.2011)
输入项目:
车次号或者站名。
输出项目:
车次号、站点、发车时间、到站时间、剩余票数、车票价格、旅程历时。
算法实现
算法
该模块通过访问数据库查询车票信息,提取用户输入的车次或者站名,封装成SELECT语句,到数据库中查询车票信息,将信息返回到用户界面。
若用户输入错误,弹出错误提示框。
算法流程图如图,
格式错误
格式正确
无车票
有车票
图查询算法流程图(孙清茂,2011)
根据旅客的需求如发车日期、发车时间、车票类型(学生票、军人票…)等,售票员查询相关的车票信息,选择用户所需要的车次,然后结算并打印车票给旅客。
单次售票任务在25秒之内完成,系统的反应时间在3秒之内;
保证多台机器同时运行该系统不会有过高延时。
售票时序图如图,
图售票功能时序图(孙清茂,2011)
输入项目:
车次、站点、日期。
输出项目:
车票信息、剩余票数。
售票员输入顾客预购车票的相关信息,调用查询模块,到数据库中查询是否有票,若有,则选择需要的票数和车次,并将卖出票数写入数据库,数据库中对应车次剩余票数刷新,储存,售票员选择打印火车票给顾客;
若无则提示售票员车票已售完,回到输入信息界面,重复上边的算法。
售票算法流程图如图,
图售票算法流程图(孙清茂,2011)
退票时序图如图
图退票时序图(孙清茂,2011)
处理用户由于某种情况需要退回车票的情况,旅客要在车站指定的时间内进行退票,按照票款的80%退款。
超过指定时间,只能改签,不能退票。
系统及时的记录下所退回的车票,更新数据库。
车票编号。
确认车票界面、警告提示、退票款、数据修改成功。
售票员扫描顾客欲退车票的条形码,获得车票编号,售票员点击退票按钮,将车票编号交给退票模块。
退票模块到数据库中查询此票是否已售出,若匹配则点击确认退票,退票模块修改数据库,售票员返还退票款;
若不匹配则会提示售票员此票未售出。
退票算法流程图如图,
无记录
有记录(已卖出)
是
否
图退票算法流程图(孙清茂,2011)
计划临时变更需要更改出发日期,或者退票不成功,可以选择改签服务。
售票员收回乘客车票,返还票款,收取手续费。
若乘客需要日期的票有剩余,则重新卖给乘客一张票;
若票已售完,则退出。
车次、日期
输出项目:
警告提示、新车票
改签时序图如图,
图改签时序图(孙清茂,2011)
售票员扫描车票条形码,输入到改签界面,改签模块进入数据库中确认该车票确实售出。
若确实售出,则返还退票款,并根据乘客需求另售一张指定日期车票;
若没有售出,警告提示售票员车票有误。
改签算法流程图如图,
有
图改签算法流程图(孙清茂,2011)
面向管理员的详细设计
修改车次模块
修改时序图
系统管理员通过该模块修改需要变更的车次信息,包括车次修改、票价修改、站点修改。
车次修改包括增加车次,减少车次,车次的临时调度和临时路线更改。
票价修改为节假日、春运等特殊时段或某些特殊地域需要适量增加或减少票价。
站点修改可是某些车次增加或减少一些站点。
其时序图如图,
图修改车次时序图(孙清茂,2011)
管理员输入欲修改的车次,提交给修改模块,修改模块根据管理员输入的信息进入数据库查询到相关表中数据,并修改,修改成功后给管理员显示修改之后的信息内容。
统计信息模块
统计时序图
主要是统计车票的销售情况以及销售额等。
同时通过车票统计还可得知不同日期车流量的情况,为列车调度提供第一手资料。
统计时序图如图
图统计时序图(孙清茂,2011)
售票员将要统计的车次号输进到统计界面,控制器提取数据,进入数据库查询统计表,返回给售票员,售票员根据车次的售票情况作出销售额、客流情况统计表。
统计算法流程图如图,
不存在
存在
图统计算法流程图(孙清茂,2011)
结论
程序设计完成了预期的目的,实现了项目的研究探讨和算法实现,并使之能成为一个可以使用的系统。
软件工程是本专业集多门课程与一身的学科,软件工程导论课程设计则是运用已学的所有专业知识。
不仅仅是学一门课,同时还是复习其他课程。
课程设计是一次练习,也能为将来的毕业设计论文打下一些基础,让我们了解什么才是规范的课程设计。
本课程设计核心是面向对象程序设计和数据库,如此一来,更能联系已学的知识,使之逐渐构成一个体系,也一定程度上训练我们的程序设计思维方式。
总体说来,本次试验比较成功。
参考文献
[1]XX文库.经典Access2003教程[EBOL].[2009-09-02].匿名.火车站售票系统[j].[2009-12-08].