基于Java SSM框架实现列车火车高铁票务信息管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现列车火车高铁票务信息管理系统演示

摘要

21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。

论文主要是对列车票务信息管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对列车票务信息管理系统进行了一些具体测试。

本文以jsp为开发技术,实现了一个列车票务信息管理系统。列车票务信息管理系统的主要使用者分为管理员;个人中心、用户管理、车票信息管理、购票指南管理、管理员管理、论坛管理、我的收藏管理、系统管理、订单管理,前台首页;首页、车票信息、购票指南、我的收藏管理、论坛信息、我的、跳转到后台、购物车、客服,用户;个人中心、车票信息管理、购票指南管理、论坛管理、我的收藏管理、订单管理等功能。通过这些功能模块的设计,基本上实现了整个列车票务信息管理系统的过程。

具体在系统设计上,采用了B/S的结构,同时,也使用jsp技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的列车票务信息管理系统。

关键词 :列车票务信息管理系统;jsp技术;Mysql数据库;B/S结构

课题背景及意义

网络的快速发展从根本上更改了世界各组织的管理方式,自二十世纪九十年代开始,我国的政府、企事业等单位就设想可以通过互联网系统来进行管理信息。由于以前存在各方面的原因,比如网络普及度低、用户不接受、互联网的相关法律法规也不够完善、开发技术也不够成熟等,阻碍了互联网在各大机构中的发展速度。进入二十一世纪以后,我国经济有了快速的发展,限制机构管理的各个难题逐一被解决,国内各大机构都加入到了电子信息化的管理模式中来。

以往的列车票务信息管理系统相关信息管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,社会也已经深刻的认识,计算机功能非常的强大,计算机已经进入了人类社会发展的各个领域,并且发挥着十分重要的作用。本系统利用网络沟通、计算机信息存储管理,有着与传统的方式所无法替代的优点。比如计算检索速度特别快、可靠性特别高、存储容量特别大、保密性特别好、可保存时间特别长、成本特别低等。在工作效率上,能够得到极大地提高,延伸至服务水平也会有好的收获,有了网络,在线列车票务信息管理系统的各方面的管理更加科学和系统,更加规范和简便。

国内外研究现状

随着计算机网络的不断渗透,人们的生活与工作、学习的方式也在慢慢发生变化。传统的用户相关信息管理方式一般都采取人工的方式,信息的获取、整理、修改、存储等工作还停留在人工阶段。这种方式一方面需要花费大量的人力、物力和金钱,交互起来比较困难,而且会浪费时间;另一方面对用户等信息的管理,特别是随着用户数量的递增,查询、修改起来特别困难;最后由于用户等其他信息的不断增加,信息的存储也成为了难题。

一些发达国家,网络发展比较快,已经很大程度上完成了从人工到计算机管理的转变。我国计算机应用起步比较晚,而且发展区域不平衡,还有很多地区或单位使用传统的方式进行管理,但是目前计算机发展较快,包括网络也已经普及,很多单位和用户也开始慢慢接触网络管理系统。纵观这些系统主要有以下几个特点:

(1)先进性:实现网络化管理。

(2)通用性:同一行业基本都能使用。

(3)方便性:通过网络就能完成管理工作。

(4)及时性:信息更新及时。

(5)可扩展性:可根据需要进行模块的增加。

(6)安全性:对单位、用户等信息进行加密。

截至如今,互联网已经深入人们的生活,智能手机、笔记本电脑等已经是人们获取信息的主要工具,这是一个沟通无限的时代,因此,利用网络来进行在线列车票务信息管理系统的管理也成为大势所趋,所以,开发一个列车票务信息管理系统是必须的。

系统结构设计

系统架构图属于系统设计阶段,系统架构图只是这个阶段一个产物,系统的总体架构决定了整个系统的模式,是系统的基础。列车票务信息管理系统的整体结构设计如图4-2所示。

系统页展示

列车票务信息管理系统,在系统首页可以查看首页、车票信息、购票指南、我的收藏管理、论坛信息、我的、跳转到后台、购物车、客服等内容,如图5-1所示。

在车票信息页面通过填写车票编号、列车名称、类型、出发地、目的地、出发时间、抵达时间、相关图片、价格等信息进行添加到购物车、立即购买操作,如图5-4所示。

用户管理,在用户管理页面中可以通过填写个人账号、密码、姓名、性别、身份证号码、手机号码、相片、余额等内容进行修改、删除,如图5-6所示。

还可以根据需要对车票信息管理进行详情,修改等详细操作,如图5-7所示。

论坛管理,在论坛管理页面中可以查看帖子标题、帖子内容、父节点id、用户id、用户名、状态等信息,并且根据需要对已有论坛管理进行查看删除等其他详细操作,如图5-13所示。

如需要可扫取文章下方二维码联系得源码

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
     目录 第一章 列车车次管理系统需求分析 2 1.1 需求分析和概述 2 1.2 系统分析 2 第二章 数据库的设计 4 2.1 E-R图 4 2.2 表的结构说明 4 第三章 前台主界面的设计 5 3.1主界面概述 5 3.2前台主界面的实现 5 3.3数据库的连接 8 3.4界面事件监听 8 附录 14 第一章 列车车次管理系统需求分析 1.1 需求分析和概述    中国地域辽阔,铁路线纵横繁多,给人们的出行带来了极大的方便,但随着火车站客流量的不断增长,越来越多的弊端暴露在人们面前,如:    火车查询效率低下    浪费乘客大量时间    浪费大量人力资源 在这样的情景下更需要良好的系统来管理列车的时间及列车所到车站。      本系统对于指定的列车车次,可以对它的出发时间、到站时间、途经车站等进行添加、修改和删除。 1.2 系统分析 本系统是针对管理员对列车车次的管理的开发的,其主要功能是:   1)增加、修改、删除一个列车车次信息。   2)按条件显示车次信息(条件有按车次、出发时间、到站时间、途经车站等)。       系统结构图如下 第二章 数据库的设计 2.1 E-R图   这一设计阶段是在系统功能结构图的基础上进行的,设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。根据以上的分析设计结果,得到列车实体。下面来介绍车次实体的E-R图。 列车实体包括:车次,出发时间,结束时间,途径车站。E-R图如图2.1.1所示。    2.2 表的结构说明   在本系统中,。train数据表中保存婴儿出生信息,该表的结构如下表 表2.2.1 train表结构 字段名 信息说明 类型 最大字符数 备注 number 列车车次 char 4 主键 starttime 出发时间 char 10 允许为空 endtime 到站时间 char 10 允许为空 via 途经车站 char 10 允许为空 第三章 前台主界面的设计 3.1主界面概述   界面是用户与程序进行交互的接口,用户可以从界面中查看程序显示给用户的信息,程序可以从界面中获取用户输入的数据。通常用户不会去关心程序的界面是如何实现的,更多的会在意界面中提供的信息、功能及界面的布局是否合理。所以在进行界面设计时,不仅要从程序开发的角度上分析,还要考虑到界面的美观及布局。   本系统前台主界面的运行效果如图4.1所示。    前台主界面效果图 3.2前台主界面的实现 为了方便的实现查询功能,在jtable里面显示数据库信息,主界面里自定义了CreateTable类。 class CreateTable{ public Vector vector = null; public AbstractTableModel tm = null; public JScrollPane scroll; public String[] title;//表格表头 public CreateTable(String[] head) { JTable table; title=(String[])head.clone(); vector = new Vector(); tm = new AbstractTableModel() { //通过重写table来定义自己的表格模式 public int getColumnCount() { return title.length; } public int getRowCount() { return vector.size(); } public Object getValueAt(int row, int column) { if (!vector.isEmpty()) { return ((Vector) vector.elementAt(row)).elementAt(column); } else { return null; } } public void setValueAt(Object value, int row, int column) { } public String getColumnName(int column) { return title[column]; } public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } public boolean isCellEditable(int row, int column) { return false; } }; table = new JTable(tm); scroll = new JScrollPane(table); } } 主界面代码如下class Train extends JFrame implements ActionListener{ public JTextField jt_num,jt_stt,jt_ent,jt_pas; public JButton jb_seh,jb_add,jb_rec,jb_del; Train(){ super("列车车次管理系统"); String[] cond={"车次","出发时间","到站时间","途径车站"}; Object[][] data=new Object[4][4]; JLabel jl_num=new JLabel("车次"); JLabel jl_stt=new JLabel("出发时间"); JLabel jl_ent=new JLabel("到站时间"); JLabel jl_pas=new JLabel("途经车站"); jt_num=new JTextField(6); jt_stt=new JTextField(10); jt_ent=new JTextField(10); jt_pas=new JTextField(20); jb_seh=new JButton("查询"); jb_seh.addActionListener(this); jb_add=new JButton("添加"); jb_add.addActionListener(this); jb_rec=new JButton("修改"); jb_rec.addActionListener(this); jb_del=new JButton("删除"); jb_del.addActionListener(this); CreateTable table=new CreateTable(cond); JPanel jp1=new JPanel(); JPanel jp2=new JPanel(); JPanel jp3=new JPanel(); JPanel jp4=new JPanel(); jp1.add(jl_num); jp1.add(jt_num); jp1.add(jl_stt); jp1.add(jt_stt); jp2.add(jl_ent); jp2.add(jt_ent); jp2.add(jl_pas); jp2.add(jt_pas); jp3.add(jb_seh); jp3.add(jb_add); jp3.add(jb_rec); jp3.add(jb_del); jp4.add(table.scroll); setLayout(new GridLayout(4,1)); this.add(jp1); this.add(jp2); this.add(jp3); this.add(jp4); setResizable(false); } } 3.3数据库的连接 数据库的连接有DBConnect类实现提代码如下 import java.sql.*; public class DBConnect { public static Connection getConn() throws Exception{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); return DriverManager.getConnection("jdbc:odbc:123",""); } } 3.4界面事件监听 在前台中,每个按钮都有库的操作的事件。当用户想要增或删除时,点击按钮,而系统会对这些按钮进行监听,并做相应的处理,其实现代码如下: public void actionPerformed(ActionEvent e){ if(e.getSource()==jb_add){ num=jt_num.getText(); stt=jt_stt.getText(); ent=jt_ent.getText(); pas=jt_pas.getText(); try { con = DBConnect.getConn(); st= con.createStatement(); st.executeUpdate("insert into Train values('"+num+"','"+stt+"','"+ent+"','"+pas+"')"); jt_num.setText(""); jt_stt.setText(""); jt_ent.setText(""); jt_pas.setText(""); JOptionPane.showMessageDialog(this, "添加成功!"); }catch(SQLException ae){ while (ae != null) { JOptionPane.showMessageDialog(this, "ERROR" ); ae = ae.getNextException(); } }catch(Exception ex){ ex.printStackTrace(); }finally { try { if (st != null) { st.close(); } if (con != null) { con.close(); } } catch (SQLException t) { JOptionPane.showMessageDialog(this, "ERROR:" + "----- SQLException -----\r\n" ); } } } if(e.getSource()==jb_del){ num= jt_num.getText(); if (JOptionPane.showConfirmDialog(this, "确认要删除吗?") == JOptionPane.YES_OPTION) { try { Connection con = DBConnect.getConn(); Statement st = con.createStatement(); st.executeUpdate("delete from Train where number='"+ num + "'"); JOptionPane.showMessageDialog(this, "已删除!"); jt_num.setText(""); }catch(SQLException ae){ while (ae!= null) { JOptionPane.showMessageDialog(this, "ERROR" ); ae = ae.getNextException(); } }catch(Exception ex){ ex.printStackTrace(); }finally { try { if (st != null) { st.close(); } if (con != null) { con.close(); } } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "ERROR"); } } } } if(e.getSource()==jb_rec){ num=jt_num.getText(); stt=jt_stt.getText(); ent=jt_ent.getText(); pas=jt_pas.getText(); try { Connection con = DBConnect.getConn(); Statement st = con.createStatement(); st.executeUpdate("update Train set starttime='"+stt+"',endtime='"+ent+"',via='"+pas+"' where number='"+num+"'"); jt_num.setText(""); jt_stt.setText(""); jt_ent.setText(""); jt_pas.setText(""); JOptionPane.showMessageDialog(this, "修改成功!"); }catch (SQLException ex) { while (ex != null) { JOptionPane.showMessageDialog(this, "ERROR"); ex = ex.getNextException(); } } catch (Exception ex) { ex.printStackTrace(); } finally { try { if (st != null) { st.close(); } if (con != null) { con.close(); } } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "ERROR" ); } } } if(e.getSource()==jb_seh){ num=jt_num.getText(); try { Connection con = DBConnect.getConn(); Statement st = con.createStatement(); ResultSet rst = null; rst=st.executeQuery("select * from Train where number='"+num+"'"); if (rst.next() == false) { JOptionPane.showMessageDialog(this, "找不到该列车"); }else{ ResultSet rs=st.executeQuery("select * from Train where number='"+num+"'"); jt_num.setText(""); table.vector.removeAllElements(); table.tm.fireTableStructureChanged(); while (rs.next()) { Vector vector=new Vector(); vector.addElement(rs.getString(1)); vector.addElement(rs.getString(2)); vector.addElement(rs.getString(3)); vector.addElement(rs.getString(4)); table.vector.addElement(vector); } table.tm.fireTableStructureChanged(); } }catch (SQLException ex) { while (ex != null) { JOptionPane.showMessageDialog(this, "ERROR" ); ex = ex.getNextException(); } } catch (Exception ex) { ex.printStackTrace(); } finally { try { if (st != null) { st.close(); } if (con != null) { con.close(); } } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "ERROR:" + "----- SQLException -----\r\n"); } } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值