数据库课程设计火车票管理系统.docx
- 文档编号:4951810
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:15
- 大小:257.16KB
数据库课程设计火车票管理系统.docx
《数据库课程设计火车票管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计火车票管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
数据库课程设计火车票管理系统
数据库原理及应用
课程设计报告
题目:
火车票售票系统
一、概述--------------------------------------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('*');
jpField.setBorder(border2);
pn2.add(label2);
pn2.add(jpField);
JPanelpan3=newJPanel();
JLabellab1=newJLabel("验证码:
");
lab1.setFont(newFont("",Font.PLAIN,20));
str=yanzheng();
lab2=newJLabel(str);
pan3.add(lab1);
field.setBorder(border2);
pan3.add(field);
pan3.add(lab2);
JPanelpan4=newJPanel();
JButtonbutton1=newJButton("登录");
button1.setBorder(border);
button1.setPreferredSize(newDimension(80,35));
车次信息查询
对车次信息的查询,系统提供了车次信息,进行精确的查询,系统经过检索,返回符合用户要求的车次,再由用户自行选择满意的车次。
实现功能的部分代码:
privatevoididSelect()throwsSQLException{
Connectionconn=DriverManager.getConnection(
"jdbc:
oracle:
thin:
@127.0.0.1:
1521:
ORCL","store","store");
Statementstmt=conn.createStatement();
Stringtext="select*fromtrain_tablewhereticketNumber='"
+trainField.getText()+"'";
ResultSetticket=stmt.executeQuery(text);
while(ticket.next()){
inttid=ticket.getInt("tid");
Stringstarter=ticket.getString("starter");
Stringreacher=ticket.getString("reacher");
StringticketNumber=ticket.getString("ticketNumber");
StringstartTime=ticket.getString("startTime");
StringendTime=ticket.getString("endTime");
StringseatIdNumber=ticket.getString("seatIdNumber");
StringbusDate=ticket.getString("busDate");
intticketNum=ticket.getInt("ticketNum");
doubleprice=ticket.getDouble("price");
sb.append(""+tid+"\t"+starter+"\t"+reacher+"\t"
+ticketNumber+"\t"+startTime+"\t"+endTime+"\t"
+seatIdNumber+"\t"+busDate+"\t"+""+ticketNum+"\t"
+""+price+""+"\n");
}
jtArea.setText(sb.toString());
if(sb.length()>0){
sb.delete(1,sb.length());
}
else{
JOptionPane.showMessageDialog(newTestFrame(),"无此车!
");
}
ticket.close();
stmt.close();
conn.close();
}
}
退票
系统进入点击退票按钮进行退票,系统返回退票信息。
实现功能的部分代码:
classpane2extendsJPanel{
JLabell1=newJLabel("身份证号码");
JLabell2=newJLabel("车票号码");
JLabell3=newJLabel("身份证号码");
JLabell4=newJLabel("密码");
JLabella1=newJLabel("");
JLabella2=newJLabel("");
JButtonorderCheckButton=newJButton("订单查询");
JButtonexitButton=newJButton("确认退票");
JPanelpan1=newJPanel();
JPanelpan3=newJPanel();
publicpane2(){
exitButton.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
are.setText("");
UpdateTrain();
}
});
售票
系统通过售票员输入的车次、始末站等信息进行售票。
实现功能的部分代码:
classpan3extendsJPanel{
JLabellId=newJLabel("车票号码");
JLabelltid=newJLabel("车票号码");
JLabelche=newJLabel("车次");
JLabellbodyId=newJLabel("身份证号");
JLabelpassword=newJLabel("密码");
JLabellzhangshu=newJLabel("所需张数");
JLabella1=newJLabel("");
JLabella2=newJLabel("");
JButtonsureButton=newJButton("查询确认");
JButtonbuyButton=newJButton("确认购票");
六、小结
二十一世纪是一个高速、快捷的年代。
在这个高速发展的年代里,速度成了我们追求的目标;二是提高工作效率;三是降低成本。
因此,办公自动化的高速度、高效率、高便捷、低成本便成了我们的目的,为此开发了这个火车站网上订票系统。
本系统可以大大简化退票、订票、查询等十分繁琐的工作,简化办公环节,提高工作效率,而且易学、易用,满足客户需求。
这次系统的设计从最开始的可行性研究,需求分析,到系统的总体设计,详细设计,再到编码、测试等的一个整体过程,使我真正明白了要做一个软件的难度,特别是要做一个真正可用的软件,就更难了。
在老师和同学的帮助下,我把以往所学的软件工程、数据库知识结合起来,利用java开发工具,加上SQLServer数据库系统,完成了本次课程设计,尽量使它能满足各个方面的要求。
当然,我的个人能力有限,还有很多不足的地方,敬请谅解。
在这次课程设计过程中我遇到了不少的难题,比如数据库操作问题,界面设计问题,函数使用与实现问题,消息处理问题等等。
其中,最关键的是在最初对系统的需求分析做的不透彻,导致后续设计工作乃至编码时的修改工作量变大。
尤其,越接近结束,就越是时常出现问题。
所以,通过这次课程设计我深刻体会到软件工程还是必须学精通点、学透彻点。
通过这次课程设计,我学会了如何对所学课程综合运用,巩固了软件工程的一般规范,对数据库的使用也有了更进一步了解。
总体来说,课程设计让我学了不少知识。
我认为课程设计是我们学习生涯中相当重要的一课,除了验证学生的学习成果外,也是训练一个人独立思考及解决问题的能力.在这里,我要感谢指导老师和同学在这次课程设计中对我的帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 火车票 管理 系统