/**
 
 * @(#)StudentSystem.java
 
 *
 
 *
 
 * @author 
 
 * @version 1.00 2012/10/31
 
 */
 
import javax.swing.*;
 
import java.awt.*;
 
import java.awt.event.*;
 
import java.sql.*;
 
import javax.swing.*;
 
import java.awt.*;
 
import java.awt.event.*;
 
import java.awt.event.*;
 
import javax.swing.*;
 
import java.awt.*;
 
import java.awt.event.*;
 
import java.sql.*;
 
import javax.swing.table.JTableHeader;
 
import javax.swing.*;
 
import java.awt.*;
 
import java.awt.event.*;
 
import java.sql.*;
 
import javax.swing.*;
 
import java.awt.*;
 
import java.awt.event.*;
 
import java.sql.*;
 
import javax.swing.*;
 
import java.awt.*;
 
import java.awt.event.*;
 
import java.sql.*;
 
import javax.swing.*;
 
import java.awt.*;
 
import java.awt.event.*;
 
import java.sql.*;
 
import javax.swing.table.DefaultTableModel;
 
import javax.swing.table.JTableHeader;
 
import javax.swing.*;
 
import java.awt.*;
 
import java.awt.event.*;
 
import java.sql.*;
 
 
 
 
 
 
 
        AddForm() {
 
                super("添加数据");
 
                setSize(400, 300);
 
                setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE); 
                pan1.add(labName);
 
                pan1.add(txtName);
 
                pan2.add(labDate);
 
                pan2.add(txtDate);
 
                pan3.add(labScore);
 
                pan3.add(txtScore);
 
                pan4.add(btnOk);
 
                pan4.add(btnClear);
 
                pan.add(pan1);
 
                pan.add(pan2);
 
                pan.add(pan3);
 
                getContentPane().add(pan, "Center");
 
                getContentPane().add(pan4, "South");
 
                btnOk.addActionListener(this);
 
                btnClear.addActionListener(this);
 
                setVisible(true);
 
                txtName.requestFocus();
 
 
 
        }
 
 
 
                if (ae.getSource() == btnClear) {
 
                        txtName.setText("");
 
                        txtDate.setText("");
 
                        txtScore.setText("");
 
                        txtName.requestFocus();
 
                } else if (ae.getSource() == btnOk) {
 
                        String strName 
= txtName.
getText();  
                        String strDate 
= txtDate.
getText();  
                        String strScore 
= txtScore.
getText();  
                        if (strName.equals(""))
 
                        else if (strDate.equals(""))
 
                        else if (strScore.equals(""))
 
                        else {
 
                                try {
 
                                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 
                                        ex.printStackTrace();
 
                                }
 
                                try {
 
                                        stm = cnn.createStatement();
 
                                        ex.printStackTrace();
 
                                }
 
                                try {
 
                                        rs = stm.executeQuery("select * from 成绩表 where 学号='"
 
                                                        + strName + "'");
 
                                        if (rs.next()) {
 
                                        } else // 否则插入记录
 
                                        {
 
                                                // System.out.println("insert into 成绩表 values('"+strName+"',#"+strDate+"#,"+strScore+")");
 
                                                stm.executeUpdate("insert into 成绩表 values('" + strName
 
                                                                + "','" + strDate + "'," + strScore + ")");
 
                                        }
 
                                        // 断开连接
 
                                        stm.close();
 
                                        cnn.close();
 
                                        System.
out.
println("SQLException:" + ex.
getMessage());  
                                }
 
 
 
                        }
 
                }
 
        }
 
 
 
        public static void main
(String[] args
) {  
                new AddForm();
 
        }
 
}
 
 
 
class BrowseForm 
extends JFrame {  
        String[] str 
= { "学号", 
"出生日期", 
"成绩" };  
 
 
        BrowseForm() {
 
                super("浏览数据");
 
                setSize(400, 300);
 
                int i = 0, j = 0;
 
                int row;
 
                try {
 
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 
                        stmt = conn.createStatement();
 
 
 
                        rs = stmt.executeQuery("select COUNT(*) as a from 成绩表");
 
                        rs.next();
 
                        row = rs.getInt("a");
 
                        rs.close();
 
                        rs = stmt.executeQuery("select * from 成绩表");
 
                        while (rs.next()) {
 
                                data[i][j++] = rs.getString("学号");
 
                                data[i][j++] = rs.getDate("出生日期");
 
                                data
[i
][j
] = new Integer(rs.
getInt("成绩")); 
                                i++;
 
                                j = 0;
 
                        }
 
                        table 
= new JTable(data, str
); 
                        head = table.getTableHeader();
 
                        getContentPane().add(head, "North");
 
                        getContentPane().add(jsp, "Center");
 
                        rs.close();
 
                        stmt.close();
 
                        conn.close();
 
                        e.printStackTrace();
 
                }
 
                setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE); 
                setVisible(true);
 
        }
 
 
 
        public static void main
(String[] args
) {  
                new BrowseForm();
 
        }
 
}
 
 
 
 
 
 
 
        DeleteForm() {
 
                super("删除数据");
 
                setSize(400, 300);
 
                setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE); 
                pan1.add(labName);
 
                pan1.add(txtName);
 
                pan2.add(labDate);
 
                pan2.add(txtDate);
 
                pan3.add(labScore);
 
                pan3.add(txtScore);
 
                pan4.add(btnQuery);
 
                pan4.add(btnDel);
 
                pan4.add(btnCancel);
 
                pan.add(pan1);
 
                pan.add(pan2);
 
                pan.add(pan3);
 
                getContentPane().add(pan, "Center");
 
                getContentPane().add(pan4, "South");
 
                btnQuery.addActionListener(this);
 
                btnDel.addActionListener(this);
 
                btnCancel.addActionListener(this);
 
                btnDel.setEnabled(false);
 
                txtDate.setEditable(false);
 
                txtScore.setEditable(false);
 
                setVisible(true);
 
                txtName.requestFocus();
 
 
 
        }
 
 
 
                /*
 
                 * if(ae.getSource()==btnCancel){ try { if(stm!=null) stm.close();
 
                 * if(cnn!=null) cnn.close(); } catch (SQLException ex) {
 
                 * ex.printStackTrace(); } this.dispose(); } else
 
                 * if(ae.getSource()==btnQuery){ try{
 
                 * Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 
                 * cnn=DriverManager.getConnection("jdbc:odbc:MyDB","","");
 
                 * stm=cnn.createStatement(); rs=stm.executeQuery("select * from 成绩表
 
                 * where 学号 ='"+txtName.getText()+"'"); if(rs.next()){
 
                 * txtName.setText(rs.getString("学号"));
 
                 * txtDate.setText(rs.getDate("出生日期").toString()); txtScore.setText(new
 
                 * Integer(rs.getInt("成绩")).toString ()); btnDel.setEnabled(true);
 
                 * }else{ JOptionPane.showMessageDialog(this,"不存在该记录!");
 
                 * btnDel.setEnabled(false); txtName.setText(""); txtScore.setText("");
 
                 * txtDate.setText(""); } }catch(Exception e){ e.printStackTrace(); }
 
                 * }else if(ae.getSource()==btnDel){ try {
 
                 * if(JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog
 
                 * (this,"确定要删除该记录?","信息",JOptionPane.YES_NO_OPTION)){
 
                 * stm.executeUpdate("delete from 成绩表 where 学号
 
                 * ='"+txtName.getText()+"'"); btnDel.setEnabled(false);
 
                 * txtName.setText(""); txtScore.setText(""); txtDate.setText(""); } }
 
                 * catch (SQLException ex) { ex.printStackTrace(); } }
 
                 */
 
        }
 
 
 
        public static void main
(String[] args
) {  
                new DeleteForm();
 
        }
 
}
 
 
 
 
 
 
 
        LoginForm() {
 
                super("用户登录");
 
                setSize(300, 200);
 
                setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE); 
                pan1.add(labName);
 
                pan1.add(txtName);
 
                pan2.add(labPwd);
 
                pan2.add(txtPwd);
 
                pan.add(pan1);
 
                pan.add(pan2);
 
                pan3.add(btnOk);
 
                pan3.add(btnCancel);
 
                pan4.add(pan);
 
                getContentPane().add(pan4, "Center");
 
                getContentPane().add(pan3, "South");
 
                txtName.addActionListener(this);
 
                txtPwd.addActionListener(this);
 
                btnOk.addActionListener(this);
 
                btnCancel.addActionListener(this);
 
                setVisible(true);
 
 
 
                try {
 
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 
                        ex.printStackTrace();
 
                }
 
                try {
 
                        stm = cnn.createStatement();
 
                        ex.printStackTrace();
 
                }
 
                txtName.requestFocus();
 
 
 
        }
 
 
 
                if (ae.getSource() == txtName)
 
                        txtPwd.requestFocus();
 
                else if (ae.getSource() == txtPwd)
 
                        btnOk.requestFocus();
 
                else if (ae.getSource() == btnCancel) {
 
                        txtName.setText("");
 
                        txtPwd.setText("");
 
                        txtName.requestFocus();
 
                } else if (ae.getSource() == btnOk) {
 
                        String str 
= "select * from 用户表 where 用户名='" + txtName.
getText()  
                                        + "'and 密码='" + new String(txtPwd.
getPassword()) + "'";  
                        try {
 
                                rs = stm.executeQuery(str);
 
                                ex.printStackTrace();
 
                        }
 
                        try {
 
                                if (rs.next()) {
 
                                        rs.close();
 
                                        stm.close();
 
                                        cnn.close();
 
                                        new MainForm().setVisible(true);
 
                                        this.dispose();
 
                                } else {
 
                                        JOptionPane.
showMessageDialog(this, 
"用户名或密码不正确!", 
"信息",
  
                                }
 
                                ex.printStackTrace();
 
                        }
 
                }
 
        }
 
 
 
        public static void main
(String[] args
) {  
                new LoginForm();
 
        }
 
}
 
 
 
 
 
 
 
        ModifyForm() {
 
                super("修改数据");
 
                setSize(400, 300);
 
                setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE); 
                pan1.add(labName);
 
                pan1.add(txtName);
 
                pan2.add(labDate);
 
                pan2.add(txtDate);
 
                pan3.add(labScore);
 
                pan3.add(txtScore);
 
                pan4.add(btnQuery);
 
                pan4.add(btnModify);
 
                pan4.add(btnCancel);
 
                pan.add(pan1);
 
                pan.add(pan2);
 
                pan.add(pan3);
 
                getContentPane().add(pan, "Center");
 
                getContentPane().add(pan4, "South");
 
                btnQuery.addActionListener(this);
 
                btnModify.addActionListener(this);
 
                btnCancel.addActionListener(this);
 
                btnModify.setEnabled(false);
 
                txtDate.setEditable(false);
 
                txtScore.setEditable(false);
 
                setVisible(true);
 
                txtName.requestFocus();
 
 
 
        }
 
 
 
                if (ae.getSource() == btnCancel) {
 
                        try {
 
                                if (stm != null)
 
                                        stm.close();
 
                                if (cnn != null)
 
                                        cnn.close();
 
                                ex.printStackTrace();
 
                        }
 
                        this.dispose();
 
                } else if (ae.getSource() == btnQuery) {
 
                        try {
 
                                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 
                                stm = cnn.createStatement();
 
                                rs = stm.executeQuery("select * from 成绩表 where 学号='"
 
                                                + txtName.getText() + "'");
 
                                if (rs.next()) {
 
                                        txtName.setText(rs.getString("学号"));
 
                                        txtScore.
setText(new Integer(rs.
getInt("成绩")).
toString()); 
                                        txtDate.setText(rs.getDate("出生日期").toString());
 
                                        btnModify.setEnabled(true);
 
                                        txtDate.setEditable(true);
 
                                        txtScore.setEditable(true);
 
                                } else {
 
                                        btnModify.setEnabled(false);
 
                                        txtName.setText("");
 
                                        txtScore.setText("");
 
                                        txtDate.setText("");
 
                                        txtDate.setEditable(false);
 
                                        txtScore.setEditable(false);
 
                                }
 
                                e.printStackTrace();
 
                        }
 
                } else if (ae.getSource() == btnModify) {
 
                        try {
 
                                System.
out.
println("Update  成绩表 set 出生日期=#" + txtDate.
getText()  
                                                + "#,成绩=" + txtScore.getText() + " where 学号='"
 
                                                + txtName.getText() + "'");
 
                                stm.executeUpdate("Update  成绩表 set 出生日期=#" + txtDate.getText()
 
                                                + "#,成绩=" + txtScore.getText() + " where 学号='"
 
                                                + txtName.getText() + "'");
 
                                btnModify.setEnabled(false);
 
                                txtName.setText("");
 
                                txtScore.setText("");
 
                                txtDate.setText("");
 
                                txtDate.setEditable(false);
 
                                txtScore.setEditable(false);
 
                                stm.close();
 
                                cnn.close();
 
                                e.printStackTrace();
 
                        }
 
                }
 
        }
 
 
 
        public static void main
(String[] args
) {  
                new ModifyForm();
 
        }
 
}
 
 
 
 
 
 
 
        NumberQueryForm() {
 
                super("按学号查询");
 
                setSize(400, 300);
 
                setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE); 
                pan1.add(labName);
 
                pan1.add(txtName);
 
                pan2.add(labDate);
 
                pan2.add(txtDate);
 
                pan3.add(labScore);
 
                pan3.add(txtScore);
 
                pan4.add(btnQuery);
 
                pan4.add(btnCancel);
 
                pan.add(pan1);
 
                pan.add(pan2);
 
                pan.add(pan3);
 
                getContentPane().add(pan, "Center");
 
                getContentPane().add(pan4, "South");
 
                btnQuery.addActionListener(this);
 
                btnCancel.addActionListener(this);
 
                txtDate.setEditable(false);
 
                txtScore.setEditable(false);
 
                setVisible(true);
 
                txtName.requestFocus();
 
 
 
        }
 
 
 
                if (ae.getSource() == btnCancel) {
 
                        try {
 
                                if (stm != null)
 
                                        stm.close();
 
                                if (cnn != null)
 
                                        cnn.close();
 
                                ex.printStackTrace();
 
                        }
 
                        this.dispose();
 
                } else if (ae.getSource() == btnQuery) {
 
                        try {
 
                                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 
                                stm = cnn.createStatement();
 
                                rs = stm.executeQuery("select * from 成绩表 where 学号='"
 
                                                + txtName.getText() + "'");
 
                                if (rs.next()) {
 
                                        txtName.setText(rs.getString("学号"));
 
                                        txtScore.
setText(new Integer(rs.
getInt("成绩")).
toString()); 
                                        txtDate.setText(rs.getDate("出生日期").toString());
 
                                } else {
 
                                        txtName.setText("");
 
                                        txtScore.setText("");
 
                                        txtDate.setText("");
 
                                        txtName.requestFocus();
 
                                }
 
                                e.printStackTrace();
 
                        }
 
 
 
                }
 
        }
 
 
 
        public static void main
(String[] args
) {  
                new NumberQueryForm();
 
        }
 
}
 
 
 
        String[] str 
= { "学号", 
"出生日期", 
"成绩" };  
 
 
        ScoreQueryForm() {
 
                super("按成绩查询");
 
                setSize(400, 300);
 
                pan1.add(labScore);
 
                pan1.add(txtScore);
 
                pan1.add(btnQuery);
 
                getContentPane().add(pan1, "North");
 
                table 
= new JTable(data, str
); 
                head = table.getTableHeader();
 
                pan2.add(head, "North");
 
                pan2.add(jsp, "Center");
 
                getContentPane().add(pan2, "Center");
 
                btnQuery.addActionListener(this);
 
                setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE); 
                setVisible(true);
 
        }
 
 
 
                if (ae.getSource() == btnQuery) {
 
                        int i, j, row;
 
                        try {
 
                                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 
                                stmt = conn.createStatement();
 
 
 
                                rs = stmt
 
                                                .executeQuery("select COUNT(*) as rowcount from 成绩表 where 成绩="
 
                                                                + txtScore.getText());
 
                                rs.next();
 
                                row = rs.getInt("rowcount");
 
                                rs.close();
 
                                rs = stmt.executeQuery("select * from 成绩表 where 成绩="
 
                                                + txtScore.getText());
 
                                i = 0;
 
                                j = 0;
 
                                while (rs.next()) {
 
                                        data[i][j++] = rs.getString("学号");
 
                                        data[i][j++] = rs.getDate("出生日期");
 
                                        data
[i
][j
] = new Integer(rs.
getInt("成绩")); 
                                        i++;
 
                                        j = 0;
 
                                }
 
 
 
                                pan2.removeAll();
 
                                getContentPane().remove(pan2);
 
 
 
                                table 
= new JTable(data, str
); 
                                head = table.getTableHeader();
 
                                pan2.add(head, "North");
 
                                pan2.add(jsp, "Center");
 
                                getContentPane().add(pan2, "Center");
 
                                this.validate();
 
                                rs.close();
 
                                stmt.close();
 
                                conn.close();
 
                                e.printStackTrace();
 
                        }
 
                }
 
        }
 
 
 
        public static void main
(String[] args
) {  
                new ScoreQueryForm();
 
        }
 
}
 
 
 
class MyPanel 
extends JPanel {  
        Image img 
= Toolkit.
getDefaultToolkit().
getImage("c:/a.jpg");  
 
 
                g.drawImage(img, 0, 0, this);
 
        }
 
}
 
 
 
 
 
        MainForm() {
 
                super("学生成绩管理系统");
 
                setSize(700, 630);
 
                setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE); 
                mSystem.add(mExit);
 
                mOperate.add(mAdd);
 
                mOperate.add(mDel);
 
                mOperate.add(mModify);
 
                mOperate.add(mBrowse);
 
                mQuery.add(mNumber);
 
                mQuery.add(mScore);
 
                mHelp.add(mAbout);
 
                mBar.add(mSystem);
 
                mBar.add(mOperate);
 
                mBar.add(mQuery);
 
                mBar.add(mHelp);
 
                setJMenuBar(mBar);
 
                mExit.addActionListener(this);
 
                mAdd.addActionListener(this);
 
                mDel.addActionListener(this);
 
                mModify.addActionListener(this);
 
                mBrowse.addActionListener(this);
 
                mNumber.addActionListener(this);
 
                mScore.addActionListener(this);
 
                mAbout.addActionListener(this);
 
                setContentPane(new MyPanel());
 
                setVisible(true);
 
        }
 
 
 
                if (ae.getSource() == mExit)
 
                else if (ae.getSource() == mAbout)
 
                                        "学生管理系统 V1.0\n\n重庆邮电大学计算机学院\n\n2011年11月", "关于",
 
                else if (ae.getSource() == mAdd)
 
                        new AddForm().setVisible(true);
 
                else if (ae.getSource() == mDel)
 
                        new DeleteForm().setVisible(true);
 
                else if (ae.getSource() == mModify)
 
                        new ModifyForm().setVisible(true);
 
                else if (ae.getSource() == mBrowse)
 
                        new BrowseForm().setVisible(true);
 
                else if (ae.getSource() == mNumber)
 
                        new NumberQueryForm().setVisible(true);
 
                else if (ae.getSource() == mScore)
 
                        new ScoreQueryForm().setVisible(true);
 
 
 
        }
 
 
 
        public static void main
(String[] args
) {  
                new MainForm();
 
        }
 
}