基于java+mysql的swing+mysql火车票售票管理系统(java+swing+mysql+gui)

基于java+mysql的swing+mysql火车票售票管理系统(java+swing+mysql+gui)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

管理员管理车票和用户、用户购买车票等

技术框架

Java Swing MySQL

基于java+mysql的Swing+MySQL火车票售票管理系统(java+swing+mysql+gui)

                }
            }
        });
    }

    public void loadData() throws SQLException {
        // 清除旧的数据
        model.getDataVector().clear();
        ticketDao = new TicketImpl();
        Inqurie_sg iqs = new Inqurie_sg();
        List<Ticket> list = ticketDao.quetida(iqs.getStation_arrival00(), iqs.getStation_depart00(), iqs.getDepart_date00());
        // 遍历每一条数据,添加到model中
        for (Ticket ticket : list) {
            // 添加 行数据
            //	cob.setSelectedItem(new Tickettype(ticket.getTicketid()));
            model.addRow(new Object[]{ticket.getTicketid(), ticket.getStation_arrival(), ticket.getStation_depart(),
                    ticket.getDepart_date(), ticket.getDepart_time(), ticket.getTicket_number(), ticket.getSeattypeid(),
                    ticket.getTickettypeid(), ticket.getTickets_left(), ticket.getFares(),
                    ticket.getTicket_office()
            });
        }
    }

    /**
     * 购票方法
     *
     * @throws Exception
     */
    public void buy() throws Exception {
        if (table.getSelectedRowCount() <= 0) {
            JOptionPane.showMessageDialog(null, "请选择要购买的车票");
            return;
        }
        System.out.println(table.getSelectedColumn());
        int result = JOptionPane.showConfirmDialog(null, "是否确定要购买该车票");
        // 判断用户是否点击
        if (result == JOptionPane.OK_OPTION) {
            int ticketidd = Integer.valueOf(table.getValueAt(
                    table.getSelectedRow(), 0).toString());

            Userlogin_db dg = new Userlogin_db();
            int usd = dg.getUseridDl();
            System.out.println(usd + "");
            System.out.println(ticketidd + "()()()()(" + usd);
            userticketdao = new UserTicketImpl();
            userdao = new UserDaoImpl();
            ticketim = new TicketImpl();
            int blance = userdao.selectbl(usd);
            int yuan = ticketim.fares(ticketidd);

                int ticketid = ticket.getTicketid();
                String station_arrival = txtstation_arrival.getText();
                String station_depart = txtstation_depart.getText();
                String depart_date = txtdepart_date.getText();
                String depart_time = txtdepart_time.getText();
                String ticket_number0 = txtticket_number.getText();
                int ticket_number = Integer.parseInt(ticket_number0);
                Seattype seattype = (Seattype) cmbseattype.getSelectedItem();
                String seattypeid = String.valueOf(seattype.getSeattypename()).toString();
                Tickettype tickettype = (Tickettype) cmbtickettype.getSelectedItem();
                String tickettypeid = String.valueOf(tickettype);
                String tickets_left0 = txttickets_left.getText();
                int tickets_left = Integer.parseInt(tickets_left0);
                String fares = txtfares.getText();
                String ticket_office = txtticket_office.getText();
                Ticket ticket = new Ticket(ticketid, station_arrival, station_depart,
                        depart_date, depart_time, ticket_number, seattypeid,
                        tickettypeid, tickets_left, fares, ticket_office);

                boolean flag;
                try {

                    flag = ticketDao.update(ticket);
                    if (flag) {
                        JOptionPane.showMessageDialog(null, "修改成功");
                        dispose();

                    } else {
                        JOptionPane.showMessageDialog(null, "修改失败");
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
        });
        btnNewButton.setBounds(320, 480, 146, 23);
        add(btnNewButton);

    }
}
            int ticketid0 = rs.getInt(1);
            String station_arrival = rs.getString(2);
            String station_depart = rs.getString(3);
            String depart_date = rs.getString(4);
            String depart_time = rs.getString(5);
            int ticket_number = (rs.getInt(6));
            String seattypeid = rs.getString(7);
            String tickettypeid = rs.getString(8);
            int tickets_left = rs.getInt(9);
            String fares = rs.getString(10);
            String ticket_office = rs.getString(11);
            Ticket ticket2 = new Ticket(ticketid0, station_arrival,
                    station_depart, depart_date, depart_time, ticket_number,
                    seattypeid, tickettypeid, tickets_left, fares, ticket_office);
            ticket.add(ticket2);
        }
        Util.closeAll(con, stmt, rs);
        return ticket;
    }

    @Override
    public List<Ticket> queryAll() throws SQLException {
        Connection con = Util.getConnection();
        String sqladd = "select * from ticket ";
        PreparedStatement stmt = con.prepareStatement(sqladd);
        ResultSet rs = stmt.executeQuery();
        List<Ticket> ticket = new ArrayList<>();
        while (rs.next()) {
            int ticketid0 = rs.getInt(1);
            String station_arrival = rs.getString(2);
            String station_depart = rs.getString(3);
            String depart_date = rs.getString(4);
            String depart_time = rs.getString(5);
            int ticket_number = (rs.getInt(6));
            String seattypeid = rs.getString(7);
            String tickettypeid = rs.getString(8);
            int tickets_left = rs.getInt(9);
            String fares = rs.getString(10);
            String ticket_office = rs.getString(11);
            Ticket ticket2 = new Ticket(ticketid0, station_arrival,
                    station_depart, depart_date, depart_time, ticket_number,
                    seattypeid, tickettypeid, tickets_left, fares, ticket_office);
            ticket.add(ticket2);
        }
        Util.closeAll(con, stmt, rs);
        return ticket;
    }

    @Override
            System.out.println(blance + "***" + yuan);
            if (blance >= yuan) {
                boolean falll = userdao.reduBlance(usd, yuan);
                boolean fal = userticketdao.SelectUidTid(ticketidd, usd);
                boolean fall = userticketdao.Left(ticketidd);
                System.out.println(fal + "23421434234" + fall);
                if (falll) {
                    if (fall) {
                        if (fal) {
                            boolean falg = userticketdao.buyTicket(ticketidd, usd);
                            boolean flag1 = userticketdao.buyTicketb(ticketidd, usd);
                            JOptionPane.showMessageDialog(null, "购买成功!");
                            System.out.println(falg + "1" + flag1);
                            System.out.println(usd);
                            System.out.println(ticketidd);
                            System.out.println();
                        } else {
                            JOptionPane.showMessageDialog(null, "您不能重复购买该票!");
                        }
                    } else {
                        JOptionPane.showMessageDialog(null, "该票已经售罄!");
                    }
                } else {
                    JOptionPane.showMessageDialog(null, "购买失败!");
                }

            } else {
                JOptionPane.showMessageDialog(null, "余额不足!");
            }
            try {
                loadData();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
	
package dao.Impl;

public class TicketImpl implements TickeDao {
            JOptionPane.showMessageDialog(null, "请选择要退的票");
            return;
        }
        int result = JOptionPane.showConfirmDialog(null, "是否确定退掉该票");
        // 判断用户是否点击
        if (result == JOptionPane.OK_OPTION) {
            int userticketid = Integer.valueOf(table.getValueAt(
                    table.getSelectedRow(), 0).toString());
            int userticketuserid = Integer.valueOf(table.getValueAt(
                    table.getSelectedRow(), 2).toString());
            int userticketticketid = Integer.valueOf(table.getValueAt(
                    table.getSelectedRow(), 1).toString());
            usertickrtdao = new UserTicketImpl();
            userdao = new UserDaoImpl();
            ticketdao = new TicketImpl();
            usertickrtdao.fundTicket(userticketid, userticketticketid);
            int yuan = ticketdao.fares(userticketticketid);
            System.out.println("票价" + yuan);
            userdao.addBlance(userticketuserid, yuan);
            try {
                loadData();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}
package auth;
/**
 * 用户注册
 */

public class Userregister_db extends JFrame implements ActionListener {

    JTextField textacc, textpass, textname, textidentity_number;
                String fares = table.getValueAt(e.getLastRow(), 9).toString();
                String ticket_office = table.getValueAt(e.getLastRow(), 10).toString();
                Ticket ticket = new Ticket(ticketid, station_arrival, station_depart,
                        depart_date, depart_time, ticket_number, seattype, tickettype,
                        tickets_left, fares, ticket_office);
                try {
                    ticketDao.update(ticket);
                } catch (SQLException e2) {
                    // TODO Auto-generated catch block
                    e2.printStackTrace();
                }
                try {
                    loadData();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
        });
    }

    public void loadData() throws SQLException {
        // 清除旧的数据
        model.getDataVector().clear();
        ticketDao = new TicketImpl();
        Inqurie_sg iqs = new Inqurie_sg();
        List<Ticket> list = ticketDao.quetida(iqs.getStation_arrival00(), iqs.getStation_depart00(), iqs.getDepart_date00());
        // 遍历每一条数据,添加到model中
        for (Ticket ticket : list) {
            // 添加 行数据
            //	cob.setSelectedItem(new Tickettype(ticket.getTicketid()));
            model.addRow(new Object[]{ticket.getTicketid(), ticket.getStation_arrival(), ticket.getStation_depart(),
                    ticket.getDepart_date(), ticket.getDepart_time(), ticket.getTicket_number(), ticket.getSeattypeid(),
                    ticket.getTickettypeid(), ticket.getTickets_left(), ticket.getFares(),
                    ticket.getTicket_office()
            });
        }
    }

    /**
     * 购票方法
     *
     * @throws Exception
     */
    public void buy() throws Exception {
                Ticket ticket = new Ticket(ticketid, station_arrival, station_depart,
                        depart_date, depart_time, ticket_number, seattypeid,
                        tickettypeid, tickets_left, fares, ticket_office);

                boolean flag;
                try {

                    flag = ticketDao.update(ticket);
                    if (flag) {
                        JOptionPane.showMessageDialog(null, "修改成功");
                        dispose();

                    } else {
                        JOptionPane.showMessageDialog(null, "修改失败");
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
        });
        btnNewButton.setBounds(320, 480, 146, 23);
        add(btnNewButton);

    }
}
package ui;
/**
 * 添加车票
 */

 * 添加用户
 */

public class AddUser extends JPanel {
    private JTextField txtname;
    private JTextField txtidentity_number;
    private JTextField txtaccout;
    private JTextField txtPassword;
    private UserDaoImpl userDao;

    /**
     * Create the panel.
     */
    public AddUser() {
        setLayout(null);

        JLabel label = new JLabel("用户姓名:");
        label.setBounds(250, 100, 70, 23);
        add(label);

        txtname = new JTextField();
        txtname.setBounds(350, 100, 180, 23);
        add(txtname);
        txtname.setColumns(10);

        JLabel label_1 = new JLabel("证件号码");
        label_1.setBounds(250, 170, 70, 23);
        add(label_1);

        txtidentity_number = new JTextField();
        txtidentity_number.setBounds(350, 170, 180, 23);
        add(txtidentity_number);
        txtidentity_number.setColumns(10);

        JLabel label_2 = new JLabel("账号");
        label_2.setBounds(250, 240, 70, 23);
        stmt.setString(7, tickettypeid);
        stmt.setInt(8, tickets_left);
        stmt.setString(9, fares);
        stmt.setString(10, ticket_office);
        ResultSet rs = null;
        stmt.executeUpdate();
        Util.closeAll(con, stmt, rs);
        return true;
    }

    @Override
    public boolean update(Ticket ticket) throws SQLException {
        Connection con = Util.getConnection();
        String sqladd = "update ticket set station_arrival=?,station_depart=?,depart_date=?,"
                + "depart_time=?,ticket_number=?,seattypeid=?,tickettypeid=?,tickets_left=?,fares=?,"
                + "ticket_office=? where ticketid=?";
        PreparedStatement stmt = con.prepareStatement(sqladd);
        stmt.setString(1, ticket.getStation_arrival());
        stmt.setString(2, ticket.getStation_depart());
        stmt.setString(3, ticket.getDepart_date());
        stmt.setString(4, ticket.getDepart_time());
        stmt.setInt(5, ticket.getTicket_number());
        stmt.setString(6, ticket.getSeattypeid());
        stmt.setString(7, ticket.getTickettypeid());
        stmt.setInt(8, ticket.getTickets_left());
        stmt.setString(9, ticket.getFares());
        stmt.setString(10, ticket.getTicket_office());
        stmt.setInt(11, ticket.getTicketid());
        ResultSet rs = null;
        stmt.executeUpdate();
        Util.closeAll(con, stmt, rs);
        return true;
    }

    @Override
    public void delete(int ticketid) throws SQLException {
        Connection con = Util.getConnection();
        String sqladd = "delete from ticket where ticketid=?";
        PreparedStatement stmt = con.prepareStatement(sqladd);
        stmt.setInt(1, ticketid);
        ResultSet rs = null;
        stmt.executeUpdate();
        Util.closeAll(con, stmt, rs);

    }

    @Override
    public List<Ticket> QueryById(int ticketid) throws SQLException {
        Connection con = Util.getConnection();
        String sqladd = "select * from ticket where ticketid=?";
        PreparedStatement stmt = con.prepareStatement(sqladd);
        ResultSet rs = stmt.executeQuery();
        List<Ticket> ticket = new ArrayList<>();
        while (rs.next()) {
                        }
                    } else {
                        JOptionPane.showMessageDialog(null, "该票已经售罄!");
                    }
                } else {
                    JOptionPane.showMessageDialog(null, "购买失败!");
                }

            } else {
                JOptionPane.showMessageDialog(null, "余额不足!");
            }
            try {
                loadData();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
	
package dao.Impl;

public class TicketImpl implements TickeDao {

    @Override
    public boolean add(String station_arrival, String station_depart, String depart_date, String depart_time,
                       int ticket_number, String seattypeid, String tickettypeid, int tickets_left, String fares,
                       String ticket_office) throws Exception {
        Connection con = Util.getConnection();
 */

public class AddTicket extends JPanel {

    private JTextField txtstation_arrival;
    private JTextField txtstation_depart;
    private JTextField txtdepart_date;
    private JTextField txtdepart_time;
    private JTextField txtticket_number;
    private JTextField txttickets_left;
    private JTextField txtfares;
    private JTextField txtticket_office;
    private JComboBox cmbtickettype;
    private JComboBox cmbseattype;
    private TickeDao ticketDao;
    private TickeDao seatidDao;
    private TicketImpl ticketimpl;
    private TickettypeImpl tickettypeDao;
    private SeattypeImpl seattypeDao;
    private QueryUser query;

    /**
     * Create the panel.
     *
     * @param tickettypeDao
     * @throws SQLException
     */
    public AddTicket() throws SQLException {
        setLayout(null);

        JLabel label = new JLabel("到达站:");
    public int getUserticketid() {
        return userticketid;
    }

    public void setUserticketid(int userticketid) {
        this.userticketid = userticketid;
    }

    public int getUserticketuserid() {
        return userticketuserid;
    }

    public void setUserticketuserid(int userticketuserid) {
        this.userticketuserid = userticketuserid;
    }

    public int getUserticketticketid() {
        return userticketticketid;
    }

    public void setUserticketticketid(int userticketticketid) {
        this.userticketticketid = userticketticketid;
    }

    public String getUserticketname() {
        return userticketname;
    }

    public String getUserticketidentity_number() {
        return userticketidentity_number;
    }

    public void setUserticketidentity_number(String userticketidentity_number) {
        this.userticketidentity_number = userticketidentity_number;
    }

    public void setUserticketname(String userticketname) {
        this.userticketname = userticketname;
    }

    public String getUserticketstation_arrival() {
        return userticketstation_arrival;
    }

    public void setUserticketstation_arrival(String userticketstation_arrival) {
        this.userticketstation_arrival = userticketstation_arrival;
    }

    public String getUserticketstation_depart() {
        return userticketstation_depart;
    }
    }

    public void setpassField(JTextField b) {
        textpass = b;
    }

    public void setnameField(JTextField c) {
        textname = c;
    }

    public void setidentity_numberField(JTextField f) {
        textidentity_number = f;
    }

    public void setokButton(JButton b1) {
        okButton = b1;
    }

    public void setresetButton(JButton b2) {
        resetButton = b2;
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == okButton) {
            if (textacc.getText().equals(""))            //判断用户输入是否为空;
                JOptionPane.showMessageDialog(null, "请输入账号", "警告对话框", JOptionPane.WARNING_MESSAGE);
            else if (textpass.getText().equals(""))
                JOptionPane.showMessageDialog(null, "请输入密码", "警告对话框", JOptionPane.WARNING_MESSAGE);
            else if (textname.getText().equals(""))
                JOptionPane.showMessageDialog(null, "请输入姓名", "警告对话框", JOptionPane.WARNING_MESSAGE);
            else if (textidentity_number.getText().equals(""))
                JOptionPane.showMessageDialog(null, "请输入身份证号", "警告对话框", JOptionPane.WARNING_MESSAGE);
            else {
                String acc = textacc.getText();
                String pass = textpass.getText();
                String name = textname.getText();
                String identity_number = textidentity_number.getText();
                if (acc.trim().length() < 1) {
                    JOptionPane.showMessageDialog(null, "账号必须大于0位!");

        JLabel label_3 = new JLabel("密码");
        label_3.setBounds(250, 310, 70, 23);
        add(label_3);

        txtPassword = new JTextField();
        txtPassword.setBounds(350, 310, 180, 23);
        add(txtPassword);
        txtPassword.setColumns(10);

        userDao = new UserDaoImpl();

        JButton btnNewButton = new JButton("添加用户");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

                if (txtname.getText().equals("")) {    //判断用户输入是否为空;
                    JOptionPane.showMessageDialog(null, "请输入姓名", "警告对话框", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                if (txtidentity_number.getText().equals("")) {    //判断用户输入是否为空;
                    JOptionPane.showMessageDialog(null, "请输入身份证号", "警告对话框", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                if (txtaccout.getText().equals("")) {    //判断用户输入是否为空;
                    JOptionPane.showMessageDialog(null, "请输入账号", "警告对话框", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                if (txtPassword.getText().equals("")) {    //判断用户输入是否为空;
                    JOptionPane.showMessageDialog(null, "请输入密码", "警告对话框", JOptionPane.WARNING_MESSAGE);
                    return;
                }

                String name = txtname.getText();
                String identity_number = txtidentity_number.getText();
                String account = txtaccout.getText();
                String password = txtPassword.getText();
                if (account.length() < 1) {
                    JOptionPane.showMessageDialog(null, "账号必须大于0位!");
                    txtname.setText("");
    JTextField textacc, textpass, textname, textidentity_number;
    JButton okButton, resetButton;
    Statement stmt;
    ResultSet rs;
    UserDao userdao;
//	double acc;
//	String name;
//	Connection con = null;

    public void setaccountField(JTextField a) {
        textacc = a;
    }

    public void setpassField(JTextField b) {
        textpass = b;
    }

    public void setnameField(JTextField c) {
        textname = c;
    }

    public void setidentity_numberField(JTextField f) {
        textidentity_number = f;
    }

    public void setokButton(JButton b1) {
        okButton = b1;
    }

    public void setresetButton(JButton b2) {
        resetButton = b2;
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == okButton) {
            if (textacc.getText().equals(""))            //判断用户输入是否为空;
                JOptionPane.showMessageDialog(null, "请输入账号", "警告对话框", JOptionPane.WARNING_MESSAGE);
            else if (textpass.getText().equals(""))
                JOptionPane.showMessageDialog(null, "请输入密码", "警告对话框", JOptionPane.WARNING_MESSAGE);
            else if (textname.getText().equals(""))
                JOptionPane.showMessageDialog(null, "请输入姓名", "警告对话框", JOptionPane.WARNING_MESSAGE);
            else if (textidentity_number.getText().equals(""))
                JOptionPane.showMessageDialog(null, "请输入身份证号", "警告对话框", JOptionPane.WARNING_MESSAGE);
            else {
                String acc = textacc.getText();
                String pass = textpass.getText();
                String name = textname.getText();
                String identity_number = textidentity_number.getText();
                if (acc.trim().length() < 1) {
                    JOptionPane.showMessageDialog(null, "账号必须大于0位!");

                    return;
                }
    public UpdataTicket(Ticket ticket) throws SQLException {
        setLayout(null);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(500, 100, 800, 800);
        contentPane = new JPanel();

        JLabel label = new JLabel("到达站:");
        label.setBounds(280, 65, 146, 23);
        add(label);

        txtstation_arrival = new JTextField();
        txtstation_arrival.setBounds(350, 65, 146, 23);
        add(txtstation_arrival);
        txtstation_arrival.setColumns(10);
        txtstation_arrival.setText(ticket.getStation_arrival());

        JLabel label1 = new JLabel("乘车站:");
        label1.setBounds(280, 97, 146, 23);
        add(label1);

        txtstation_depart = new JTextField();
        txtstation_depart.setBounds(350, 97, 146, 23);
        add(txtstation_depart);
        txtstation_depart.setColumns(10);
        txtstation_depart.setText(ticket.getStation_depart());

        JLabel label_20 = new JLabel("发车日期:");
        label_20.setBounds(280, 130, 146, 23);
        add(label_20);

        txtdepart_date = new JTextField();
        txtdepart_date.setBounds(350, 130, 146, 23);
        add(txtdepart_date);
        txtdepart_date.setColumns(10);
        txtdepart_date.setText(ticket.getDepart_date());

        JLabel label_2 = new JLabel("发车时间:");
        label_2.setBounds(280, 162, 146, 23);
        add(label_2);

        txtdepart_time = new JTextField();
        txtdepart_time.setBounds(350, 162, 146, 23);
        add(txtdepart_time);
        txtdepart_time.setColumns(10);
        txtdepart_time.setText(ticket.getDepart_time());

        JLabel label_3 = new JLabel("车次(整数):");
        label_3.setBounds(280, 195, 146, 23);
        add(label_3);

        txtticket_number = new JTextField();
            int ticket_number = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 5).toString());
            String seattypeid = table.getValueAt(table.getSelectedRow(), 6).toString();
            String tickettypeid = table.getValueAt(table.getSelectedRow(), 7).toString();
            int tickets_left = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 8).toString());
            String fares = table.getValueAt(table.getSelectedRow(), 9).toString();
            String ticket_office = table.getValueAt(table.getSelectedRow(), 10).toString();
            Ticket ticket = new Ticket(ticketid, station_arrival, station_depart, depart_date, depart_time,
                    ticket_number, seattypeid, tickettypeid, tickets_left, fares, ticket_office);
            UpdataTicket updataticket = new UpdataTicket(ticket);
            updataticket.setVisible(true);
        }
    }

}
package ui;
/**
 * 车票信息修改
 */

public class UpdataTicket extends JFrame {
    JPanel contentPane;
    private JTextField txtstation_arrival;
    private JTextField txtstation_depart;
    private JTextField txtdepart_date;
    private JTextField txtdepart_time;
    private JTextField txtticket_number;
        table.setModel(model);
        table.setRowHeight(30);

        scrollPane.setViewportView(table);

        tickettypeDao = new TickettypeImpl();
        ticketDao = new TicketImpl();
        loadData();
        // 为表格绑定修改值后的事件
        model.addTableModelListener(new TableModelListener() {

            @Override
            public void tableChanged(TableModelEvent e) {
                if (e.getColumn() < 0)
                    return;
                String nVal = table.getValueAt(e.getLastRow(), e.getColumn())
                        .toString();
                // 如果旧的值 和新的值一样,直接 返回
                if (nVal.equals(oldValue)) {
                    return;
                }
                // 判断当前编辑的单元格是否是主键列
                if (e.getColumn() == 0) {
                    // 还原旧的值
                    table.setValueAt(oldValue, e.getLastRow(), e.getColumn());
                    return;
                }
                // 更新数据

                int ticketid = Integer.valueOf(table.getValueAt(e.getLastRow(), 0).toString());
                String station_arrival = table.getValueAt(e.getLastRow(), 1).toString();
                String station_depart = table.getValueAt(e.getLastRow(), 2).toString();
                String depart_date = table.getValueAt(e.getLastRow(), 3).toString();
                String depart_time = table.getValueAt(e.getLastRow(), 4).toString();
                int ticket_number = Integer.valueOf(table.getValueAt(e.getLastRow(), 5).toString());
                String seattype = table.getValueAt(e.getLastRow(), 6).toString();
                String tickettype = table.getValueAt(e.getLastRow(), 7).toString();

                int tickets_left = Integer.valueOf(table.getValueAt(e.getLastRow(), 8).toString());
                String fares = table.getValueAt(e.getLastRow(), 9).toString();
                String ticket_office = table.getValueAt(e.getLastRow(), 10).toString();
                Ticket ticket = new Ticket(ticketid, station_arrival, station_depart, depart_date, depart_time, ticket_number
                        , seattype, tickettype, tickets_left, fares, ticket_office);
                try {
    private JTextField txtdepart_date;
    private JTextField txtdepart_time;
    private JTextField txtticket_number;
    private JTextField txttickets_left;
    private JTextField txtfares;
    private JTextField txtticket_office;
    private JComboBox cmbtickettype;
    private JComboBox cmbseattype;
    private TickeDao ticketDao;
    private TickeDao seatidDao;
    private TicketImpl ticketimpl;
    private TickettypeImpl tickettypeDao;
    private SeattypeImpl seattypeDao;
    private QueryUser query;

    /**
     * Create the panel.
     *
     * @param tickettypeDao
     * @throws SQLException
     */
    public AddTicket() throws SQLException {
        setLayout(null);

        JLabel label = new JLabel("到达站:");
        label.setBounds(280, 65, 146, 23);
        add(label);

        txtstation_arrival = new JTextField();
        txtstation_arrival.setBounds(350, 65, 146, 23);
        add(txtstation_arrival);
        txtstation_arrival.setColumns(10);

        JLabel label1 = new JLabel("乘车站:");
        label1.setBounds(280, 97, 146, 23);
        add(label1);

        txtstation_depart = new JTextField();
        txtstation_depart.setBounds(350, 97, 146, 23);
        add(txtstation_depart);
        txtstation_arrival.setColumns(10);

        JLabel label_20 = new JLabel("发车日期:");
        label_20.setBounds(280, 130, 146, 23);
        add(label_20);

        txtdepart_date = new JTextField();
        txtdepart_date.setBounds(350, 130, 146, 23);
        add(txtdepart_date);
        txtdepart_date.setColumns(10);


    public void setUserticketuserid(int userticketuserid) {
        this.userticketuserid = userticketuserid;
    }

    public int getUserticketticketid() {
        return userticketticketid;
    }

    public void setUserticketticketid(int userticketticketid) {
        this.userticketticketid = userticketticketid;
    }

    public String getUserticketname() {
        return userticketname;
    }

    public String getUserticketidentity_number() {
        return userticketidentity_number;
    }

    public void setUserticketidentity_number(String userticketidentity_number) {
        this.userticketidentity_number = userticketidentity_number;
    }

    public void setUserticketname(String userticketname) {
        this.userticketname = userticketname;
    }

    public String getUserticketstation_arrival() {
        return userticketstation_arrival;
    }

    public void setUserticketstation_arrival(String userticketstation_arrival) {
        this.userticketstation_arrival = userticketstation_arrival;
    }

    public String getUserticketstation_depart() {
        return userticketstation_depart;
    }

    public void setUserticketstation_depart(String userticketstation_depart) {
        this.userticketstation_depart = userticketstation_depart;
            String name = rs.getString(2);
            String identity_number = rs.getString(3);
            String account = rs.getString(4);
            String password = rs.getString(5);
            User user0 = new User(userid0, name, identity_number, account, password);
            user.add(user0);
        }
        Util.closeAll(con, stmt, rs);
        return user;
    }

    public List<User> queryAll() throws SQLException {
        Connection con = Util.getConnection();
        String sqladd = "select * from user";
        PreparedStatement stmt = con.prepareStatement(sqladd);
        ResultSet rs = stmt.executeQuery();
        List<User> user = new ArrayList<>();
        while (rs.next()) {
            int userid0 = rs.getInt(1);
            String name = rs.getString(2);
            String identity_number = rs.getString(3);
            String account = rs.getString(4);
            String password = rs.getString(5);
            User user0 = new User(userid0, name, identity_number, account, password);
            user.add(user0);
        }
        Util.closeAll(con, stmt, rs);
        return user;
    }

    @Override
    public boolean SlectAcPs(String account, String password) throws SQLException {
        boolean flag = false;
        String sql = "select account,password from user";
        Connection con = Util.getConnection();
        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rr = stmt.executeQuery();
        while (rr.next()) {
            String account1 = rr.getString(1);
            String password1 = rr.getString(2);
            if (account.equals(account1) && password.equals(password1)) {
                flag = true;
                break;
            }
        }
        Util.closeAll(con, stmt, rr);
        return flag;
    }

    @Override
    public List<AcPs> getAC(String account, String password) throws SQLException {
            model.addRow(new Object[]{ticket.getTicketid(), ticket.getStation_arrival(), ticket.getStation_depart(),
                    ticket.getDepart_date(), ticket.getDepart_time(), ticket.getTicket_number(), ticket.getSeattypeid(),
                    ticket.getTickettypeid(), ticket.getTickets_left(), ticket.getFares(),
                    ticket.getTicket_office()
            });
        }
    }

    public void del() throws SQLException {
        if (table.getSelectedRowCount() <= 0) {
            JOptionPane.showMessageDialog(null, "请选择要删除的数据行");
            return;
        }
        int result = JOptionPane.showConfirmDialog(null, "是否确定要删除");
        // 判断用户是否点击
        if (result == JOptionPane.OK_OPTION) {
            int ticketid = Integer.valueOf(table.getValueAt(
                    table.getSelectedRow(), 0).toString());
            ticketDao.delete(ticketid);
            loadData();
        }
    }

    public void updata() throws SQLException {
        if (table.getSelectedRowCount() <= 0) {
            JOptionPane.showMessageDialog(null, "请选择要修改的数据行");
            return;
        }
        int result = JOptionPane.showConfirmDialog(null, "是否确定要修改");
        // 判断用户是否点击
        if (result == JOptionPane.OK_OPTION) {

            int ticketid = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 0).toString());
            String station_arrival = table.getValueAt(table.getSelectedRow(), 1).toString();
            String station_depart = table.getValueAt(table.getSelectedRow(), 2).toString();
            String depart_date = table.getValueAt(table.getSelectedRow(), 3).toString();
            String depart_time = table.getValueAt(table.getSelectedRow(), 4).toString();
            int ticket_number = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 5).toString());
            String seattypeid = table.getValueAt(table.getSelectedRow(), 6).toString();
            String tickettypeid = table.getValueAt(table.getSelectedRow(), 7).toString();
            int tickets_left = Integer.valueOf(table.getValueAt(table.getSelectedRow(), 8).toString());
            String fares = table.getValueAt(table.getSelectedRow(), 9).toString();
            String ticket_office = table.getValueAt(table.getSelectedRow(), 10).toString();
            Ticket ticket = new Ticket(ticketid, station_arrival, station_depart, depart_date, depart_time,
                    ticket_number, seattypeid, tickettypeid, tickets_left, fares, ticket_office);
            UpdataTicket updataticket = new UpdataTicket(ticket);
    public boolean fundTicket(int userticketid, int userticketticketid) throws SQLException, Exception {
        Connection con = Util.getConnection();
        String sqlll = "update ticket set tickets_left=tickets_left+1 where ticketid = ?";
        PreparedStatement stmttt = con.prepareStatement(sqlll);
        stmttt.setInt(1, userticketticketid);
        stmttt.executeUpdate();
        String sql = "delete from userticket where userticketid=?";
        PreparedStatement stmt = con.prepareStatement(sql);
        stmt.setInt(1, userticketid);
        stmt.executeUpdate();
        return true;
    }

    @Override
    public boolean SelectUidTid(int ticketid, int userid) throws SQLException {
        boolean flag = true;
        String sql = "select userticketuserid,userticketticketid from userticket";
        Connection con = Util.getConnection();
        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rr = stmt.executeQuery();
        while (rr.next()) {
            int useridd = rr.getInt(1);
            int ticketidd = rr.getInt(2);
            if (useridd == userid && ticketidd == ticketid) {
                flag = false;
                break;
            }
        }
        Util.closeAll(con, stmt, rr);
        return flag;
		
		
		/*String sql = "select userticketuserid,userticketticketid";
		PreparedStatement stmt = con.prepareStatement(sql);
		stmt.setInt(1, ticketid);
		stmt.executeUpdate();
		
		ResultSet rs = null;
		DBcon.closeAll(stmt, rs);
		return true;*/
    }

public class QueryUser extends JPanel {
    private JTable table;
    private DefaultTableModel model;// 用于存储表格数据
    private UserDao userDao;
    private String oldValue = "";// 保存单元格编辑 前的值

    /**
     * Create the panel.
     */
    public QueryUser() {
        setLayout(new BorderLayout(0, 0));

        JScrollPane scrollPane = new JScrollPane();
        add(scrollPane, BorderLayout.CENTER);

        table = new JTable();

        scrollPane.setColumnHeaderView(table);
        // 初始化存储表格数据的对象
        model = new DefaultTableModel(new Object[][]{}, new String[]{"User Id",
                "user name", "ID", "User", "Password"});
        // 将数据绑定到对象中
        table.setModel(model);
        table.setRowHeight(30);
        scrollPane.setViewportView(table);
        userDao = new UserDaoImpl();
        loadData();
        // 为表格绑定修改值后的事件
        model.addTableModelListener(new TableModelListener() {

            @Override
            public void tableChanged(TableModelEvent e) {
                if (e.getColumn() < 0)
                    return;
                String nVal = table.getValueAt(e.getLastRow(), e.getColumn())
                        .toString();
                // 如果旧的值 和新的值一样,直接 返回
                if (nVal.equals(oldValue)) {
                    return;
                }
    }

    public void setUserticketuserid(int userticketuserid) {
        this.userticketuserid = userticketuserid;
    }

    public int getUserticketticketid() {
        return userticketticketid;
    }

    public void setUserticketticketid(int userticketticketid) {
        this.userticketticketid = userticketticketid;
    }

    public String getUserticketname() {
        return userticketname;
    }

    public String getUserticketidentity_number() {
        return userticketidentity_number;
    }

    public void setUserticketidentity_number(String userticketidentity_number) {
        this.userticketidentity_number = userticketidentity_number;
    }

    public void setUserticketname(String userticketname) {
        this.userticketname = userticketname;
    }

    public String getUserticketstation_arrival() {
        return userticketstation_arrival;
    }

    public void setUserticketstation_arrival(String userticketstation_arrival) {
        this.userticketstation_arrival = userticketstation_arrival;
    }

    public String getUserticketstation_depart() {
        return userticketstation_depart;
    }

    public void setUserticketstation_depart(String userticketstation_depart) {
        this.userticketstation_depart = userticketstation_depart;
    public AddUser() {
        setLayout(null);

        JLabel label = new JLabel("用户姓名:");
        label.setBounds(250, 100, 70, 23);
        add(label);

        txtname = new JTextField();
        txtname.setBounds(350, 100, 180, 23);
        add(txtname);
        txtname.setColumns(10);

        JLabel label_1 = new JLabel("证件号码");
        label_1.setBounds(250, 170, 70, 23);
        add(label_1);

        txtidentity_number = new JTextField();
        txtidentity_number.setBounds(350, 170, 180, 23);
        add(txtidentity_number);
        txtidentity_number.setColumns(10);

        JLabel label_2 = new JLabel("账号");
        label_2.setBounds(250, 240, 70, 23);
        add(label_2);

        txtaccout = new JTextField();
        txtaccout.setBounds(350, 240, 180, 23);
        add(txtaccout);
        txtaccout.setColumns(10);

        JLabel label_3 = new JLabel("密码");
        label_3.setBounds(250, 310, 70, 23);
        add(label_3);

        txtPassword = new JTextField();
        txtPassword.setBounds(350, 310, 180, 23);
        add(txtPassword);
        txtPassword.setColumns(10);

        userDao = new UserDaoImpl();

        JButton btnNewButton = new JButton("添加用户");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

                if (txtname.getText().equals("")) {    //判断用户输入是否为空;
                    JOptionPane.showMessageDialog(null, "请输入姓名", "警告对话框", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                if (txtidentity_number.getText().equals("")) {    //判断用户输入是否为空;
                    JOptionPane.showMessageDialog(null, "请输入身份证号", "警告对话框", JOptionPane.WARNING_MESSAGE);
                    return;
                }

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机科学与技术系 信息管理与信息系统专业 《程序设计综合课程设计》报告 (2013/2014学年 第一学期) 学生: 学生班级: 学生学号: 指导教师: 2013年 1 月 8 日 目 录 第一章 课程设计的目的和要求 1 1.1课程设计的目的 1 1.2 课程设计的基本要求 1 第二章 课程设计任务容 2 2.1 简介 2 2.2 功能说明 2 第三章 详细设计说明 3 3.1 模板设计图 3 3.2 主函数流程图 4 3.3 子函数流程图 5 第四章 编码与调试 7 4.1 软件使用说明 7 4.2 运行结果及截图 7 第五章 课程设计心得与体会 11 附录一 参考文献 12 附录二 程序清单 13 附录三 录入文件 27 火车票管理系统 第一章 课程设计的目的和要求 高级语言课程设计的主要目的是培养学生能够提高综合应用语言的能力,通过课程设计 的训练,使学生能及时巩固已学的知识,补充未学的但有必要的容,掌握应用计算机解决 实际问题的基本方法,熟悉程序开发的全过程,提高综合应用语言的能力。高级语言程 序设计的主要任务是要求学生遵循软件开发过程的基本规,运用结构程序设计的方法按 照课程设计的题目要求,分析,编写,调试和测试高级语言程序及编写设计报告。 1.1课程设计的目的 1.巩固和掌握高级语言程序设计基本概念; 2.掌握基本的程序设计方法; 3.掌握开发软件所需的需求定义能力; 4.提高书写程序设计说明文档的能力; 5.提高综合运用高级语言的能力,强化编程和调试能力。 1.2 课程设计的基本要求 1.根据所给的课程设计题目,分析课程设计题目的要求; 2.对系统功能模块进行分析,写出详细的设计说明文档; 3.编写程序代码,调试所编写程序使其能正确运行; 4.设计完成的软件便于操作和使用; 5.设计完成后提交课程设计报告。 第二章 课程设计任务容 2.1 简介 火车票管理系统:是为广大群众开发的,帮助人们查询车次信息,订票和退票,大大节 约了人们的时间,是铁路营运公司所需要的全部功能的一个综合的管理系统。 2.2 功能说明 (1)录入班次信息:信息用文件保存,可不定时地增加班次数据。 (2)浏览班次信息:可显示出所有班次当前状总(如果当前系统时间超过了某班次的发 车时间,则显示"此班已发出"的提示信息)。 (3)查询路线:可按班次号查询 ,可按终点站查询。 (4)售票和退票功能: A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自 动更新已售票人数。 B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。 (5)删除功能:该功能可以删除录入的错误信息。 (6)订购功能:该功能可以方便旅客提前预定。 第三章 详细设计说明 3.1 模板设计图 图3-1函数功能模板图 3.2 主函数流程图 1 2 3 4 是 否 图3-2主函数流程图 3.3 子函数流程图 是 否 否 是 1 2 图3-3 录入班次流程图 图3-4 查询车次函数流程图 否 是 1 2 是 否 图3-5 订票函数流程图 第四章 编码与调试 4.1 软件使用说明 打开软件后,会出现一个主页面,这时候你首先要把火车票信息调用出来,这款软件 具备很多功能,例如用键盘操作页面;可以更改班次信息;浏览班次信息;订票;退票 等等,并且能够随时退出系统得功能。 这款软件简单易操作,希望大家会喜欢。 4.2 运行结果及截图 进入系统页面录入班次信息 图4-1 录入班次信息图 2、浏览录入班次信息 图4-2 浏览班次信息图 查询你乘车需要的信息 按班次查询 图4-3 班次查询图 按终点站查询 图4-4 班次查询图 订票与退票 订票成功 图4-5 订票成功图 订票失败 图4-6 订票失败图 退票成功 图4-7 退票成功图 退票失败 图4-8 退票失败图 退出系统 图4-9 退出系统图 第五章 课程设计心得与体会 三周的课程设计结束了,我终于完成了这次高级语言课程设计,并且认真完成了课程 设计报告。在这次的课程设计中不仅检验了我所学习的知识,也培养了自己的耐心。课 程设计是我们专业课程知识综合应用的实践训练,也是我们迈向社会,从事职业工作前 一个必不少的过程."千里之行始于足下",通过这次课程设计,我深深体会到这句千古 名言的真正含义. 通过这次课程设计,本人在多方面都有所提高。通过这次火车票系统设计,综合运用 本专业所学课程的理论,巩固与扩充了高级语言设计等课程所学的容,掌握高级语言设 计的方法和步骤,掌握了高级语言设计的基本的概念,了解了高级语言的基本结构,提 高了编程能力,绘图能力,熟悉了规和标准,同时各科相关的课程都有了全面的复习, 独立思考的能力也有了提高。 在这次设计过程中,大大激发了我编程的兴趣,在设计的过程中亦遇到了许多困难,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值