java学生成绩管理系统代码.doc
2、学生信息管理系统JAVA学生成绩管理系统代码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.*; class AddForm extends JFrame implements ActionListener JLabel labName=new JLabel("学号:"); JLabel labDate=new JLabel("出生日期:"); JLabel labScore=new JLabel("成绩:"); JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(18); JTextField txtScore=new JTextField(20); JButton btnOk=new JButton("确定"); JButton btnClear=new JButton("清空"); JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); Connection cnn; Statement stm; ResultSet rs; AddForm() super("添加数据"); setSize(400,300); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder(); 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.setLayout(new GridLayout(3,1); 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(); public void actionPerformed(ActionEvent ae) 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("") JOptionPane.showMessageDialog(this,"学号不能为空","警告",JOptionPane.ERROR_MESSAGE); else if(strDate.equals("") JOptionPane.showMessageDialog(this,"出生日期不能为空","警告",JOptionPane.ERROR_MESSAGE); els JOptionPane.showMessageDialog(this,"成绩不能为空","警告",JOptionPane.ERROR_MESSAGE); else try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch (ClassNotFoundException ex) ex.printStackTrace(); try cnn=DriverManager.getConnection("Jdbc:Odbc:MyDB"); stm=cnn.createStatement(); catch (SQLException ex) ex.printStackTrace(); try rs = stm.executeQuery("select * from 成绩表 where 学号='" +strName + "'"); if (rs.next() JOptionPane.showMessageDialog(this,"对不起,该成绩信息已存在"); else /否则插入记录 /System.out.println("insert into 成绩表 values('"+strName+"',#"+strDate+"#,"+strScore+")"); stm.executeUpdate("insert into 成绩表 values('"+strName+"','"+strDate+"',"+strScore+")"); JOptionPane.showMessageDialog(null,"记录已经成功添加"); /断开连接 stm.close(); cnn.close(); catch (SQLException ex) System.out.println("SQLException:" + ex.getMessage(); public static void main(String args) new AddForm(); class BrowseForm extends JFrame String str="学号","出生日期","成绩" Object data; JTable table; JTableHeader head; JScrollPane jsp; Connection conn; Statement stmt; ResultSet rs; BrowseForm() super("浏览数据"); setSize(400,300); int i=0,j=0; int row; try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:MyDB","",""); stmt=conn.createStatement(); rs=stmt.executeQuery("select COUNT(*) as a from 成绩表"); rs.next(); row=rs.getInt("a"); rs.close(); data=new Objectrow3; rs=stmt.executeQuery("select * from 成绩表"); while(rs.next() dataij+=rs.getString("学号"); dataij+=rs.getDate("出生日期"); dataij=new Integer(rs.getInt("成绩"); i+;j=0; table=new JTable(data,str); head=table.getTableHeader(); jsp=new JScrollPane(table); getContentPane().add(head,"North"); getContentPane().add(jsp,"Center"); rs.close(); stmt.close(); catch(Exception e) e.printStackTrace(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setVisible(true); public static void main(String args) new BrowseForm(); class DeleteForm extends JFrame implements ActionListener JLabel labName=new JLabel("学号:"); JLabel labDate=new JLabel("出生日期:"); JLabel labScore=new JLabel("成绩:"); JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(18); JTextField txtScore=new JTextField(20); JButton btnDel=new JButton("删除"); JButton btnCancel=new JButton("取消"); JButton btnQuery=new JButton("查询"); JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); Connection cnn; Statement stm; ResultSet rs; DeleteForm() super("删除数据"); setSize(400,300); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder(); 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.setLayout(new GridLayout(3,1); 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(); public void actionPerformed(ActionEvent ae) /* 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 JOption 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(); class LoginForm extends JFrame implements ActionListener JLabel labName=new JLabel("姓名"); JLabel labPwd=new JLabel("密码"); JTextField txtName=new JTextField(20); JPasswordField txtPwd=new JPasswordField(20); JButton btnOk=new JButton("确定"); JButton btnCancel=new JButton("取消"); JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); Connection cnn; Statement stm; ResultSet rs; LoginForm() super("用户登录"); setSize(300,200); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createTitledBorder("登录"); pan.setLayout(new GridLayout(2,1); 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"); catch (ClassNotFoundException ex) ex.printStackTrace(); try cnn=DriverManager.getConnection("Jdbc:Odbc:MyDB"); stm=cnn.createStatement(); catch (SQLException ex) ex.printStackTrace(); txtName.requestFocus(); public void actionPerformed(ActionEvent ae) if(ae.getSource()=txtName) txtPwd.requestFocus(); else if(ae.getSource()=txtPwd) btnOk.requestFocus(); els 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); catch (SQLException ex) ex.printStackTrace(); try if(rs.next() JOptionPane.showMessageDialog(this,"验证通过!","信息",JOptionPane.INFORMATION_MESSAGE); rs.close(); stm.close(); cnn.close(); new MainForm().setVisible(true); this.dispose(); else JOptionPane.showMessageDialog(this,"用户名或密码不正确!","信息",JOptionPane.INFORMATION_MESSAGE); catch (SQLException ex) ex.printStackTrace(); public static void main(String args) new LoginForm(); class ModifyForm extends JFrame implements ActionListener JLabel labName=new JLabel("学号:"); JLabel labDate=new JLabel("出生日期:"); JLabel labScore=new JLabel("成绩:"); JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(18); JTextField txtScore=new JTextField(20); JButton btnModify=new JButton("修改"); JButton btnCancel=new JButton("取消"); JButton btnQuery=new JButton("查询"); JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); Connection cnn; Statement stm; ResultSet rs; ModifyForm() super("修改数据"); setSize(400,300); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder(); 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.setLayout(new GridLayout(3,1); 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(); public void actionPerformed(ActionEvent ae) if(ae.getSource()=btnCancel) try if(s 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("学号"); txtScore.setText(new Integer(rs.getInt("成绩").toString(); txtDate.setText(rs.getDate("出生日期").toString(); btnModify.setEnabled(true); txtDate.setEditable(true); txtScore.setEditable(true); else JOptionPane.showMessageDialog(this,"不存在该记录"); btnModify.setEnabled(false); txtName.setText(""); txtScore.setText(""); txtDate.setText(""); txtDate.setEditable(false); txtScore.setEditable(false); catch(Exception e) 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()+"'"); JOptionPane.showMessageDialog(this,"记录修改完毕"); btnModify.setEnabled(false); txtName.setText(""); txtScore.setText(""); txtDate.setText(""); txtDate.setEditable(false); txtScore.setEditable(false); stm.close(); cnn.close(); catch(Exception e) e.printStackTrace(); public static void main(String args) new ModifyForm(); class NumberQueryForm extends JFrame implements ActionListener JLabel labName=new JLabel("学号:"); JLabel labDate=new JLabel("出生日期:"); JLabel labScore=new JLabel("成绩:"); JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(18); JTextField txtScore=new JTextField(20); JButton btnCancel=new JButton("取消"); JButton btnQuery=new JButton("查询"); JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel() JPanel pan4=new JPanel(); Connection cnn; Statement stm; ResultSet rs; NumberQueryForm() super("按学号查询"); setSize(400,300); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder(); 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.setLayout(new GridLayout(3,1); 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(); public void actionPerformed(ActionEvent ae) 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("学号"); txtScore.setText(new Integer(rs.getInt("成绩").toString(); txtDate.setText(rs.getDate("出生日期").toString(); else JOptionPane.showMessageDialog(this,"不存在该记录"); txtName.setText(""); txtScore.setText(""); txtDate.setText(""); txtName.requestFocus(); catch(Exception e) e.printStackTrace(); public static void main(String args) new NumberQueryForm(); class Score