火车票管理系统1.docx

上传人:b****3 文档编号:4266078 上传时间:2023-05-06 格式:DOCX 页数:19 大小:263.04KB
下载 相关 举报
火车票管理系统1.docx_第1页
第1页 / 共19页
火车票管理系统1.docx_第2页
第2页 / 共19页
火车票管理系统1.docx_第3页
第3页 / 共19页
火车票管理系统1.docx_第4页
第4页 / 共19页
火车票管理系统1.docx_第5页
第5页 / 共19页
火车票管理系统1.docx_第6页
第6页 / 共19页
火车票管理系统1.docx_第7页
第7页 / 共19页
火车票管理系统1.docx_第8页
第8页 / 共19页
火车票管理系统1.docx_第9页
第9页 / 共19页
火车票管理系统1.docx_第10页
第10页 / 共19页
火车票管理系统1.docx_第11页
第11页 / 共19页
火车票管理系统1.docx_第12页
第12页 / 共19页
火车票管理系统1.docx_第13页
第13页 / 共19页
火车票管理系统1.docx_第14页
第14页 / 共19页
火车票管理系统1.docx_第15页
第15页 / 共19页
火车票管理系统1.docx_第16页
第16页 / 共19页
火车票管理系统1.docx_第17页
第17页 / 共19页
火车票管理系统1.docx_第18页
第18页 / 共19页
火车票管理系统1.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

火车票管理系统1.docx

《火车票管理系统1.docx》由会员分享,可在线阅读,更多相关《火车票管理系统1.docx(19页珍藏版)》请在冰点文库上搜索。

火车票管理系统1.docx

火车票管理系统1

课程设计说明书NO.

设计题目:

火车票管理系统

1.课程设计的目的

通过课程设计进一步掌握VFP的基本命令,熟练掌握可视化程序设计方法和编程技巧,掌握数据库设计方法,能用VFP编写小型数据库应用程序。

2.系统分析

系统分析是软件设计的一个重要的环节。

本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。

用户对系统的需求我们从以下几方面进行分析。

2.1需求分析

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

(1)准确性和及时性

系统处理的准确性和及时性是系统的必要性能。

系统应能及时而且准确的根据用户权限及所输入的信息做出响应。

由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。

作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败。

在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。

(2)易用性

本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。

这就要求系统能够提供良好的用户接口,易用的人机交互界面。

要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。

(3)安全性

订票系统中涉及到的数据是客运公司相当重要的信息,系统要保证用户的权限,对于车次等信息用户只享有查询服务,不得更改;系统还要提供方便的手段供系统维护人员进行数据备份、日常安全管理、以及系统意外崩溃时数据的恢复等工作。

同时系统还要保证对数据库进行及时更新,保证数据一致性。

2.2功能分析

(1)查询

分为对车次信息的查询和客户对已订车票信息的查询。

要求:

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

②车次信息包括:

车次、出发地、目的地、发车日期、开出时刻、票价。

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

(2)订票

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

要求:

订票记录应包括:

会员名、车号、发车日期、订购日期、订购票数、总价。

(3)退票

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

(4)执行统计和修改票务信息要求:

①只允许管理人员登录

②管理人员可以统计卖出的票务共收入的金额

③管理人员可以修改票务信息

2.3数据需求

信息需求,即在系统中需要处理哪些数据。

根据对火车站网上订票系统的分析,本系统的信息需求如表1所示。

信息输入

信息处理

信息输出

用户输入所需车次

检索系统数据库

符合用户需求的车次及关

信息

用户输入个人信息及所订

购的车票信息

更新系统中的订票信息,

将新信息存入系统数据库

操作反馈(如订票成功)

用户输入自己的名字、份

证号;或交易的订单号

检索系统数据库

符合用户需求的订票信息

用户输入自己的名字

检索系统数据库以得到票记录,删除用请的票记录,更新系统数据库

操作反馈(如退票功等)

表1信息输入输出

3数据库设计

3.1实体—联系图(E-R图)

3.2表设计

在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好的、更准的用某一DBMS实现这些需求。

针对火车管理系统,通过对网上订票工作的过程、内容以及数据流程分析,设计如下所示的数据项和数据结构:

(1)车次信息包括:

车次、出发地、目的地、发车日期、开出时刻、票价。

(2)订票记录包括:

订单号、身份证号、车号、订购日期、订购票数、总价。

(3)用户信息包括:

用户名、性别、电话

3.3字段设计

将E-R图转化为以下的关系模型。

关系的码用横线标出。

user(密码、用户名、用户标识)

seat(订单号、车次、发车时间、订购日期、票价)

information(车号、发车日期、出发地、目的地、开出时刻、到达时刻、剩余票数、票价、座位类型)

以上是实体以及其属性。

查询(身份证号、车号、发车日期、查询方式)

订票(订单号、订票方式)

退票(订单号、退票方式)

以上是联系及其属性。

4.创建数据库表和索引文件

4.1创建数据库表和索引文件

火车票管理系统数据库中各个表格的设计结果如表2——表7所示。

每个表格表示在数据库中的一个表。

表2车次信息表

字段名

数据类型

是否可空

说明

车号

char(10)

NOTNULL

(主键)

出发地

char(20)

NOTNULL

目的地

char(20)

NOTNULL

发车日期

Datetime

NOTNULL

(主键)

开出时刻

Datetime

NOTNULL

到达时刻

Datetime

NOTNULL

剩余票数

int

NOTNULL

票价

Char(10)

NOTNULL

表3订票信息表

字段名

数据类型

是否可空

说明

订单号

Char(10)

NOTNULL

(主键)

车号

char(10)

NOTNULL

(外键)

发车日期

datetime

NOTNULL

(外键)

订购日期

datetime

NOTNULL

订购票数

Int

NOTNULL

总价

Money

NOTNULL

表4用户表

字段名

数据类型

是否可空

说明

用户名

char(20)

NOTNULL

性别

Char

(2)

电话

char(20)

表5订票表

字段名

数据类型

是否可空

说明

订单号

char(20)

NOTNULL

(主键)

订票方式

Char(20)

表6退票表

字段名

数据类型

是否可空

说明

订单号

char(20)

NOTNULL

(主键)

订票方式

Char(20)

表7查询表

字段名

数据类型

是否可空

说明

用户名

char(20)

NOTNULL

(主键)

车号

char(10)

NOTNULL

(主键)

发车日期

Datetime

NOTNULL

(主键)

查询方式

char(20)

4.2建立表永久性连接数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库系统。

对于数据库查询事务,需要得到如下信息:

查询的关系。

通过连接查询可以将车次和用户之间互联;通过订票和退票可以将用户和订票信息互联,从而将每个表联系在一起,构成一个相关联的数据库。

查询条件所涉及到的属性。

查询涉及到的属性是(身份证号、车号、发车日期);订票涉及到的属性是(订票号);退票所涉及到的属性(订票号)。

连接条件所涉及到的属性(身份证号、订单号、车号-发车日期、订单号)。

对于数据更新,需要得到如下信息:

被更新的关系。

每个关系上的更新操作条件所涉及的属性。

修改操作要改变的属性值。

需要注意的是,数据库上运行的事务会不断的变化、增加或减少,以后需要根据上述设计信息的变化调整数据库的物理结构。

5程序设计与调试及运行5.1火车票管理系统界面

图1火车票管理系统界面

代码如下:

登录系统:

doformlogo.scx

releasethisform

退出系统:

thisform.release

quit

5.2管理员和用户登录界面

图2管理员和用户登录界面

本系统设计要求用户通过登录框选择访问权限,登录系统。

其中,用户须输入用户名和密码,以进入系统。

系统用户权限登录访问时,车次信息查询、订票信息查询、订票、退票等功能均可用。

系统用户输入正确的用户名和密码,访问系统,得到其相应的权限。

确定代码:

ifallt(thisform.text1.value)=="guest"

ifallt(thisform.text2.value)=="000"

doformmenu1

endif

endif

ifallt(thisform.text1.value)=="admin"

ifallt(thisform.text2.value)=="123"

doformmenu

endif

endif

if(thisform.text1.value)<>allt(thisform.text1.value);

.and.allt(thisform.text2.value)<>allt(thisform.text2.value)

messagebox("用户名或密码错误,请重新输入!

",64,"提示")

thisform.text1.value=""

thisform.text2.value=""

thisform.text1.setfocus()

endif

5.3管理员和用户的管理界面

图3管理员的登陆界面

图4用户的登陆界面

乘客订购票窗口代码:

doformdp.scx

通过在登录界面输入的用户名和密码,来区别管理员和用户,当是管理员是,系统会自动弹出图3界面让管理员来管理,当是用户时,系统会出现图4

5.4订票表单界面

图5订票界面

订票代码:

settalkon

opendatabase火车票查询数据库

useinformation

ifthisform.Text1.VALUE=information.车次

ifthisform.Text2.TEXT=customer.座位号

messagebox("该车票已被订购!

","dp")

endif

endif

ifthisform.Text1.TEXT=alltrim(customer.车次)

locateforcustomer.座位号=thisform.Text2.TEXT

ifNOTfound()

USEcustomer

appendblank

replacecustomer.车次withthisform.Text1.TEXT

replacecustomer.座位号withthisform.Text2.TEXT

messagebox("订票成功!

","dp")

else

messagebox("该车票不存在!

","dp")

endif

USE

use

closedatabase

settalkoff

图6车票不存在

图7订票成功

系统用户可以通过两种方式进入到订票环节。

一是在主界面的菜单选项中,直接选择“订票”服务,二是用户可以由车次查询界面,点击“订票”命令,直接跳转订票界面。

新用户在填写订票信息之前,必须填写用户信息,以保证下次访问系统时的系统权限不受限制。

订票信息中的订单号由系统提供。

如果用户是从车次查询界面跳转至订票界面的,在填写订票信息时,车次的相关信息由系统自动提供。

用户只需输入订票数,点击“下一步”完成订票交易。

交易成功后,系统会弹出提示框,示意用户订票操作已成功。

5.5乘客查询与退票界面

图8查询与退票管理窗口

查找代码:

this.parent.grid1.setfocus

locaforallt(customer.车次)==allt(this.parent.text2.value)and;

allt(customer.座位号)==allt(this.parent.text3.value)

iffound()

y=recn()

goy

messagebox("已经找到,乘客可以去售票大厅退票!

")

else

useinformation

ifthis.parent.Text2.VALUE=information.车次

messagebox("此票未售出,可以购买")

ELSE

messagebox("查无此票")

endif

endif

系统进入退票管理也是通过两个方法来实现,用户可以直接进入退票环节,也可以从订单查询环节进入。

订票相关信息由系统自动提供。

5.6修改订票记录

订票代码;

sele*fromcustomer

ifthis.caption="订票"

this.caption="保存订票记录"

this.parent.tag=str(recno())

this.parent.customer.setfocus

appeblank

else

thisform.caption="订票"

mand4.caption="修改订票记录"

endif

seleseat

locaallforallt(seat.座位号)==allt(thisform.customer.column2.text6.value)

this.parent.text6.value="t"

this.parent.refresh

修改订票系统代码:

ifthis.caption="修改订票记录"

this.caption="取消修改"

mand3.caption="保存修改"

this.parent.tag=str(recno())

else

this.caption="修改订票记录"

mand3.caption="订票"

tablerevert()

this.parent.refresh

endif

goval(this.parent.tag)

this.parent.refresh

上一次车代码:

seleinformation

ifrecno()<>1

skip-1

thisform.refresh

else

messagebox("已经为第一个列车号!

")

endif

下一次车代码:

seleinformation

ifnoteof()

skip

thisform.refresh

else

messagebox("已经为最后一个列车号!

")

endif

5.6车次查询

图9

对车次信息的查询,系统提供了车次信息,进行精确的查询,系统经过检索,返回符合用户要求的车次,再由用户自行选择满意的车次。

5.7车站收入统计界面

图9

执行统计代码:

USEseat

settalkoff

docase

casethisform.optiongroup1.value=1

setfiltto车次=allt(thisform.text1.value)

sum票价tox

thisform.label3.caption="统计车次为:

"+allt(thisform.text1.value)+"总收入为:

"

thisform.text2.value=x

casethisform.optiongroup1.value=2

setfiltto发车日期=allt(thisform.text1.value)

sum票价tox

thisform.lable3.caption="统计日期为:

"+allt(thisform.text1.value)+"总收入为:

"

thisform.text2.value=x

endcase

thisform.refresh

通过此程序,管理员可以统计卖出的票数和收入的金额,便于以后车票的统计和管理

6.课程设计总结

这次系统的设计从最开始的可行性研究,需求分析,到系统的总体设计,详细设计,再到编码、测试等的一个整体过程,使我真正明白了要做一个软件的难度,特别是要做一个真正可用的软件,就更难了。

在老师和同学的帮助下,完成了本次课程设计,尽量使它能满足各个方面的要求。

当然,我的个人能力有限,还有很多不足的地方,敬请谅解。

在这次课程设计过程中我遇到了不少的难题,比如数据库操作问题,界面设计问题,函数使用与实现问题,消息处理问题等等。

其中,最关键的是在最初对系统的需求分析做的不透彻,导致后续设计工作乃至编码时的修改工作量变大。

尤其,越接近结束,就越是时常出现问题。

所以,通过这次课程设计我深刻体会到学习还是必须学精通点、学透彻点。

通过这次课程设计,我学会了如何对所学课程综合运用,巩固了的一般规范,对数据库的使用也有了更进一步了解。

总体来说,课程设计让我学了不少vf知识。

我认为课程设计是我们学习生涯中相当重要的一课,除了验证学生的学习成果外,也是训练一个人独立思考及解决问题的能力.在这里,我要感谢指导老师和同学在这次课程设计中对我的帮助。

7.参考文献

[1]范立南,张宇.VisualFoxPro程序设计与应用教程科学出版社[M],2003,49(3):

45-49

[2]桂学勤,陆亚平.vfp应用程序的界面设计[j].福建电脑,2004,(05)

[3]陈彩霞.《教学管理系统》的开发和设计[j].内蒙古科技与经济,2004,(05)

[4]徐彬.轻松表单任我行——之pdf及其他高级表单设计[j].微电脑世界,2003,(19)

[5]谢玉华,高克利.visualfoxpro中参数传递问题解析[j].福建电脑,2006,(05)

[6]张景莉.关于visualfoxpro教学的思考[j].引进与咨询,2004,(02)

[7]胡明.visualfoxpro中通用查询表单的设计与实现[j].电脑知识与技术(学术交流),2006,(35)

[8]张学智,陈莉莉.visualfoxpro的表单自动生成及后期制作[j].西安工业学院学报,1997,(04)

[9]刘卫国.在vfp应用系统中实现多媒体控制[j].微计算机应用,2000,(03)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2