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 Object[row][3];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();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 密码='"+newString(txtPwd.getPassword())+"'";try {rs=stm.executeQuery(str);} catch (SQLException ex) {ex.printStackTrace();}try {if(rs.next()){JOptionPane.showMessageDialog(this,"验证通过!","信息",RMATION_MESSAGE);rs.close();stm.close();cnn.close();new MainForm().setVisible(true);this.dispose();}else{JOptionPane.showMessageDialog(this,"用户名或密码不正确!","信息",RMATION_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 ScoreQueryForm extends JFrame implements ActionListener{JLabel labScore=new JLabel("请输入成绩:");JTextField txtScore=new JTextField(10);JButton btnQuery=new JButton("查询");JPanel pan1=new JPanel();JPanel pan2=new JPanel();String []str={"学号","出生日期","成绩"};Object[][] data=new Object[10][3];JTable table=new JTable(data,str);JTableHeader head=table.getTableHeader(); JScrollPane jsp=new JScrollPane(table);Connection conn;Statement stmt;ResultSet rs;Sco super("按成绩查询");setSize(400,300);pan1.add(labScore);pan1.add(txtScore);pan1.add(btnQuery);getContentPane().add(pan1,"North");table=new JTable(data,str);pan2.setLayout(new BorderLayout());head=table.getTableHeader();jsp=new JScrollPane(table);pan2.add(head,"North");pan2.add(jsp,"Center");getContentPane().add(pan2,"Center");btnQuery.addActionListener(this); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setVisible(true);}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnQuery){int i,j,row;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:MyDB","","");stmt=conn.createStatement();rs=stmt.executeQuery("select COUNT(*) as rowcount from 成绩表 where 成绩="+txtScore.getText()); rs.next();row=rs.getInt("rowcount");rs.close();data=new Object[row][3];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);pan2.setLayout(new BorderLayout());head=table.getTableHeader();jsp=new JScrollPane(table);pan2.add(head,"North");pan2.add(jsp,"Center");getContentPane().add(pan2,"Center");this.validate();rs.close();stmt.close();conn.close();}catch(Exception e){e.printStackTrace();}}}public static void main(String[] args) {new ScoreQueryForm();}}class MyPanel extends JPanel{Image img=Toolkit.getDefaultToolkit().getImage("c:/a.jpg"); public void paint(Graphics g){g.drawImage(img,0,0,this);}}class MainForm extends JFrame implements ActionListener{ JMenu mSystem=new JMenu("系统");JMenuItem mExit=new JMenuItem("退出");JMenu mOperate=new JMenu("数据操作");JMenuItem mAdd=new JMenuItem("添加"); JMenuItem mDel=new JMenuItem("删除"); JMenuItem mModify=new JMenuItem("修改"); JMenuItem mBrowse=new JMenuItem("浏览");JMenu mQuery=new JMenu("查询");JMenuItem mNumber=new JMenuItem("按学号查询"); JMenuItem mScore=n JMenu mHelp=new JMenu("帮助"); JMenuItem mAbout=new JMenuItem("关于"); JMenuBar mBar=new JMenuBar();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);}public void actionPerformed(ActionEvent ae){if(ae.getSource()==mExit)System.exit(0);else if(ae.getSource()==mAbout)JOptionPane.showMessageDialog(this,"学生管理系统 V1.0\n\n重庆邮电大学计算机学院\n\n2011年11月","关于",RMATION_MESSAGE);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();}}。