火车票管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库原理及应用
课程设计报告
题目:火车票售票系统
所在学院:信息工程学院
班级:
学号:
姓名:
指导教师:
2013年1月3日
1
目录
一、概述 -------------------------------------- 3
二、需求分析 ---------------------------------- 3
三、概念设计 ---------------------------------- 5
四、逻辑设计 ---------------------------------- 7
五、系统实现 ---------------------------------- 9
六、小结 ------------------------------------- 14
2
一、概述
数据库技术是20世纪60年代末在文件系统基础上发展起来的数据管理新技术,它解
决了过去对数据管理和组织中存在的数据冗余和独立性问题,实现了数据的共享性、完整性、安全性、有效性目标。

数据库技术的发展和广泛使用,为人类社会进入信息化社会奠定了坚实的基础。

随着社会和经济不断的发展,数据和信息也随之快速增长起来,为有效地组织和管理庞大的数据和信息,严密科学合理的数据管理技术也就成为迫切的技术问题
之一。

3
现在人们更多的使用火车作为出行交通工具,因此车票票务市场也在快速发展。

人们
希望车票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的车票表现出极大的关注。

随着社会的不断进步,国内外铁路运输事业的飞速发展,各国铁路运营部门对票务管理的要求也在不断的提高,本系统就是针对这种日益增长的需求而进行开发的。

随着旅游业的逐渐的成熟发达,铁路客运量大幅度的提高,国内旅游专线的增加,这些都对铁路的售票管理系统提出了更高的要求,所以要不断的完善更新铁路售票系统,提高铁路售票系统的工作效率。

铁路运输系统中,售票系统是很重要的一个环节,要想提高整个铁路运营部门的工作效率,就要先提高售票系统的工作效率和安全性,故而研发此系统,此系统能够为售票工作提供方便快捷的售票服务,广大的客户可以得到更好的票务服务。

二、需求分析
1.系统功能需求分析
随着我国市场经济的快速发展和信息化水平的不断提高,如何利用先进的管理手段,
提高火车售票管理系统的水平,是当今社会所面临的一个课题。

提高企业的管理水平,必
4
须全方位地提高企业的管理意识。

只有高标准、高质量的管理才能满足铁路的发展需求。

面对信息时代的挑战,利用高科技手段来提火车售票管理系统无疑是一条行之有效的途径。

在某种意义上,信息与科技在企业管理与现代化建设中显现出越来越重要的地位。

火车售票管理系统方面的信息化与科学化,已成为现代化生活水平步入高台阶的重要标志。

本系统开发简单但要耗去一定的时间,所用的开发工具和软件都差不多是免费的。

而且,由于系统能够在未来较长的一段时期内稳定地发挥作用,这对于铁路售票自动化管理,节省人力、物力资源等都有很大的帮助。

由此可见,开发此系统在经济上是完全可行的本系统的。

本系统包含用户子系统和管理员子系统两个子系统,每个子系统包换了若干子功能模块,每个子功能模块完成相应的处理操作功能。

其中管理员的权限是大于用户的。

基本设计流程如下图所示:
5
2.数据需求分析
2.1静态数据
6
火车票:列车车号
列车始发时间
列车始发站
列车终点站
票务:列车车号
已售出车票票数
售票员:用户名
密码
2.2动态数据
输入数据:根据界面提示,键盘输入操作;
查询方式:查询车次、查询始发站;
三、概念设计
根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间
的关系,为后面的逻辑结构设计打下基础。

在火车票售票管理系统当中包括了以上几个ER
7
模型向关系模型的转换:用户信息表,车票信息表,购票车表。

车次信息(E-R图):
8
●用户信息(E-R图):
●订单信息(E-R图):
9
整体E-R图:
10
四、逻辑设计
数据库逻辑结构设计就是把E-R图转化成数据库所能接受的结构模型,也就是关系表。

根据高校毕业生就业管理系统的功能要求,该数据库逻辑模型由以下表组成:
1、用户表(user)
创建user表:
create table user (user_name varchar (8)not null primary
key,
id_number Varchar (16) not null,
password int(8)
);
2、车次信息表(train_table)
创建train_table表:
create table train_table(startTime Varchar(20)not null,
endTime Varchar(20)not null,
starter Varchar (50) not null,
reacher Varchar (50) not null,
ticketNumbe Varchar (20)not null primary
key,
price double(20)not null,
tid Int(50)
seatIdNumber Varchar (10) not null,
busDate Varchar (20) not null,
);
3、订单信息(order)
创建order表:
create table order(tid Date(20)not null,
id_number varchar (16) not null,
trainsum Int(100)not null,);
五、系统实现
用户登录及访问权限
本系统设计要求用户通过登录框选择访问权限,登录系统。

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

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

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

系统用户输入错误的用户名或身份证号,系统拒绝其访问。

实现功能的部分代码:
public class EnterFrame extends JFrame {
private String str;
/**
*
*/
private static final long serialVersionUID = 1L;
JTextField field1 = new JTextField(12);
JPasswordField jpField = new JPasswordField(12);
JTextField field = new JTextField(9);
JTextField birthIdField = new JTextField(12);
JLabel lab2 = null;
private String USER = null;
public static String ID = null;
public static String password = null;
String s[] = new String[] { "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" };
public EnterFrame() {
Border border = BorderFactory.createBevelBorder(BevelBorder.RAISED); Border border2 = BorderFactory.createBevelBorder(BevelBorder.LOWERED);
JPanel pan5 = new JPanel();
JLabel lab = new JLabel();
Font font = new Font("", Font.ITALIC, 30);
lab.setText("欢迎登陆火车售票系统");
lab.setForeground(Color.BLUE);
lab.setFont(font);
pan5.add(lab);
JPanel pn1 = new JPanel();
JLabel label1 = new JLabel("姓名:");
label1.setFont(new Font("", Font.PLAIN, 20));
pn1.add(label1);
field1.setBorder(border2);
pn1.add(field1);
JPanel pn6 = new JPanel();
JLabel label = new JLabel("身份证号:"); label.setFont(new Font("", Font.PLAIN, 20)); birthIdField.setBorder(border2);
label1.setFont(new Font("", Font.PLAIN, 20)); pn6.add(label);
birthIdField.setBorder(border2);
pn6.add(birthIdField);
JPanel pn2 = new JPanel();
JLabel label2 = new JLabel("密码:"); label2.setFont(new Font("", Font.PLAIN, 20));
jpField.setEchoChar('*');
jpField.setBorder(border2);
pn2.add(label2);
pn2.add(jpField);
JPanel pan3 = new JPanel();
JLabel lab1 = new JLabel("验证码: "); lab1.setFont(new Font("", Font.PLAIN, 20)); str = yanzheng();
lab2 = new JLabel(str);
pan3.add(lab1);
field.setBorder(border2);
pan3.add(field);
pan3.add(lab2);
JPanel pan4 = new JPanel();
JButton button1 = new JButton("登录");
button1.setBorder(border);
button1.setPreferredSize(new Dimension(80, 35));
车次信息查询
对车次信息的查询,系统提供了车次信息,进行精确的查询,系统经过检索,返回符合用户要求的车次,再由用户自行选择满意的车次。

实现功能的部分代码:
private void idSelect() throws SQLException {
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:ORCL", "store", "store"); Statement stmt = conn.createStatement();
String text = "select * from train_table where ticketNumber='"
+ trainField.getText() + "'";
ResultSet ticket = stmt.executeQuery(text);
while (ticket.next()) {
int tid = ticket.getInt("tid");
String starter = ticket.getString("starter");
String reacher = ticket.getString("reacher");
String ticketNumber = ticket.getString("ticketNumber"); String startTime = ticket.getString("startTime");
String endTime = ticket.getString("endTime");
String seatIdNumber = ticket.getString("seatIdNumber"); String busDate = ticket.getString("busDate");
int ticketNum = ticket.getInt("ticketNum");
double price = 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(new TestFrame(), "无此车!");
}
ticket.close();
stmt.close();
conn.close();
}
}
退票
系统进入点击退票按钮进行退票,系统返回退票信息。

实现功能的部分代码:
class pane2 extends JPanel {
JLabel l1 = new JLabel(" 身份证号码"); JLabel l2 = new JLabel(" 车票号码"); JLabel l3 = new JLabel(" 身份证号码"); JLabel l4 = new JLabel(" 密码");
JLabel la1 = new JLabel(" ");
JLabel la2 = new JLabel(" ");
JButton orderCheckButton = new JButton("订单查询");
JButton exitButton = new JButton("确认退票");
JPanel pan1 = new JPanel();
JPanel pan3 = new JPanel();
public pane2() {
exitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
are.setText(" ");
UpdateTrain();
}
});
售票
系统通过售票员输入的车次、始末站等信息进行售票。

实现功能的部分代码:
class pan3 extends JPanel {
JLabel lId = new JLabel(" 车票号码");
JLabel ltid = new JLabel(" 车票号码");
JLabel che = new JLabel(" 车次");
JLabel lbodyId = new JLabel(" 身份证号");
JLabel password = new JLabel(" 密码");
JLabel lzhangshu = new JLabel(" 所需张数");
JLabel la1 = new JLabel(" ");
JLabel la2 = new JLabel(" ");
JButton sureButton = new JButton("查询确认");
JButton buyButton = new JButton("确认购票");
六、小结
二十一世纪是一个高速、快捷的年代。

在这个高速发展的年代里,速度成了我们追求的目标;二是提高工作效率;三是降低成本。

因此,办公自动化的高速度、高效率、高便
捷、低成本便成了我们的目的,为此开发了这个火车站网上订票系统。

本系统可以大大简化退票、订票、查询等十分繁琐的工作,简化办公环节,提高工作效率,而且易学、易用,满足客户需求。

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

在老师和同学的帮助下,我把以往所学的软件工程、数据库知识结合起来,利用java开发工具,加上SQL Server数据库系统,完成了本次课程设计,尽量使它能满足各个方面的要求。

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

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

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

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

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

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

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

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

相关文档
最新文档