数据库课程设计火车票管理系统.docx
《数据库课程设计火车票管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计火车票管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
![数据库课程设计火车票管理系统.docx](https://file1.bdocx.com/fileroot1/2022-10/26/77f27d16-6c76-4f42-8ff6-a57d665f5fed/77f27d16-6c76-4f42-8ff6-a57d665f5fed1.gif)
数据库课程设计火车票管理系统
数据库原理及应用
课程设计报告
题目:
火车票售票系统
所在学院:
信息工程学院
班级:
学号:
姓名:
指导教师:
2013年1月3日
一、概述--------------------------------------3
二、需求分析----------------------------------3
三、概念设计----------------------------------5
四、逻辑设计----------------------------------7
五、系统实现----------------------------------9
六、小结-------------------------------------14
一、概述
数据库技术是20世纪60年代末在文件系统基础上发展起来的数据管理新技术,它解决了过去对数据管理和组织中存在的数据冗余和独立性问题,实现了数据的共享性、完整性、安全性、有效性目标。
数据库技术的发展和广泛使用,为人类社会进入信息化社会奠定了坚实的基础。
随着社会和经济不断的发展,数据和信息也随之快速增长起来,为有效地组织和管理庞大的数据和信息,严密科学合理的数据管理技术也就成为迫切的技术问题之一。
现在人们更多的使用火车作为出行交通工具,因此车票票务市场也在快速发展。
人们希望车票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的车票表现出极大的关注。
随着社会的不断进步,国内外铁路运输事业的飞速发展,各国铁路运营部门对票务管理的要求也在不断的提高,本系统就是针对这种日益增长的需求而进行开发的。
随着旅游业的逐渐的成熟发达,铁路客运量大幅度的提高,国内旅游专线的增加,这些都对铁路的售票管理系统提出了更高的要求,所以要不断的完善更新铁路售票系统,提高铁路售票系统的工作效率。
铁路运输系统中,售票系统是很重要的一个环节,要想提高整个铁路运营部门的工作效率,就要先提高售票系统的工作效率和安全性,故而研发此系统,此系统能够为售票工作提供方便快捷的售票服务,广大的客户可以得到更好的票务服务。
二、需求分析
1.系统功能需求分析
随着我国市场经济的快速发展和信息化水平的不断提高,如何利用先进的管理手段,提高火车售票管理系统的水平,是当今社会所面临的一个课题。
提高企业的管理水平,必须全方位地提高企业的管理意识。
只有高标准、高质量的管理才能满足铁路的发展需求。
面对信息时代的挑战,利用高科技手段来提火车售票管理系统无疑是一条行之有效的途径。
在某种意义上,信息与科技在企业管理与现代化建设中显现出越来越重要的地位。
火车售票管理系统方面的信息化与科学化,已成为现代化生活水平步入高台阶的重要标志。
本系统开发简单但要耗去一定的时间,所用的开发工具和软件都差不多是免费的。
而且,由于系统能够在未来较长的一段时期内稳定地发挥作用,这对于铁路售票自动化管理,节省人力、物力资源等都有很大的帮助。
由此可见,开发此系统在经济上是完全可行的本系统的。
本系统包含用户子系统和管理员子系统两个子系统,每个子系统包换了若干子功能模块,每个子功能模块完成相应的处理操作功能。
其中管理员的权限是大于用户的。
基本设计流程如下图所示:
2.数据需求分析
2.1静态数据
火车票:
列车车号
列车始发时间
列车始发站
列车终点站
票务:
列车车号
已售出车票票数
售票员:
用户名
密码
2.2动态数据
输入数据:
根据界面提示,键盘输入操作;
查询方式:
查询车次、查询始发站;
三、概念设计
根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。
在火车票售票管理系统当中包括了以上几个ER模型向关系模型的转换:
用户信息表,车票信息表,购票车表。
●车次信息(E-R图):
●用户信息(E-R图):
●订单信息(E-R图):
●整体E-R图:
四、逻辑设计
数据库逻辑结构设计就是把E-R图转化成数据库所能接受的结构模型,也就是关系表。
根据高校毕业生就业管理系统的功能要求,该数据库逻辑模型由以下表组成:
1、用户表(user)
字段名
中文名
键别
是否空
数据类型
长度
User_name
用户名
PK
NO
Varchar
8
Id_number
用户密码
NO
Varchar
16
password
用户权限
Int
8
创建user表:
createtableuser(user_namevarchar(8)notnullprimary
key,
id_numberVarchar(16)notnull,
passwordint(8)
);
2、车次信息表(train_table)
字段名
中文名
键别
是否空
数据类型
长度
startTime
开车时间
No
Varchar
20
endTime
到达时间
No
Varchar
20
reacher
目的地
No
Varchar
50
starter
发车地点
No
Varchar
50
tickektNumber
车号
PK
No
Varchar
20
tickektNum
票号
No
Int
20
price
票价
No
double
20
tid
购买时间
Int
50
BusDate
车次日期
No
Varchar
20
seatIdNumber
座位号码
No
Varchar
10
创建train_table表:
createtabletrain_table(startTimeVarchar(20)notnull,
endTimeVarchar(20)notnull,
starterVarchar(50)notnull,
reacherVarchar(50)notnull,
ticketNumbeVarchar(20)notnullprimary
key,
pricedouble(20)notnull,
tidInt(50)
seatIdNumberVarchar(10)notnull,
busDateVarchar(20)notnull,
);
3、订单信息(order)
字段名
中文名
键别
是否空
数据类型
长度
tid
购买时期
No
Date
50
Id_number
用户密码
No
Varchar
16
trainsum
列车次数
No
Int
100
创建order表:
createtableorder(tidDate(20)notnull,
id_numbervarchar(16)notnull,
trainsumInt(100)notnull,);
五、系统实现
用户登录及访问权限
本系统设计要求用户通过登录框选择访问权限,登录系统。
其中,用户须输入用户名和密码,以进入系统。
系统用户权限登录访问时,车次信息查询、订票信息查询、订票、退票等功能均可用。
系统用户输入正确的用户名和密码,访问系统,得到其相应的权限。
系统用户输入错误的用户名或身份证号,系统拒绝其访问。
实现功能的部分代码:
publicclassEnterFrameextendsJFrame{
privateStringstr;
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
JTextFieldfield1=newJTextField(12);
JPasswordFieldjpField=newJPasswordField(12);
JTextFieldfield=newJTextField(9);
JTextFieldbirthIdField=newJTextField(12);
JLabellab2=null;
privateStringUSER=null;
publicstaticStringID=null;
publicstaticStringpassword=null;
Strings[]=newString[]{"0","1","2","3","4","5","6","7","8",
"9","A","B","C","D","E","F","G","H","I","J","K","L",
"M","N","O","P","Q","R","S","T","U","V","W","X","Y",
"Z"};
publicEnterFrame(){
Borderborder=BorderFactory.createBevelBorder(BevelBorder.RAISED);
Borderborder2=BorderFactory.createBevelBorder(BevelBorder.LOWERED);
JPanelpan5=newJPanel();
JLabellab=newJLabel();
Fontfont=newFont("",Font.ITALIC,30);
lab.setText("欢迎登陆火车售票系统");
lab.setForeground(Color.BLUE);
lab.setFont(font);
pan5.add(lab);
JPanelpn1=newJPanel();
JLabellabel1=newJLabel("姓名:
");
label1.setFont(newFont("",Font.PLAIN,20));
pn1.add(label1);
field1.setBorder(border2);
pn1.add(field1);
JPanelpn6=newJPanel();
JLabellabel=newJLabel("身份证号:
");
label.setFont(newFont("",Font.PLAIN,20));
birthIdField.setBorder(border2);
label1.setFont(newFont("",Font.PLAIN,20));
pn6.add(label);
birthIdField.setBorder(border2);
pn6.add(birthIdField);
JPanelpn2=newJPanel();
JLabellabel2=newJLabel("密码:
");
label2.setFont(newFont("",Font.PLAIN,20));
jpField.setEchoChar('*');