航空票务系统的系统的实现
- 格式:doc
- 大小:677.50 KB
- 文档页数:22
三、系统的实现在航空电子综合票务管理系统中,用到了许多Java技术,如JavaSwing中的各种组件、JDBC、Java多线程、Java多维数组等技术。
(一) 航空电子票务管理主界面的实现航空电子票务管理类FlightAppFrame实现系统的启动、初始化、提供操作菜单等功能。
在该类中创建查询对象、定票管理类的实例对象、退票管理类的实例对象和航班管理类的实例对象,程序的主面如图3所示。
应用程序主界面FlightAppFrame类的程序实现部分代码如下所示。
package com.javapp.ch18;……/*** Description:航空电子票务管理类* @version 1.0,jdk1.6* @Date 2011-1-28*/class FlightAppFrame extends JPanel implements ActionListener {private Query query;private Refundticket tuiPiao;private TickManager dingPiao;private JButton jbQuery = new JButton("航班信息查询");private JButton jbManager = new JButton("航班信息管理");private JButton jbDingPiao = new JButton("客户订票管理");private JButton jbTuiPiao = new JButton("客户退票管理");private JButton FindClient = new JButton("查询己订票客户信息");ImageIcon log = new ImageIcon(this.getClass().getResource("MA60.jpg"));JLabel jLabel2 = new JLabel();public FlightAppFrame() {//初始化UI组件}public void actionPerformed(ActionEvent e) {//控制查看面板是否可见按钮命令if (e.getSource() == jbQuery) {query = new Query();query.pack();query.setTitle("航班查询系统");query.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);query.setVisible(true);}else if (e.getSource() == jbManager) {FlightManager insertPanel = new FlightManager();insertPanel.pack();insertPanel.setResizable(false);insertPanel.setTitle("航班信息管理");insertPanel.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);insertPanel.setVisible(true);}else if (e.getSource() == jbDingPiao) {dingPiao = new TickManager();dingPiao.pack();dingPiao.setResizable(false);dingPiao.setTitle("电子机票预定管理");dingPiao.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);dingPiao.setVisible(true);}else if (e.getSource() == jbTuiPiao) {tuiPiao = new Refundticket();tuiPiao.pack();tuiPiao.setResizable(false);tuiPiao.setTitle("电子机票退票系统");tuiPiao.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);tuiPiao.setVisible(true);}else if (e.getSource() == FindClient) {FrameTable frame = new FrameTable();frame.pack();frame.setVisible(true);}}}在上面程序中,通过按钮的ActionEvent事件的getSource()方法来判断按钮名称,getSource()返回的按钮名称,然后在按钮事件中处理用户的请求。
用于实现系统启动的主程序类实现部分代码如下所示。
package com.javapp.ch18;……public class Main extends JFrame{private UpdateComboBox update;private FlightAppFrame jiemian;public Main(){update = new UpdateComboBox();jiemian = new FlightAppFrame();this.getContentPane().add(jiemian);}public static void main(String args[]){Main frame = new Main();frame.setSize(690,400);frame.setResizable(true);frame.setTitle("航空电子票务综合管理系统");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}(二)数据库连接类的实现数据库连接类用于管理数据库连接和SOL语句的执行,在系统所有的类中通过调用该类实现数据库的操作,程序实现部分代码如下。
package com.javapp.ch18;……/*** Description:数据库连接类* @version 1.0,jdk1.6*/public class DataBaseManager {private Connection conn = null;private ResultSet rs = null;// 连接数据库public Connection getDb() {String driver = "sun.jdbc.odbc.JdbcOdbcDriver";String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+this.getClass().getResource("./").getPath().substring(1)+ "/flight.mdb";try {Class.forName(driver);conn = DriverManager.getConnection(url, "", "");} catch (SQLException ex1) {ex1.printStackTrace();} catch (ClassNotFoundException ex) {ex.printStackTrace();}return conn;}// 查询数据public ResultSet executeQuery(String sql) {rs = null;try {conn = getDb();Statement stmt = conn.createStatement();rs = stmt.executeQuery(sql);} catch (SQLException ex) {ex.printStackTrace();}return rs;}// 添加数据public int executeInsert(String sql) {int num = 0;try {conn = getDb();Statement stmt = conn.createStatement();num = stmt.executeUpdate(sql);} catch (SQLException ex) {ex.printStackTrace();}return num;}// 删除数据public int executeDelete(String sql) {int num = 0;try {conn = getDb();Statement stmt = conn.createStatement();num = stmt.executeUpdate(sql);} catch (SQLException e) {e.printStackTrace();}return num;}//更新数据public int executeUpdate(String sql) {int num = 0;try {conn = getDb();Statement stmt = conn.createStatement();num = stmt.executeUpdate(sql);} catch (SQLException e) {e.printStackTrace();}return num;}// 关闭连接public void CloseDataBase() {try {conn.close();} catch (Exception e) {e.printStackTrace();}}}在上面的程序中,提供了获得数据库连接方法以供各模块调用,并对系统中的通用数据库操作进行了封装,如提供关闭连接方法CloseDataBase,查询数据方法executeQuery(),添加数据方法executelnsert(),删除数据方法executeDelete(),更新数据方法executeUpdate()。
3.5航班管理类用户可通过航班信息管理模块录入航班信息,如航班号、航空公司、班期、座位、起飞地、抵达地、起飞时间、抵达时间、票价、拆扣等信息。