⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plane_ticket.txt

📁 软件工程作业
💻 TXT
字号:
package plane;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.String;


public class plane implements ActionListener{
  JFrame f = null;
  public plane()
  {
    f = new JFrame("机票预定窗口");
    Container cP = f.getContentPane();
    JPanel bP = new JPanel();
    JButton b = new JButton("定票");
    b.addActionListener(this);
    bP.add(b);
    b = new JButton("查询");
    b.addActionListener(this);
    bP.add(b);
    b = new JButton("退出");
    b.addActionListener(this);
    bP.add(b);

    bP.setBorder(BorderFactory.createTitledBorder(
        BorderFactory.createLineBorder(Color.CYAN, 2), "选择操作:",
        TitledBorder.CENTER, TitledBorder.TOP));
    cP.add(bP, BorderLayout.CENTER);
    f.setBounds(300,300,300,200);

    f.pack();
    f.setVisible(true);

    f.addWindowListener(new WindowAdapter() {
      public void windowsClosing(WindowEvent e){
        System.exit(0);
      }
    });
  }

  public void actionPerformed(ActionEvent e){
    String cmd = e.getActionCommand();
    if(cmd.equals("定票"))
    {
      new RegistSystem(f);
    }
    else if(cmd.equals("查询"))
    {
      new RegistSystem1(f);
    }
    else if(cmd.equals("退出"))
    {
      System.exit(0);
    }
  }

  //Main method
  public static void main(String[] args)
  {
    new plane();
  }
}
  /**********************************   f 框中 选择 “定票”   ***********************************/
class RegistSystem implements ActionListener
{
  JDialog d;
  JTextField tF1 = new JTextField();
  JTextField tF2 = new JTextField();
  JComboBox tF3 = new JComboBox();
  JComboBox tF4 = new JComboBox();
  JTextField tF5 = new JTextField();
  JTextField tF6 = new JTextField();
  RegistSystem(JFrame f)
  {
    d = new JDialog(f,"旅客信息录入",true);
    Container dP = d.getContentPane();
    dP.setLayout(new GridLayout(7,2));

    dP.add(new JLabel("姓名:",SwingConstants.CENTER));
    dP.add(tF1);
    dP.add(new JLabel("联系电话:",SwingConstants.CENTER));
    dP.add(tF2);
    dP.add(new JLabel("出发城市:",SwingConstants.CENTER));
    dP.add(tF3);
    dP.add(new JLabel("到达城市:",SwingConstants.CENTER));
    dP.add(tF4);
    dP.add(new JLabel("出发日期:",SwingConstants.CENTER));
    dP.add(tF5);
    dP.add(new JLabel("定票张数:",SwingConstants.CENTER));
    dP.add(tF6);

    JButton b1 = new JButton("定票");
    dP.add(b1);
    JButton b2 = new JButton("取消");
    dP.add(b2);
    d.getRootPane().setDefaultButton(b1);
    b1.addActionListener(this);
    b2.addActionListener(this);
    d.setBounds(220,200,400,400);

      try        ///////获取下拉式菜单内容!
      {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con = DriverManager.getConnection("jdbc:odbc:MS", "test","123");
        Statement stmt = con.createStatement();
        String sqse = "select * from plane";
       PreparedStatement ps = con.prepareStatement(sqse);
       ResultSet rs = ps.executeQuery();

       while(rs.next())
       {
            String result =rs.getString(2);
            String result2 =rs.getString(3);

            int count = tF3.getItemCount();
            int count2 = tF4.getItemCount();

            boolean check_tF3 = true;
            boolean check_tF4 = true;

            //这里count获得的是Combox里面的字符串的个数,
            //比如  |成都|
            //      |乐山|
            //获得的是2,但是在使用getItemAt时的参数是从0 - (count-1)的。
           for(int c=count; count>0; count--)
            {
              String x=(String) tF3.getItemAt(count-1);
              if(x.equals(result))
              {
                  check_tF3 = false;
                  break;
              }
            }
            if(check_tF3)
            {
                  tF3.addItem(result);
            }


            for(int c=count2; count2>0; count2--)
            {
              String x=(String) tF4.getItemAt(count2-1);
              if(x.equals(result2))
              {
                  check_tF4 = false;
                  break;
              }
            }
            if(check_tF4)
            {
                  tF4.addItem(result2);
            }


        }
       stmt.close();
       con.close();
      }
      catch(Exception ex)
      {
          System.out.println("获取下拉式菜单内容失败!");
      }
      d.show();

  }

  public void  actionPerformed(ActionEvent e)
  {
    String cmd = e.getActionCommand();
    if(cmd.equals("定票"))
    {
      try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con = DriverManager.getConnection("jdbc:odbc:MS","plane","123");
        Connection kh_con = DriverManager.getConnection("jdbc:odbc:kh_MS","kh_msg","123");
        Statement stmt = con.createStatement();
        Statement kh_stmt = kh_con.createStatement();
        
        String name = tF1.getText();
        int tel = Integer.parseInt(tF2.getText());
        String cityf = (String)tF3.getSelectedItem();
        String cityt = (String)tF4.getSelectedItem();
        String t = tF5.getText();
        int n = Integer.parseInt(tF6.getText());

        String sqse = "select * from plane WHERE cityF=? and cityT=?";
        PreparedStatement ps = con.prepareStatement(sqse);
        ps.setString(1,cityf);
        ps.setString(2,cityt);
        ResultSet rs = ps.executeQuery();

        String squp = "UPDATE plane SET num=num-? WHERE cityF=? and cityT=?";
        PreparedStatement pstmt = con.prepareStatement(squp);
        pstmt.setInt(1,n);
        pstmt.setString(2,cityf);
        pstmt.setString(3,cityt);
        pstmt.executeUpdate();
        String fileName = "C:\\旅客信息表.txt";
        while(rs.next())
          {
              String pno = rs.getString("pno");
              String cf = rs.getString("cityF");
              String ct = rs.getString("cityT");
              String time = rs.getString("t");
              int num = rs.getInt("num");
              int pr = rs.getInt("price");

              if (cf.equals(cityf) && ct.equals(cityt)) {
                System.out.println("test!");
                if (num >= n) {
                  JOptionPane.showMessageDialog(d, "定票成功!!!" + "\n所定机票信息为:\n"
                                                + "\n航班号" + pno
                                                + "\n飞机起飞地点:  " + cf
                                                + "\n降落起飞地点:  " + ct
                                                + "\n飞机起飞时间:  " + time
                                                + "\n飞机剩余机票数:  " + n
                                                + "\n该航班机票价格:  " + pr
                                                + "\n\n");
                  try {
                    System.out.println("旅客信息表");
                    FileWriter writer = new FileWriter(fileName, true);
    
                    writer.write("姓名:" + name);
                    writer.write("\t联系电话:" + tel);
                    writer.write("\t出发城市:" + cityf);
                    writer.write("\t到达城市:" + cityt);
                    writer.write("\t出发时间:" + t);
                    writer.write("\t定票张数:" + n + "\n");
                    writer.close();
                  }
                  catch (IOException iox) {
                    System.out.println("写入有问题");
                  }
    
                  try {
    
                    String t_sqse = "select num from kh_msg";
                    ResultSet kh_rs = kh_stmt.executeQuery(t_sqse);
                    int i=1;
                    while (kh_rs.next()) {
                      i = kh_rs.getInt("num");
                      i = i + 1;   
                    }
                    String t_squp = "insert into kh_msg values(" + i + ",'" +
                          name + "'," + tel + ",'" + pno + "','"
                          + cf + "','" + ct + "','" + time + "'," + num + ")";

                      kh_stmt.executeUpdate(t_squp);

                  }
                  catch (Exception ex) {
                    System.out.println("ERROR");
                  }
                }
                
                else {
                  JOptionPane.showMessageDialog(d,"\n定票数目过大!\n"
                                                +"超过剩余机票数!\n请重新输入!\n\n");
                }
              }
                else {
                  JOptionPane.showMessageDialog(d, "\n无该航班!\n请重新输入!\n\n");
                }
        };


      pstmt.close();
      con.close();
      }catch(Exception ex)
      {
        System.out.print("连接数据库错误!");
      }
      d.dispose();
    }
    else if(cmd.equals("取消"))
    {d.dispose();}
  }
}

  /**********************************   f 框中 选择 “查询”   ***********************************/

class RegistSystem1 implements ActionListener
{
  JDialog d;
  JComboBox tF3 = new JComboBox();
  JComboBox tF4 = new JComboBox();
  JTextField tF5 = new JTextField();
  JTextField tF6 = new JTextField();
  RegistSystem1(JFrame f)
  {
    d = new JDialog(f,"输入相关查询信息:",true);
    Container dP = d.getContentPane();
    dP.setLayout(new GridLayout(5,2));

    dP.add(new JLabel("出发城市:",SwingConstants.CENTER));
    dP.add(tF3);
    dP.add(new JLabel("到达城市:",SwingConstants.CENTER));
    dP.add(tF4);
    dP.add(new JLabel("出发日期:",SwingConstants.CENTER));
    dP.add(tF5);
    dP.add(new JLabel("定票张数:",SwingConstants.CENTER));
    dP.add(tF6);

    JButton b1 = new JButton("确定");
    dP.add(b1);
    JButton b2 = new JButton("取消");
    dP.add(b2);
    d.getRootPane().setDefaultButton(b1);
    b1.addActionListener(this);
    b2.addActionListener(this);
    d.setBounds(250,220,320,250);

    try        ///////获取下拉式菜单内容!
      {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con = DriverManager.getConnection("jdbc:odbc:MS", "test","123");
        Statement stmt = con.createStatement();
        String sqse = "select * from plane";
       PreparedStatement ps = con.prepareStatement(sqse);
       ResultSet rs = ps.executeQuery();

       while(rs.next())
       {
            String result =rs.getString(2);
            String result2 =rs.getString(3);

            int count = tF3.getItemCount();
            int count2 = tF4.getItemCount();

            boolean check_tF3 = true;
            boolean check_tF4 = true;

            //这里count获得的是Combox里面的字符串的个数,
            //比如  |成都|
            //      |乐山|
            //获得的是2,但是在使用getItemAt时的参数是从0 - (count-1)的。
           for(int c=count; count>0; count--)
            {
              String x=(String) tF3.getItemAt(count-1);
              if(x.equals(result))
              {
                  check_tF3 = false;
                  break;
              }
            }
            if(check_tF3)
            {
                  tF3.addItem(result);
            }


            for(int c=count2; count2>0; count2--)
            {
              String x=(String) tF4.getItemAt(count2-1);
              if(x.equals(result2))
              {
                  check_tF4 = false;
                  break;
              }
            }
            if(check_tF4)
            {
                  tF4.addItem(result2);
            }


        }
       stmt.close();
       con.close();
      }
      catch(Exception ex)
      {
          System.out.println("获取下拉式菜单内容失败!");
      }

      d.show();

  }
  public void  actionPerformed(ActionEvent e){
    String cmd = e.getActionCommand();
    if(cmd.equals("确定")){
      try{
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con = DriverManager.getConnection
            ("jdbc:odbc:MS","test","123");

        String cityf = (String)tF3.getSelectedItem();
        String cityt = (String)tF4.getSelectedItem();

        String t = tF5.getText();
        int num = Integer.parseInt(tF6.getText());

        String sqse = "SELECT * FROM plane WHERE cityF=? and cityT=?";
        PreparedStatement stmt = con.prepareStatement(sqse);
        stmt.setString(1,cityf);
        stmt.setString(2,cityt);

        try
        {
            ResultSet rs = stmt.executeQuery();
            while(rs.next())
          {
              String pno = rs.getString("pno");
              String cf = rs.getString("cityF");
              String ct = rs.getString("cityT");
              String time = rs.getString("t");
              int n = rs.getInt("num");
              int pr = rs.getInt("price");

              if (cf.equals(cityf) && ct.equals(cityt)) {

                if (n >= num) {
                  JOptionPane.showMessageDialog(d, "所查询的航班信息为:\n"
                                                +"\n航班号: "+pno
                                                +"\n飞机起飞地点:  " + cf
                                                + "\n降落起飞地点:  " + ct
                                                + "\n飞机起飞时间:  " + time
                                                + "\n飞机剩余机票数:  " + n
                                                + "\n该航班机票价格:  " + pr
                                                +"\n\n");
                }
                else {
                  JOptionPane.showMessageDialog(d, "\n定票数目过大!\n"
                                                +"超过剩余机票数!\n请重新输入!\n\n");
                }
              }
                else {
                  JOptionPane.showMessageDialog(d, "\n无该航班!\n请重新输入!\n\n");
                }
        };

        }
        catch(Exception ex)
        {
            System.out.println("Plane 表查询错误!");
        }


        stmt.close();
        con.close();
      }catch(Exception ex)
      {
          System.out.println("数据库连接错误!");
      }
      d.dispose();
    }
    else if(cmd.equals("取消"))
    {d.dispose();}
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -