学生管理系统修改

来源:互联网 发布:毕业证复印件制作软件 编辑:程序博客网 时间:2024/05/01 12:41

对于我们的谭院长,我真是佩服的五体投地,一上课就是代码上万行的说,什么基础的都不讲,直接叫我们看代码,改系统,最后就就是叫我们做一个独立的系统。

没办法,只好按照他的要求码代码,我修改的是他已经留了几年的学生管理系统,现在修改了一点,现在看来效果还不错,我也在修改之中学会了许多JAVA语句,如何连接数据库等。

一开始,学生管理系统摆在我的面前,我什么也看不懂,还是踏踏实实地看了两个星期的JAVA课本,逐渐懂了一点,也开始慢慢改了一点。

首先我把登录界面优化了一下,优化前的代码(关于登录界面的)

void login_actionPerformed(ActionEvent e) {    username = JOptionPane.showInputDialog(this, "请输入用户名");    String pwd = JOptionPane.showInputDialog(this, "请输入密码");    if (! (username == null && pwd == null)) {       try {//连接数据库,验证用户          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");          Connection con = DriverManager.getConnection(              "jdbc:odbc:lee",              "sa", "123");          ps = con.createStatement(ResultSet.                                   TYPE_SCROLL_INSENSITIVE,                                   ResultSet.CONCUR_READ_ONLY);          try {         rs = ps.executeQuery("select * from users where username='" +                              username + "' "); //读取数据库         if (!rs.next())         {           Log log = new Log();           log.addLog("\r\r", username + "用户试图登录系统,失败!");           log.closeStream();           JOptionPane.showMessageDialog(null, "不存在此用户!");         }         else if (! (rs.getString("pwd").trim().equals(pwd))) {           JOptionPane.showMessageDialog(null, "密码错误!");           Log log = new Log();           log.addLog("\r\r", username + "用户试图登录系统,失败!");           log.closeStream();         }         else {           if (rs.getString("power").trim().equals("系统管理员")) {             xjgl.setEnabled(true);             bjgl.setEnabled(true);             kcsz.setEnabled(true);             cjgl.setEnabled(true);             jMenuFile.setEnabled(true);             llyh.setEnabled(true);             adduser.setEnabled(true);             Log log = new Log();             log.addLog("\r\r", username + "(系统管理员)登录系统");             log.closeStream();           }           else {             cjgl.setEnabled(true);             xjgl.setEnabled(true);             xgcj.setEnabled(false);             tjcj.setEnabled(false);             xgxj.setEnabled(false);             tjxj.setEnabled(false);             Log log = new Log();             log.addLog("\r\r", username + "(普通用户)登录系统");             log.closeStream();           }         }       }       catch (SQLException sqle) {         String error = sqle.getMessage();         JOptionPane.showMessageDialog(null, error);         sqle.printStackTrace();       }        }        catch (Exception err) {        //  err.getMessage();          Log log = new Log();          log.addLog("\r\r", "数据库连接错误!");          log.closeStream();          String error = err.getMessage();          JOptionPane.showMessageDialog(null, error);        }      }       }

登录界面图片如图


优化后修改登陆界面的代码

void login_actionPerformed(ActionEvent e) {        f=new JFrame("用户登录");        Container cp=f.getContentPane();        JPanel pa=new JPanel();        pa.setLayout(new FlowLayout());        lb1=new JLabel("请输入用户名:");        lb1.setFont(f1);        pa.add(lb1);        tf1=new JTextField(10);        tf1.setFont(f1);        pa.add(tf1);        lb2=new JLabel("   请输入密码:");        lb2.setFont(f1);        pa.add(lb2);        userpwd=new JPasswordField(10);        userpwd.setFont(f1);        //userpwd.setBounds(new Rectangle(114, 68, 120, 32));        pa.add(userpwd);        JButton bt=new JButton("确定");        bt.setFont(f1);        bt.addActionListener(this);        pa.add(bt);        bt=new JButton("取消");        bt.setFont(f1);        bt.addActionListener(this);        pa.add(bt);        cp.add(pa,BorderLayout.CENTER);        f.pack();        f.setBounds(320, 260,309,156);        f.setVisible(true);        f.setResizable(false);       }  public void logIn(){      if (! (username == null && pwd == null)) {          try {//连接数据库,验证用户              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");              Connection con = DriverManager.getConnection(                  "jdbc:odbc:lee",                  "sa", "123");              ps = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);              try {                  rs = ps.executeQuery("select * from users where username='" +                                  username + "' "); //读取数据库                  if (!rs.next()){                      Log log = new Log();                      log.addLog("\r\r", username + "用户试图登录系统,失败!");                      log.closeStream();                      JOptionPane.showMessageDialog(null, "不存在此用户!");                      }                  else if (! (rs.getString("pwd").trim().equals(pwd))) {                      JOptionPane.showMessageDialog(null, "密码错误!");                      Log log = new Log();                      log.addLog("\r\r", username + "用户试图登录系统,失败!");                      log.closeStream();                      }                  else {                      if (rs.getString("power").trim().equals("系统管理员")) {                          xjgl.setEnabled(true);                          bjgl.setEnabled(true);                          kcsz.setEnabled(true);                          cjgl.setEnabled(true);                          jMenuFile.setEnabled(true);                          llyh.setEnabled(true);                          adduser.setEnabled(true);                          logOut.setEnabled(true);                          login.setEnabled(false);                          deleteuser.setEnabled(true);                          Log log = new Log();                          log.addLog("\r\r", username + "(系统管理员)登录系统");                          log.closeStream();                          }                      else {                          cjgl.setEnabled(true);                          xjgl.setEnabled(true);                          xgcj.setEnabled(false);                          tjcj.setEnabled(false);                          xgxj.setEnabled(false);                          tjxj.setEnabled(false);                          logOut.setEnabled(true);                          deleteuser.setEnabled(false);                          login.setEnabled(false);                          Log log = new Log();                          log.addLog("\r\r", username + "(普通用户)登录系统");                          log.closeStream();                          }                      }                  }              catch (SQLException sqle) {                  String error = sqle.getMessage();                  JOptionPane.showMessageDialog(null, error);                  sqle.printStackTrace();                  }              }          catch (Exception err) {            //  err.getMessage();              Log log = new Log();              log.addLog("\r\r", "数据库连接错误!");              log.closeStream();              String error = err.getMessage();              JOptionPane.showMessageDialog(null, error);              }          }      else{          JOptionPane.showMessageDialog(null, "输入错误,请重新输入");          return;      }      }  public void actionPerformed(ActionEvent e){        String cmd=e.getActionCommand();        if(cmd.equals("确定")){            username=tf1.getText();            pwd=String.valueOf(userpwd.getPassword()).trim();            logIn();            f.setVisible(false);            }        else if(cmd.equals("取消"))            f.setVisible(false);    }

登陆界面变为



此外,我添加了注销用户模块,使用户登录,注销更为合理化


添加的代码为

void logOut_actionPerformed(ActionEvent e) {  xjgl.setEnabled(false);    bjgl.setEnabled(false);    kcsz.setEnabled(false);    cjgl.setEnabled(false);    jMenuFile.setEnabled(true);    llyh.setEnabled(false);    adduser.setEnabled(false);    jMenuItem7.setEnabled(false);    login.setEnabled(true);    logOut.setEnabled(false);    Log log = new Log();    log.addLog("\r\r", username+"注销了用户");    log.closeStream();  }

另外,我发现最多只能存在10个账号,这是程序本身设置的,但不好在添加更多的账号,我就添加了一个删除用户的子模块,代码如下:

Deleteuser.javapackage studentsystem;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;import java.util.Arrays;public class deleteuser extends JDialog {Statement ps;ResultSet rs;Connection con;String url;JPanel panel1 = new JPanel();JButton sure = new JButton();//确定删除JButton cancel = new JButton();//取消删除JComboBox power = new JComboBox();//创建下拉列表JLabel jLabel4 = new JLabel();//选择要删除的用户public deleteuser(Frame frame, String title, boolean modal) { super(frame, title, modal); try { jbInit(); pack(); } catch (Exception ex) { ex.printStackTrace(); } } public deleteuser() {    this(null, "", true);    } private void jbInit() throws Exception { panel1.setLayout(null); this.getContentPane().setLayout(null); panel1.setBounds(new Rectangle(10, 10, 452, 369)); sure.setBounds(new Rectangle(12, 90, 90, 35)); sure.setFont(new java.awt.Font("Dialog", 0, 15)); sure.setText("确  定"); sure.addActionListener(new deleteuser_sure_actionAdapter(this)); cancel.setBounds(new Rectangle(150, 90, 90, 38)); cancel.setFont(new java.awt.Font("Dialog", 0, 15)); cancel.setText("取 消"); cancel.addActionListener(new deleteuser_cancel_actionAdapter(this)); this.setTitle("删除用户"); power.setBounds(new Rectangle(150, 20, 125, 29)); jLabel4.setFont(new java.awt.Font("Dialog", 0, 15)); jLabel4.setText("请选择要删除的用户"); jLabel4.setBounds(new Rectangle(5, 21, 150, 34)); getContentPane().add(panel1, null); panel1.add(sure, null); panel1.add(cancel, null); try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con = DriverManager.getConnection("jdbc:odbc:lee","sa", "123");ps = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);}catch (Exception err) {Log log=new Log();log.addLog("\r\r","数据库连接出错");log.closeStream();JOptionPane.showMessageDialog(null, "连接数据库错误!");}try{rs = ps.executeQuery("select * from users ");while (rs.next())      power.addItem(rs.getString("username"));}catch (SQLException sqle) {String error = sqle.getMessage();JOptionPane.showMessageDialog(null, error);sqle.printStackTrace();} panel1.add(power, null); panel1.add(jLabel4, null); this.setBounds(310, 200, 310, 200); this.setVisible(true);  }  void cancel_actionPerformed(ActionEvent e) {    this.dispose();  } void sure_actionPerformed(ActionEvent e){ int temp=JOptionPane.showConfirmDialog(null, "确定删除用户"+power.getSelectedItem()+"?", "删除用户", JOptionPane.YES_NO_OPTION); if(temp==JOptionPane.YES_OPTION){ try{ ps.executeUpdate("delete from users where username='" +power.getSelectedItem() + "'"); JOptionPane.showMessageDialog(null, "删除成功!"); this.setVisible(false); Log log = new Log(); log.addLog("\r\r", "删除了用户"+power.getSelectedItem() ); log.closeStream(); } catch (SQLException ex) { String err = ex.getMessage(); JOptionPane.showMessageDialog(null, err); } } else return;}}class deleteuser_cancel_actionAdapterimplements java.awt.event.ActionListener {deleteuser adaptee;deleteuser_cancel_actionAdapter(deleteuser adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.cancel_actionPerformed(e);}}class deleteuser_sure_actionAdapter implements java.awt.event.ActionListener {deleteuser adaptee;deleteuser_sure_actionAdapter(deleteuser adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.sure_actionPerformed(e);}}

运行图如下:



其他的若干也进行了优化处理,这里不用多说。

总之,修改这个程序的确让我学到了许多东西,也增加了我的经验吧。