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