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表中。E.xg.jav
3、a是修改信息界面。输入要修改学号或姓名(两者数其一或所有输入),并输入所有信息,点击“修改信息”按钮(如果数据库中不存在此学号,则弹出对话框“无此学生信息”),若有则修改。F.sc.java是删除信息界面。输入要删除学生学号,点击“删除信息”按钮,弹出确认删除对话框,即可删除该生信息。G.cx.java是查询信息界面。输入要查询学生学号,点击“信息查询”按钮,在相应文本区里显示查询信息。H:源代码/student.java:程序入口。初始化界面,使主界面位于屏幕中间,且顾客不能变化大小/功能:完毕程序执行顺序import javax.swing.UIManager;import java.aw
4、t.*;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();Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize=frame.getSiz
5、e();if(frameSize.heightscreenSize.height)frameSize.height=screenSize.height;if(frameSize.widthscreenSize.width)frameSize.width=screenSize.width;frame.setLocation(screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);frame.setVisible(true);public static void main(String args)try
6、UIManager.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 Connection conn=null;private Statement stm
7、t=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)return null;public Statement create
8、Stat()tryconn=getConnection();stmt=conn.createStatement();return stmt;catch(SQLException e)return null;public ResultSet getRs(String sql) try conn=getConnection();/. stmt=createStat(); rs=stmt.executeQuery(sql); return rs; catch(SQLException e) return null; public void close() try if(rs!=null) rs.cl
9、ose(); 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.*;public class mainframe extends JFrame implements ActionListenerstatic mainframe s;static JPane
10、l 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(进入系统); static JRadioButton radioButton1=new JRadioButton(管理员
11、,true);/“管理员”初始状态被选中 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(null);pa
12、n.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); radioButto
13、n2.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);this.add
14、(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().equals(
15、syc) & password.getText().equals(123)interfac b=new interfac();this.dispose();/JOptionPane.showMessageDialog(null,登陆成功);else if(.equals(textField1.getText() | .equals(password.getText() )JOptionPane.showMessageDialog(null,顾客名或密码不能为空);else JOptionPane.showMessageDialog(null,顾客名或密码输入有误);if(radioButton
16、2.isSelected()/学生 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 rs = stmt.executeQuery(select * from
17、password where 顾客名 = +textField1.getText()+ and 密码 = +password.getText()+); if(textField1.getText().equals()|password.getText().equals() JOptionPane.showMessageDialog(this,顾客名或密码不可为空!); else if(rs.next() new interfac(); else JOptionPane.showMessageDialog(this,您输入有误); /stmt.close(); catch (SQLExcepti
18、on se)JOptionPane.showMessageDialog(s,se.getMessage();/interface.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class interfac extends JFrame implements ActionListenerstatic JMenuBar jMenuBar = new JMenuBar();/菜单条 static JMenu jMenuFile = new JMenu(文献);/菜单项 static JMenu jM
19、enuExit = new JMenu(退出); static JMenuItem jMenuItem1 = new JMenuItem(添加信息);/菜单子项 static JMenuItem jMenuItem2 = new JMenuItem(修改信息); static JMenuItem jMenuItem3 = new JMenuItem(信息查询); static JMenuItem jMenuItem4 = new JMenuItem(删除信息); static JLabel label3 = new JLabel(请选取操作项); static JLabel label4 =
20、new JLabel(学籍管理系统); static JButton button2 = new JButton(添加信息); static JButton button3 = new JButton(修改信息); static JButton button4 = new JButton(信息查询); static JButton button5 = new JButton(删除信息); public interfac()this.setTitle(学籍管理系统);this.setLayout(null);this.setSize(400,400);label3.setBounds(158,9
21、2,98,33);label3.setFont(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);th
22、is.add(button4);this.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(th
23、is);/本窗口向按钮事件源注册 button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); jMenuItem1.addActionListener(this);/本窗口菜单子项注册 jMenuItem2.addActionListener(this); jMenuItem3.addActionListener(this); jMenuItem4.addActionListener(this); jMenuExit.addActionListener(th
24、is); this.setDefaultCloseOperation(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) try tj
25、 a=new tj(); catch(Exception ee) else if(e.getSource()=jMenuItem2|e.getSource()=button3) try xg a=new xg(); catch(Exception ed) else if(e.getSource()=jMenuItem3|e.getSource()=button4) try cx a=new cx(); catch(Exception ec) else if(e.getSource()=jMenuItem4|e.getSource()=button5) try sc a=new sc(); ca
26、tch(Exception es) /tj.java 添加界面import javax.swing.*;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 JL
27、abel(姓名:); static JTextField textField2 = new JTextField(); 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 te
28、xtField8=new JTextField(); static JLabel label6 = new 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
29、JButton button1 = new JButton(增长); public tj() this.setTitle(增长学生信息); 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.setBound
30、s(275,15,50,25); label4.setBounds(31,53,55,33); 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.setBound
31、s(163,94,51,33); textField5.setBounds(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(textF
32、ield2); this.add(textField3); this.add(textField4); 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
33、 tj(); a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e)/事件解决程序 if (e.getSource() = button1) tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage();tryConnection con = DriverManager.ge
34、tConnection(jdbc:odbc:stu,sa, );Statement stmt = con.createStatement(); ResultSet rs=stmt.executeQuery(select * from xinxi where 学号=+textField1.getText()+); if(rs.next() JOptionPane.showMessageDialog(null,此学号已经被注册); else stmt.execute(insert into xinxi (学号,姓名,性别,出生日期,政治面貌,籍贯,系别,专业) values (+ textFiel
35、d1.getText()+,+textField2.getText()+,+textField7.getText()+,+ textField3.getText()+,+textField8.getText()+,+textField4.getText()+,+ textField9.getText()+,+textField5.getText()+); JOptionPane.showMessageDialog(null,添加信息成功); catch (SQLException se)JOptionPane.showMessageDialog(s,se.getMessage(); /xg.j
36、ava 修改界面import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class xg extends JFrame implements ActionListener static xg s; static JLabel label1 = new JLabel(学号:); static JTextField textField1 = new JTextField(); static JLabel label2 = new JLabel(姓名:); static JText
37、Field textField2 = new JTextField(); 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
38、(); static JLabel label6 = new 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 button2=new JButton(修改); public xg() this.setTitle(修改学生信息); this.setLayout(null); this.setSiz