火车票管理系统Word格式.docx
- 文档编号:21775974
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:257.27KB
火车票管理系统Word格式.docx
《火车票管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《火车票管理系统Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
火车售票管理系统方面的信息化与科学化,已成为现代化生活水平步入高台阶的重要标志。
本系统开发简单但要耗去一定的时间,所用的开发工具和软件都差不多是免费的。
而且,由于系统能够在未来较长的一段时期内稳定地发挥作用,这对于铁路售票自动化管理,节省人力、物力资源等都有很大的帮助。
由此可见,开发此系统在经济上是完全可行的本系统的。
本系统包含用户子系统和管理员子系统两个子系统,每个子系统包换了若干子功能模块,每个子功能模块完成相应的处理操作功能。
其中管理员的权限是大于用户的。
基本设计流程如下图所示:
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
用户密码
16
password
用户权限
Int
创建user表:
createtableuser(user_namevarchar(8)notnullprimary
key,
id_numberVarchar(16)notnull,
passwordint(8)
);
2、车次信息表(train_table)
startTime
开车时间
No
20
endTime
到达时间
reacher
目的地
50
starter
发车地点
tickektNumber
车号
tickektNum
票号
price
票价
double
tid
购买时间
BusDate
车次日期
seatIdNumber
座位号码
10
创建train_table表:
createtabletrain_table(startTimeVarchar(20)notnull,
endTimeVarchar(20)notnull,
starterVarchar(50)notnull,
reacherVarchar(50)notnull,
ticketNumbeVarchar(20)notnullprimary
pricedouble(20)notnull,
tidInt(50)
seatIdNumberVarchar(10)notnull,
busDateVarchar(20)notnull,
3、订单信息(order)
购买时期
Date
trainsum
列车次数
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("
birthIdField.setBorder(border2);
pn6.add(label);
pn6.add(birthIdField);
JPanelpn2=newJPanel();
JLabellabel2=newJLabel("
密码:
label2.setFont(newFont("
jpField.setEchoChar('
*'
jpField.setBorder(border2);
pn2.add(label2);
pn2.add(jpField);
JPanelpan3=newJPanel();
JLabellab1=newJLabel("
验证码:
"
lab1.setFont(newFont("
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"
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+"
+reacher+"
+ticketNumber+"
+startTime+"
+endTime+"
+seatIdNumber+"
+busDate+"
+"
+ticketNum+"
+"
+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();
publicpane2(){
exitButton.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
are.setText("
UpdateTrain();
}
});
售票
系统通过售票员输入的车次、始末站等信息进行售票。
classpan3extendsJPanel{
JLabellId=newJLabel("
车票号码"
JLabelltid=newJLabel("
JLabelche=newJLabel("
车次"
JLabellbodyId=newJLabel("
身份证号"
JLabelpassword=newJLabel("
JLabellzhangshu=newJLabel("
所需张数"
JButtonsureButton=newJButton("
查询确认"
JButtonbuyButton=newJButton("
确认购票"
六、小结
二十一世纪是一个高速、快捷的年代。
在这个高速发展的年代里,速度成了我们追求的目标;
二是提高工作效率;
三是降低成本。
因此,办公自动化的高速度、高效率、高便捷、低成本便成了我们的目的,为此开发了这个火车站网上订票系统。
本系统可以大大简化退票、订票、查询等十分繁琐的工作,简化办公环节,提高工作效率,而且易学、易用,满足客户需求。
这次系统的设计从最开始的可行性研究,需求分析,到系统的总体设计,详细设计,再到编码、测试等的一个整体过程,使我真正明白了要做一个软件的难度,特别是要做一个真正可用的软件,就更难了。
在老师和同学的帮助下,我把以往所学的软件工程、数据库知识结合起来,利用java开发工具,加上SQLServer数据库系统,完成了本次课程设计,尽量使它能满足各个方面的要求。
当然,我的个人能力有限,还有很多不足的地方,敬请谅解。
在这次课程设计过程中我遇到了不少的难题,比如数据库操作问题,界面设计问题,函数使用与实现问题,消息处理问题等等。
其中,最关键的是在最初对系统的需求分析做的不透彻,导致后续设计工作乃至编码时的修改工作量变大。
尤其,越接近结束,就越是时常出现问题。
所以,通过这次课程设计我深刻体会到软件工程还是必须学精通点、学透彻点。
通过这次课程设计,我学会了如何对所学课程综合运用,巩固了软件工程的一般规范,对数据库的使用也有了更进一步了解。
总体来说,课程设计让我学了不少知识。
我认为课程设计是我们学习生涯中相当重要的一课,除了验证学生的学习成果外,也是训练一个人独立思考及解决问题的能力.在这里,我要感谢指导老师和同学在这次课程设计中对我的帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火车票 管理 系统