《学生学籍管理系统(含java源代码).docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统(含java源代码).docx(27页珍藏版)》请在三一办公上搜索。
1、学生学籍管理详细设计学号: 姓名: 班级: 一、设计题目:学生学籍管理二:设计内容:设计 GUI 学生学籍管理界面,用户可以加入学生信息,并对基本信息进行修改,添加,查询,删除。三:设计要求:进行简单的学生信息管理。四:总体设计(1) 登陆界面的设计( 2)主窗体的设计( 3)添加学生信息窗体( 4)查询学生信息窗体( 5)修改学生信息窗体( 6)删除学生信息窗体( 7) 事件响应的处理五:具体设计( 1)程序结构的说明:A. 入口程序:student.java;B. 登陆界面程序:mainframe.java;C. 主窗体程序:interfac.java;D.添加信息窗口程序:tj.java
2、;E. 修改信息窗口程序:xg.java;F. 查询信息窗口程序:cx.java;G.删除信息窗口程序:sc.java;H. 程序数据连接:DatabaseConn.java;(2) 程序代码及分析说明A. 程序源代码(已提交)B.Student.java 是程序的入口。使登录窗口位于窗口中间,并且不可改变窗口大小。C.mainframe.java 是程序的登陆窗体。输入用户名和密码(用户名和密码在数据库的 password 表中)点击“进入系统”,然后登陆界面消失;出现要操作的界面(屏幕左上角)。D.tj.java 是添加信息界面。添加基本信息后,点击“添加信息”按钮,将信息加入 xinxi
3、 表中。E.xg.java 是修改信息界面。输入要修改的学号或姓名(两者数其一或全部输入) ,并输入所有信息,点击“修改信息”按钮(如果数据库中不存在此学号,则弹出对话框“无此学生信息”) ,若有则修改。F.sc.java 是删除信息界面。输入要删除的学生的学号,点击 “删除信息”按钮,弹出确认删除对话框,即可删除该生信息。G.cx.java 是查询信息界面。输入要查询的学生学号,点击“信息查询”按钮,在相应的文本区里显示查询的信息。H:源代码/student.java: 程序的入口。初始化界面,使主界面位于屏幕中间,且用户不能改变大小/ 功能:完成程序的执行顺序import javax.sw
4、ing.UIManager;import java.awt.*;import java.sql.*;/import screenpublic class studentboolean packFrame=false;/JFrame frame=new JFrame();public student()mainframe frame=new mainframe(); if(packFrame)frame.pack();else frame.validate();DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();Dime
5、nsion frameSize=frame.getSize(); if(frameSize.heightscreenSize.height) frameSize.height=screenSize.height;if(frameSize.widthscreenSize.width)frameSize.width=screenSize.width;frame.setLocation(screenSize.width-frameSize.width)/2,(screenSiz e.height-frameSize.height)/2);frame.setVisible(true);public s
6、tatic void main(String args)tryUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName( );catch(Exception e)e.printStackTrace(); new student();/ 数据库连接/package sql.database;import java.sql.*;public class DatabaseConnprivate static String user=;private static String password=;private Connecti
7、on conn=null;private Statement stmt=null;private ResultSet rs=null;static tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);/ 加载驱动catch(ClassNotFoundException e)/ 创建数据库连接对象public Connection getConnection()tryconn=DriverManager.getConnection(jdbc:odbc:stu,user,password); return conn;catch(SQLException e
8、) return null;public Statement createStat()tryconn=getConnection();stmt=conn.createStatement();return stmt;catch(SQLException e)return null;public ResultSet getRs(String sql)tryconn=getConnection();/.stmt=createStat();rs=stmt.executeQuery(sql);return rs;catch(SQLException e)return null;public void c
9、lose()tryif(rs!=null)rs.close();if(stmt!=null)stmt.close();if(conn!=null) conn.close();catch(SQLException ex)ex.printStackTrace();/mainframe.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;implements ActionListenerpublic class mainframe extends JFrame static main
10、frame s;static JPanel pan=new JPanel();static JLabel label1 = new JLabel( 用 户 );static JLabel label2 = new JLabel( 密 码 );static JTextField textField1 = new JTextField();static JPasswordField password = new JPasswordField();static JButton button1 = new JButton( 进入系统);管理员 ,true);/学生);教师);static JRadio
11、Button radioButton1=new JRadioButton(static JRadioButton radioButton2=new JRadioButton( static JRadioButton radioButton3=new JRadioButton( ButtonGroup buttonGroup=new ButtonGroup();public mainframe()JLabel label=new JLabel(new ImageIcon( 图片 44.jpg);label.setSize(400,400);pan.add(label);pan.setLayout
12、(null);pan.setSize(400,400);this.setTitle( 学籍管理系统);this.setSize(400,400);this.setLayout(null);label1.setBounds(100,25,49,20);textField1.setBounds(155,24,120,20);label2.setBounds(100,62,49,20);password.setBounds(155,61,120,20);button1.setBounds(150,200,101,22);radioButton1.setBounds(105,120,80,20);ra
13、dioButton2.setBounds(180,120,60,20);radioButton3.setBounds(240,120,60,20);button1.addActionListener(this);buttonGroup.add(radioButton1);buttonGroup.add(radioButton2);buttonGroup.add(radioButton3);this.add(radioButton1);this.add(radioButton2);this.add(radioButton3);this.add(label1);this.add(label2);t
14、his.add(textField1);this.add(password);this.add(button1);this.add(pan);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);public static void main(String args)new mainframe();public void actionPerformed(ActionEvent e) if(radioButton1.isSelected()/ 管理员 &if(textField1.getText().
15、equals(syc)password.getText().equals(123)interfac b=new interfac();this.dispose();/JOptionPane.showMessageDialog(null, 登陆成功);elseif(.equals(textField1.getText()|.equals(password.getText() )JOptionPane.showMessageDialog(null, 用户名或密码不能为 空 );elseJOptionPane.showMessageDialog(null,用户名或密码输入有误 ); if(radio
16、Button2.isSelected()/ 学生 tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) JOptionPane.showMessageDialog(s,ce.getMessage(); try Connectioncon=DriverManager.getConnection(jdbc:odbc:stu,sa,);Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(select
17、* from password where用户 名= +textField1.getText()+and 密 码=+password.getText()+);if(textField1.getText().equals()|password.getText().equals()JOptionPane.showMessageDialog(this,用户名或密码不可为空!);else if(rs.next() new interfac();elseJOptionPane.showMessageDialog(this,您的输入有误);/stmt.close();catch (SQLException
18、 se)JOptionPane.showMessageDialog(s,se.getMessage();/interface.java import java.awt.*; import java.awt.event.*; import javax.swing.*;public class interfac extends JFrame implements ActionListener菜单条菜单项添加信息);/菜单子项修改信息);信息查询 );删除信息);static JMenuBar jMenuBar = new JMenuBar();/static JMenu jMenuFile = n
19、ew JMenu(文件);/static JMenu jMenuExit = new JMenu(退出);static JMenuItem jMenuItem1 = new JMenuItem( static JMenuItem jMenuItem2 = new JMenuItem( static JMenuItem jMenuItem3 = new JMenuItem( static JMenuItem jMenuItem4 = new JMenuItem(staticJLabel label3 =new JLabel(staticJLabel label4 =new JLabel(stat
20、icJButton button2= new JButton(staticJButton button3= new JButton(staticJButton button4= new JButton(staticJButton button5= new JButton(请选择操作项);学籍管理系统);添加信息);修改信息);信息查询);删除信息);public interfac()this.setTitle( 学籍管理系统);this.setLayout(null);this.setSize(400,400);label3.setBounds(158,92,98,33);label3.set
21、Font(new Font(Dialog,Font.PLAIN,15);label4.setFont(new Font(Dialog,Font.BOLD,20);label4.setBounds(157,37,280,40);button2.setBounds(74,136,97,33);button3.setBounds(226,136,97,33);button4.setBounds(74,185,97,33);button5.setBounds(226,185,97,33);this.add(button2);this.add(button3);this.add(button4);thi
22、s.add(button5);this.add(label3);this.add(label4);setJMenuBar(jMenuBar);jMenuFile.add(jMenuItem1);/ ”文件“菜单项中加入子菜单jMenuFile.add(jMenuItem2);jMenuFile.add(jMenuItem3);jMenuFile.add(jMenuItem4);jMenuBar.add(jMenuFile);/ 将菜单项加入菜单条jMenuBar.add(jMenuExit);button2.addActionListener(this);/本窗口向按钮事件源注册button3
23、.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);jMenuItem1.addActionListener(this);/本窗口菜单子项注册jMenuItem2.addActionListener(this);jMenuItem3.addActionListener(this);jMenuItem4.addActionListener(this);jMenuExit.addActionListener(this);this.setDefaultCloseOperati
24、on(JFrame.EXIT_ON_CLOSE); this.setVisible(true);public static void main(String args)interfac a=new interfac();public void actionPerformed(ActionEvent e) /按钮事件的处理if(e.getSource()=jMenuExit)System.exit(0);else if(e.getSource()=jMenuItem1|e.getSource()=button2) trytj a=new tj();catch(Exception ee) else
25、 if(e.getSource()=jMenuItem2|e.getSource()=button3) try xg a=new xg();catch(Exception ed)elseif(e.getSource()=jMenuItem3|e.getSource()=button4)trycx a=new cx(); catch(Exception ec) elseif(e.getSource()=jMenuItem4|e.getSource()=button5) trysc a=new sc();catch(Exception es) /tj.java 添加界面import javax.s
26、wing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class tj extends JFrame implements ActionListener static tj s;static JLabel label1 = new JLabel( 学号 :);static JTextField textField1 = new JTextField();static JLabel label2 = new JLabel(姓名:);static JTextField textField2 = new J
27、TextField();static JLabel label3 = new JLabel(性别:);static JTextField textField7=new JTextField();static JLabel label4 = new JLabel(出生日期:);static JTextField textField3 = new JTextField();static JLabel label5 = new JLabel(政治面貌:);static JTextField textField8=new JTextField();static JLabel label6 = new
28、JLabel(籍贯 );static JTextField textField4 = new JTextField();static JLabel label7 = new JLabel( 系别 :);static JTextField textField9 = new JTextField();static JLabel label8 = new JLabel(专业 :);static JTextField textField5 = new JTextField();static JButton button1 = new JButton(增加 );public tj()this.setTi
29、tle( 增加学生信息);this.setLayout(null);this.setSize(400,400);label1.setBounds(30, 11, 51, 33);textField1.setBounds(86, 16, 74, 22);label2.setBounds(162, 11, 51, 33);textField2.setBounds(192, 16, 44, 22);label3.setBounds(241, 11, 70, 33);textField7.setBounds(275, 15, 50, 25);label4.setBounds(31, 53, 55, 3
30、3);textField3.setBounds(86, 58, 74, 22);label5.setBounds(241, 53, 70, 33);textField8.setBounds(296, 57, 72, 25);label6.setBounds(163, 53, 26, 33);textField4.setBounds(191, 58, 44, 22);label7.setBounds(30, 94, 50, 33);textField9.setBounds(86,94,74,22);label8.setBounds(163, 94, 51, 33);textField5.setB
31、ounds(190, 99, 178, 22);button1.setBounds(25,241,80,33);button1.addActionListener(this);this.add(label1);this.add(label2);this.add(label3);this.add(label4);this.add(label5);this.add(label6);this.add(label7);this.add(label8);this.add(textField1);this.add(textField2);this.add(textField3);this.add(text
32、Field4);this.add(textField5);this.add(textField7);this.add(textField8);this.add(textField9);this.add(button1);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);this.setVisible(true); public static void main(String args) throws Exception tj a= new tj();a.setDefaultCloseOperation(JFrame.EXIT_ON_C
33、LOSE);public void actionPerformed(ActionEvent e)/事件处理程序if (e.getSource() = button1) tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) JOptionPane.showMessageDialog(s,ce.getMessage(); try Connectioncon=DriverManager.getConnection(jdbc:odbc:stu,sa,);Statement stmt = con
34、.createStatement();ResultSet rs=stmt.executeQuery(select * from xinxi where 学 号 =+textField1.getText()+);if(rs.next() JOptionPane.showMessageDialog(null, 此学号已经被注册); else stmt.execute(insert into xinxi ( 学号 , 姓名 , 性别 , 出生日期,政治面貌,籍贯 , 系别 , 专业 ) values (+textField1.getText()+,+textField2.getText()+,+te
35、xtField7.getText()+,+textField3.getText()+,+textField8.getText()+,+textField4.getText()+,+textField9.getText()+,+textField5.getText()+);JOptionPane.showMessageDialog(null, 添加信息成功);catch (SQLException se)JOptionPane.showMessageDialog(s,se.getMessage(); /xg.java 修改界面import javax.swing.*;import java.aw
36、t.*;import java.awt.event.*;import java.sql.*;public class xg extends JFrame implements ActionListenerstatic xg s;static JLabel label1 = new JLabel( 学号 :);static JTextField textField1 = new JTextField();static JLabel label2 = new JLabel(姓名:);static JTextField textField2 = new JTextField();static JLa
37、bel label3 = new JLabel(性别:);static JTextField textField7=new JTextField();static JLabel label4 = new JLabel(出生日期:);static JTextField textField3 = new JTextField();static JLabel label5 = new JLabel(政治面貌:);static JTextField textField8=new JTextField();static JLabel label6 = new JLabel(籍贯 );static JTe
38、xtField textField4 = new JTextField();static JLabel label7 = new JLabel( 系别 :);static JTextField textField9 = new JTextField();static JLabel label8 = new JLabel(专业 :);static JTextField textField5 = new JTextField();static JButton button2=new JButton( 修改 ); public xg()this.setTitle( 修改学生信息);this.setL
39、ayout(null);this.setSize(400,400);label1.setBounds(30, 11, 51, 33);textField1.setBounds(86, 16, 74, 22);label2.setBounds(162, 11, 51, 33);textField2.setBounds(192, 16, 44, 22);label3.setBounds(241, 11, 70, 33);textField7.setBounds(275, 15, 50, 25);label4.setBounds(31, 53, 55, 33);textField3.setBound
40、s(86, 58, 74, 22);label5.setBounds(241, 53, 70, 33);textField8.setBounds(296, 57, 72, 25);label6.setBounds(163, 53, 26, 33);textField4.setBounds(191, 58, 44, 22);label7.setBounds(30, 94, 50, 33);textField9.setBounds(86,94,74,22);label8.setBounds(163, 94, 51, 33);textField5.setBounds(190, 99, 178, 22
41、);button2.setBounds(115,241,80,33);button2.addActionListener(this);this.add(label1);this.add(label2);this.add(label3);this.add(label4);this.add(label5);this.add(label6);this.add(label7);this.add(label8);this.add(textField1);this.add(textField2);this.add(textField3);this.add(textField4);this.add(text
42、Field5);this.add(textField7);this.add(textField8);this.add(textField9);this.add(button2);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true);public static void main(String args) throws Exceptionxg a=new xg();a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void actio
43、nPerformed(ActionEvent e)/事件处理程序if(e.getSource()=button2)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage();tryConnection con = DriverManager.getConnection(jdbc:odbc:stu,sa,);Statement stmt = con.createStatement();ResultSet
44、 rs=stmt.executeQuery(select * from xinxi where 学 号=+textField1.getText ()+);if(textField1.getText().trim().equals()学号不可为空!JOptionPane.showMessageDialog(this,);else if(rs.next()String=+textField1.getText()+,updateSql=update xinxi 姓名set 学 号textField2.getText()+,性别=+textField7.getText()+,生日期 =+textField3.getText()+,政 治 面 貌=+textField8.getText()+, 籍贯 =+textField4.getText