基于JAVA和SQL SERVER数据库实现的火车票预售系统

Collapser

发布日期: 2018-11-20 11:12:53 浏览量: 2016
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com

1 系统设计

1.1 设计目的

乘坐火车是我们生活中几乎不可缺少的一件事儿,每天都会有各种各样的火车班次发布与被预定。针对这个火车票预售的环节我设计了一个火车票预售系统,为购票用户与卖票管理人员之间搭建平台。让我们的用户能够通过该软件对管理人员发布的航班进行预购与查询。另一方面也可以加强我们的管理人员对班次信息与乘客的管理与查询。

本系统的根本目的是让管理人员能够发布与查询班次信息、查询乘客信息等;用户可以通过该系统对班次进行预购、自己购票记录的查询等。

1.2 需求分析

1.2.1 信息要求

该系统主要记录用户、班次、火车、银行卡之间的关系

  • 用户分为管理员与购票用户

    • 售票管理员信息:管理员编号、管理员名字、管理员电话
    • 购票用户信息:身份证号、电话号码、银行卡号
  • 班次信息

    • 班次号、火车号、出发地点、目的地、出发时间、到达时间
  • 火车信息

    • 火车号、火车节数、座位数、各种座位票价、火车车速
  • 银行卡信息:

    • 银行卡号、余额、持有人身份证号
  • 身份证信息

    • 身份证号、姓名、性别、所有者
  • 车票信息

    • 车票号、班次号、座位号、乘客身份证号、车票价钱、车厢数

1.2.2 处理要求

  • 能够正确、高效、迅速地完成所有操作

  • 一个管理员可以管理多个班次、一个用户可以多次订购不同时间段的车票

1.2.3 安全性与完整性需求

  • 安全性

    • 该系统需要用户进行账号的注册与登陆
    • 通过对不同的用户种类的检测来给予不同的权限与界面
    • 用户登陆自己账号后只能查询自己用户名下身份证的购票信息与个人信息
    • 用户不可对班次、火车等信息进行修改
    • 售票员能对班次信息进行修改与查询,对于用户信息只能查询不能修改
  • 完整性

    • 实体完整性

      • 手机号、班次号、火车号、银行卡号、身份证号、车票号分别为用户、班次、火车、银行卡、身份证、车票的主码
    • 参照完整性

      • 班次号中的火车号为火车表的主码、银行卡号中所有者号码为用户的主码、车票中的火车号与班次号分别为火车表与班次表的主码。以上外码要么为空要么是参照表中已有数据
  • 用户定义完整性

    • 性别只能是男女、车票钱不能为空、车速不能为空、班次目的地与出发地不能为空、用户类型只能是 0 与 1:0 表示普通用户、1 表示管理员用户。用户名字不能为空

1.3 开发和运行环境选择

  • 开发工具

    • 前台开发语言为 Java
    • 后台数据库为 SQL SERVER 2017
  • 运行环境

    • Java 1.8 版本
    • Windows2000 以上

2 数据库设计

2.1 数据库概念设计

本系统中包括六个实体:身份证实体、银行卡实体、用户实体、车票实体、火车实体、
班次实体,根据需求需求分析的结果以上六个实体对应的 ER 属性图如下图所示。

系统整体 E-R 图

2.2 数据库逻辑设计

根据 E-R 图向关系模型的转换原则,一个实体型转换为一个关系模式,实体的属性就是关系的属性。因此按照图 2.7 中的整体 E-R 图,本数据库系统中应包括六张表:身份证、银卡、用户、车票、火车、和班次。

3 火车票预售系统详细设计

3.1 功能概述

售票管理员系统主要包含如下几个功能:

  • 发布与删除班次及其相关信息

  • 查看班次详细信息

  • 通过班次号对班次进行详细查询

  • 通过身份证号码查询乘车人信息

用户系统主要包含如下几个功能:

  • 通过地点、时间查询班次信息

  • 通过班次号查询班次详细信息

  • 添加和删除信用卡

  • 添加、修改和删除乘车人信息

  • 查询得到班次后可以为乘车人购买车票

  • 查看自己用户的购票记录

整体功能描述图如下图所示:

3.2 火车票预售系统详细设计

3.2.1 界面设计

3.2.1.1 管理员界面设计

在使用管理员账号登录过后,会出现管理员主界面。在界面最上方有初始地点选择和时间选择控件,可以通过时间和地点的详细选择来针对性地发布班次信息,在点击发布后会弹出火车号填写对话框,在此处填写火车号以完成班次发布的目的,如下图在发布下方有一个查看按钮,通过在左边列表中选择想查看的班次再点击该按钮即可查看到详细的班次信息如下图所示。

3.2.1.2 用户系统界面设计

在使用用户权限帐号登录过后,会进入相应的用户界面,用户界面分为四个 fragment,第一个 fragment 通过站点和时间来查询班次列表,在查询到班次后可以通过购买按钮对车票进行购买,购买时需要选择乘车人、勾选座位信息和选择支付的信用卡,如下图所示。

在第二个 fragment 里用户可以通过班次号来查询班次信息与购票,如下图所示,在点击查询后按钮会自动变成购票,后续购票操作和第一个 fragment 一样。

在第三个 fragment 里用户可以查询到自己所有的购票记录,可以通过查看详细按钮进行查看,还可以通过退票按钮进行退票操作,如下图所示。

最后是用户信息界面,用户可以在此处看到自己用户名以及邮箱号,如下图所示。用户可以在此界面增、删、改常用乘车人信息,如下图所示。也可以添加和删除信用卡,如下图所示。

3.2.2 功能实现

整体功能是通过两个 Activity 与四个 Fragment 来实现,具体实现功能顺序为下图所示。本系统大量使用 Dialog 来对详细信息填写进行管理。

功能实现过程中使用到 UI 的类有 17 个,其中三个抽象父类用于限制所有界面的业务处理与逻辑执行顺序,其余 14 个子类用于详细界面以及功能的实现,整体界面代码框架如下图所示。

注:Dialog 是在 Fragment 中使用,Fragment 是放置到底层 Activity 使用。

4 系统测试

发布班次示意图

发布班次示意图

到数据库查询如下图所示:

购票操作示意图 1

购票操作示意图 2

到数据库查询如下图所示:

退票操作示意图

到数据库查询如下图所示:

5 总结

三个星期的时间非常快就过去了,这三个星期不敢说自己有多大的进步,获得了多少知识,
但起码是了解了项目开发的部分过程。虽说上过数据库等相关的课程,但是没有亲身经历过相关的设计工作细节。这次课设证实提供了一个很好的机会。通过这次的系统设计,我在很多方面都有所提高。综合运用所学知识的理论知识实际训练从而培养和提高学生独立工作的能力,巩固所学的知识,掌握系统程序的编排和运行,使自己的独立思考能力有了显著提高。

从各种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。但真正需要自己想办法去设计一个系统的时候才发现其中的难度。经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。

我们学习并应用了SQL 语言,对数据库的创建、修改、删除方法有了一定的了解,通过导入表和删除表、更改表学会了对于表的一些操作,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。

很多事情不是想象中的那么简单的,它涉及到的各种实体、属性、数据流程、数据处理等等。很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。在做关系模型转换的时候碰到有些实体即可以认为是实体又可以作为属性,为了避免冗余,尽量按照属性处理了。

不管做什么,我们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来并没有你以前觉得的那样,自己也是可以的。如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标。有一个这样的感觉就是课程设计学到的东西比一个学期都多。

参考文献

[1] CSDN 论坛、简书论坛、知乎论坛

[2] 毕广吉.Java 程序设计实例教程[M]. 北京:冶金工业出版社,2007 年

[3] 肖成金,吕冬梅。 Java 程序开发数据库与框架应用[J]. 科技展望,2017,05:19.

[4] 吕锋,梅细燕,周晓东;基于 JDBC 的数据库管理及其应用[J];武汉理工大学学报;2002 年 10 期

[5] 姚永一,SQL Server 数据库实用教程,北京:电子工业出版社,2010.

[6] 高云,崔艳春,SQL Server 2008 数据库技术实用教程,北京:清华大学出版社,2011

[7] 何玉洁,梁琦,数据库原理与应用(第二版),北京:机械工业出版社,2011

[8] 壮志剑,数据库原理与 SQL Server,北京:高等教育出版社,2008

[9] 杜丁超.计算机软件 Java 编程特点及其技术分析

[10] 萧仁惠,陈锦辉. JDBC 数据库程序设计[J].北京:中国铁道出版社,2004

上传的附件 cloud_download 基于JAVA和SQL SERVER数据库实现的火车票预售系统.7z ( 2.28mb, 61次下载 )
error_outline 下载需要17点积分

keyboard_arrow_left上一篇 : 基于Android实现的减肥塑身平台APP 基于html的火柴人羽毛球游戏 : 下一篇keyboard_arrow_right



Collapser
2018-11-20 11:13:50
使用JAVA和SQL SERVER数据库实现的火车票预售系统
cc
2019-05-28 11:01:54
没法导入啊 缺东西了吗
一棵小树
2019-06-05 19:10:34
javac编译的时候出错啊
adragonfree
2019-06-10 16:40:46
你们下载的能用不?

发送私信

三观不同不适合做朋友

8
文章数
7
评论数
最近文章
eject