学生管理系统修改
来源:互联网 发布:毕业证复印件制作软件 编辑:程序博客网 时间: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);}}
运行图如下:
其他的若干也进行了优化处理,这里不用多说。
总之,修改这个程序的确让我学到了许多东西,也增加了我的经验吧。
- 学生管理系统修改
- 学生管理系统 最新修改
- MFC学生健康管理系统(修改版)
- 学生管理系统——修改部分
- 【php】4、学生管理系统-修改界面
- 学生管理系统(五)---修改窗体
- 学生管理系统Bug修改--Combo.AddItem 的运用
- 学生学籍管理系统_学生登陆系统查询与修改信息
- 一个学生管理系统
- 学生同学录管理系统
- 学生管理系统
- 销售学生管理系统
- 学生通讯管理系统
- 学生管理系统
- 学生管理系统
- 学生管理系统
- 学生管理系统
- 学生学籍管理系统
- webkit引擎的浏览器取消默认样式:-webkit-appearance:none
- 面试常考题之:HashMap和Hashtable的区别
- Chrome报JS警告
- 《tiny6410裸机程序》第八章:S3C6410外部中断控制寄存器
- JavaScript的执行环境
- 学生管理系统修改
- Android Handler Message Looper机制原理
- 如何在linux下写makefile
- SAP问题记录
- linux scsi generic howto学习笔记
- nbu 2430 war of energy
- JAVA对内存的使用和垃圾回收
- gem5运新spec2006(修改)
- abstract class和interface的区别