1、1一 功能分析: 21 功能要求: 22 功能详解 2:创建数据库,有三个数据表 2二 程序设计: 41 UML 类图 .4三 详细设计: 61 结构设计 6四 部分代码: 13一 功能分析:管理员登陆系统可对信息进行删除,添加,和查找,修改操作,学生可查询全部学生信息和自己的学生信息的操作,本系统方便,可用于小型专业之间,可便于老师对学生的管理,切便于学生之间相互了解,本本系统很方便!本本系统利用数据库对学生信息进行存储,用 javaSwing 图形界面进行操作。1 功能要求:1)需要管理的学生信息有:学号、姓名、性别、出生日期、政治面貌、家庭住址、电话、宿舍号。2)实现查询、增、删、改等功
2、能。3)存文本本件或者2 功能详解:创建数据库,有三个数据表学生信息表:数据信息:2学生登陆表: user管理员登录表:系统用例图:3二 程序设计:1 UML 类图登陆者:修改: 添加 添加45三 详细设计:1 结构设计系统设计学生信息查询全部查询管理员信息查询信息删除信息修改信息添加结构设计2 系统界面:登陆主页面:6管理员登陆界面:学生登陆页面:7管理员登陆成功页面:管理员信息查询成功页面:8查询全部学生成绩:9信息删除:信息修改成功页面:10添加学生信息:11退出系统窗口12四 部分代码:1 数据库连接package dao;import java.sql.Connection;impo
3、rt java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class BaseDao private String driver = “com.mysql.jdbc.Driver“;private String url = “jdbc:mysql:/localhost:3306/student“;private String username = “root“;private String password =
4、 “root“;private Connection conn = null;private PreparedStatement pstmt = null;private ResultSet rs = null;/* 注册数据库驱动* */public BaseDao()try Class.forName(driver);/注册驱动 catch (ClassNotFoundException e) e.printStackTrace();/* 建立数据库连接,返回连接* */public Connection getConn()try /建立连接conn = DriverManager.get
5、Connection(url, username, password);/System.out.println(“数据库连接成功“); catch (SQLException e) 13e.printStackTrace();return conn;/* 关闭数据库连接* */public void close(Connection conn,PreparedStatement pstmt,ResultSet rs)if(rs != null)try rs.close(); catch (SQLException e) e.printStackTrace();if(pstmt != null)
6、try pstmt.close(); catch (SQLException e) e.printStackTrace();if(conn != null)try conn.close(); catch (SQLException e) e.printStackTrace();2 登陆主页面package student;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import javax.swing.event.*;import java.sql.*;14class log
7、in extends JFrameimplements ActionListenerJButton JB1 =new JButton(“管理员登录“);/创建按钮对象JButton JB2 =new JButton(“学生登录“);public login()this.setTitle(“学生信息管理系统 “);/设置窗口的显示标题this.setLayout(null);JB1.setBounds(50,200,100,20);/设置按钮显示的大小以及位置this.add(JB1); /将组件添加到容器中JB1.addActionListener(this);JB2.setBounds(20
8、0,200,100,20);this.add(JB2); /将组件添加到容器中JB2.addActionListener(this);this.setVisible(true);this.setBounds(10,10,400,400);addWindowListener(new WindowAdapter()/设置关闭窗口的事件监听 public void windowClosing(WindowEvent e)System.exit(0););public void actionPerformed(ActionEvent e)if(e.getSource()=JB1)new Info_Ma
9、nage();if(e.getSource()=JB2)new users();15/new methoded();public static void main(String argd)new login();3 管理员登陆成功:package student;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import javax.swing.event.*;class student_manage extends JFrameimplements ActionListene
10、rJMenuBar jm =new JMenuBar(); /创建一个工具条对象JMenu jm1 =new JMenu(“学生信息“); /创建文件菜单对象,显示“信息”JMenuItem jmi1=new JMenuItem(“增加信息“);/创建菜单项对象,显示“增加信息”JMenuItem jmi2=new JMenuItem(“删除信息“);/创建菜单项对象,显示“删除信息”JMenuItem jmi3=new JMenuItem(“修改信息“);/创建菜单项对象,显示“修改信息”JMenu jm2=new JMenu(“学生查询“); /创建文件菜单对象JMenuItem jmi2
11、1=new JMenuItem(“学生信息查询“);/创建菜单项对象,显示“学生信息查询”JMenuItem jm22=new JMenuItem(“查询全部 “);/创建菜单项对象,显示“学生成绩查询”JMenu jm3=new JMenu(“退出“);/创建文件菜单对象JMenuItem jmi31=new JMenuItem(“退出“);/ 创建菜单项对象,显示“退出”Container con=new Container();JLabel label=new JLabel(“欢迎登录学生信息管理信息系统 “,JLabel.CENTER); 16JPanel pCenter=new JP
12、anel();public student_manage()this.setTitle(“欢迎登录学籍管理信息系统 “);this.setLayout(new CardLayout(); con=getContentPane();pCenter.setLayout(new CardLayout(); label.setFont(new Font(“TimesRoman“,Font.BOLD,24);label.setForeground(Color.red);this.setJMenuBar(jm); /设置工具条、菜单及菜单项jm.add(jm1);jm.add(jm2);jm.add(jm
13、3);jm1.add(jmi1);jm1.add(jmi2);jm1.add(jmi3);jm2.add(jmi21);jm2.add(jm22);jm3.add(jmi31);jmi1.addActionListener(this);jmi2.addActionListener(this);jmi3.addActionListener(this);jm2.addActionListener(this);jmi21.addActionListener(this);jm22.addActionListener(this);jm3.addActionListener(this);jmi31.add
14、ActionListener(this);con.add(pCenter,BorderLayout.CENTER);con.validate();17this.setBounds(10,10,500,400);this.setVisible(true);addWindowListener(new WindowAdapter() /设置事件监听 public void windowClosing(WindowEvent e)System.exit(0); /关闭窗口);public void actionPerformed(ActionEvent e) /设置监听事件处理if(e.getSour
15、ce()=jmi1)new AddStudent();if(e.getSource()=jmi2)new DeleteStudent();if(e.getSource()=jmi3)new GetStudent();if(e.getSource()=jmi21)new SetStudent();if(e.getSource()=jmi31)new UsingExit().setVisible(true);if(e.getSource()=jm22)new findall();18package student;import java.awt.*;import java.awt.event.Ac
16、tionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class methoded extends JFrame implements ActionListenerJLabel bb=new JLabel(“请输入要进行的操作“);JButton b1,b2,b3,b4,b5,b6;JButton B=new JButton(“查找“),new JButton(“查找全部 “),new JButton(“退出“);public String username=null;public methoded
17、() this.setBounds(400, 300, 300, 200);Container c=getContentPane();c.setLayout(new GridLayout(2,1);JPanel dd=new JPanel();dd.add(bb);c.add(dd);JPanel pp=new JPanel(new GridLayout(3,1);pp.setBounds(300,200,200,300);for(int i=0;i0)/判断是否查询成功以返回各自输出结果JOptionPane.showMessageDialog(null,“查询成功!“);elseJOpti
18、onPane.showMessageDialog(null,“查询失败!“);elseJOptionPane.showMessageDialog(null,“不存在该学号学生!“);catch(Exception ee)if(e.getSource()=JBNext)JTNumber.setText(null);JTName.setText(null);21JTBir.setText(null);JT1.setText(null);JT2.setText(null);JT3.setText(null);JT4.setText(null);if(e.getSource()=JBExit)setV
19、isible(false);if(e.getSource()=JBack)new student_manage();5 添加:public void actionPerformed(ActionEvent e) if (e.getSource() = JBAdd) String snumber = JTNumber.getText();/ 获取到文本框中所输入的信息String sname = JTName.getText();/ 获取到文本框中所输入的信息String bir = JTBir.getText();/ 获取到文本框中所输入的信息String ssex = “女“, sql;/
20、获取到文本框中所输入的信息if (JRB1.isSelected()ssex = “男“;String place = (String) pro.getSelectedItem();String tel = JT2.getText();String polite = JT3.getText();String sushe = JT4.getText();22if (snumber.equals(“) JOptionPane.showMessageDialog(null, “请输入学号“);return ;if (sname.equals(“) JOptionPane.showMessageDia
21、log(null, “请输入姓名“);return ;if (bir.equals(“) JOptionPane.showMessageDialog(null, “请输入生日!“);return ;if (ssex.equals(“) JOptionPane.showMessageDialog(null, “请输入性别!“);return ;if (polite.equals(“) JOptionPane.showMessageDialog(null, “请输入政治面貌!“);return ;if (sushe.equals(“) JOptionPane.showMessageDialog(n
22、ull, “请输入宿舍号!“);return ;23try int id = Integer.parseInt(snumber); catch (Exception ee) JOptionPane.showMessageDialog(null, “你输入的不是数字!“);if (ClassPathResource.isMobileNO(tel) = false) JOptionPane.showMessageDialog(null, “你输入的电话号码不合法!“);return ;if (new dateCheck().isTrue(bir)JOptionPane.showMessageDia
23、log(null, “请按 年-月-日格式填写!“);if(!(polite.equals(“党员“)|polite.equals( “群众“)JOptionPane.showMessageDialog(null, “请输入党员或群众“);return ;sql = “select * from student where Id=“ + snumber + “;/ 根据id来进行对数据库信息的查询BaseDao D = new BaseDao();try Connection cot = D.getConn();Statement stm = cot.createStatement();Res
24、ultSet rs = stm.executeQuery(sql);/ 传入sql语句,执行查询if (rs.next()24JOptionPane.showMessageDialog(null, “该号已经存在!“);else sql = “insert into student values(“ + snumber + “,“+ sname + “,“ + bir + “,“ + ssex + “,“+ place + “,“ + tel + “,“ + polite + “,“+ sushe + “);“;int i = stm.executeUpdate(sql);System.out
25、.println(“haha“);if (i 0)JOptionPane.showMessageDialog(null, “添加成功!“);else/ 否则的话提示”添加失败“JOptionPane.showMessageDialog(null, “添加失败!“); catch (Exception ee) if (e.getSource() = JBNext) JTNumber.setText(null);JTName.setText(null);JTBir.setText(null);/pro.setSelectedIndex(0);JT2.setText(null);JT3.setTex
26、t(null);JT4.setText(null);if (e.getSource() = JBExit) setVisible(false);25if(e.getSource()=JBack)new student_manage();5 删除:public void actionPerformed(ActionEvent e) /执行操作if(e.getSource()=JBDel)String snumber=JTNumber.getText(); /获取到文本框中填入的学号信息String sname=JTName.getText();if (snumber.equals(“) JOpt
27、ionPane.showMessageDialog(null, “请输入学号“);return ;if (sname.equals(“) JOptionPane.showMessageDialog(null, “请输入姓名“);return ;try int id = Integer.parseInt(snumber); catch (Exception ee) JOptionPane.showMessageDialog(null, “你输入的不是数字!“);sql=“select * from student where Id=“+snumber+“;BaseDao D = new Base
28、Dao();try Connection cot = D.getConn();26Statement stm=cot.createStatement();ResultSet rs=stm.executeQuery(sql);/执行sql 语句if(rs.next()sql=“delete * from s1tudent where Id=“+snumber+“;/删除sql语句int n=stm.executeUpdate(sql);if(n0)/如果执行成功则返回“删除成功”JOptionPane.showMessageDialog(null,“删除成功!“ );else/否则提示“删除失败
29、”JOptionPane.showMessageDialog(null,“删除失败!“ );else/如果不存在这个学号的学生,则返回相应信息JOptionPane.showMessageDialog(null,“不存在该学号学生!“ );catch(Exception er)if(e.getSource()=JBNext)JTNumber.setText(null);JTName.setText(null);if(e.getSource()=JBExit)setVisible(false);if(e.getSource()=JBack)new student_manage();6 修改:pu
30、blic void actionPerformed(ActionEvent e)27if(e.getSource()=JBGet )String snumber=JTNumber.getText();/获取到文本框中所输入的信息String sname=JTName.getText();/获取到文本框中所输入的信息String bir=JTBir.getText();/获取到文本框中所输入的信息String ssex=“女“ ,sql;/获取到文本框中所输入的信息if(JRB1.isSelected()ssex=“男“ ;String place = (String) pro.getSelec
31、tedItem();String tel=JT2.getText();String polite=JT4.getText();String sushe=JT3.getText();if (snumber.equals(“) JOptionPane.showMessageDialog(null, “请输入学号“);return ;if (sname.equals(“) JOptionPane.showMessageDialog(null, “请输入姓名“);return ;if (bir.equals(“) JOptionPane.showMessageDialog(null, “请输入生日!“
32、);return ;if (ssex.equals(“) JOptionPane.showMessageDialog(null, “请输入性别!“);return ;28if (polite.equals(“) JOptionPane.showMessageDialog(null, “请输入政治面貌!“);return ;if (sushe.equals(“) JOptionPane.showMessageDialog(null, “请输入宿舍号!“);return ;try int id = Integer.parseInt(snumber); catch (Exception ee) JO
33、ptionPane.showMessageDialog(null, “你输入的不是数字!“);if (ClassPathResource.isMobileNO(tel) = false) JOptionPane.showMessageDialog(null, “你输入的电话号码不合法!“);return ;if (new dateCheck().isTrue(bir)JOptionPane.showMessageDialog(null, “请按 年- 月-日格式填写 !“);if(!(polite.equals(“党员“)|polite.equals( “群众“)JOptionPane.sho
34、wMessageDialog(null, “请输入党员或群众“);return ;29sql=“select * from student where Id=“+snumber+“;/根据编号进行数据库的查询BaseDao D=new BaseDao();tryConnection cot=D.getConn();Statement stm=cot.createStatement();ResultSet rs=stm.executeQuery(sql);/执行sql语句if(rs.next()sql=“update student set name=“+sname+“,bir=“+bir+“,
35、sex=“+ssex+“,place=“+place+“,tel=“+tel+“,“ +“polite=“+polite+“,sushe=“+sushe+“ where Id=“+snumber+“;int n=stm.executeUpdate(sql);if(n0)/修改成功则返回相应的提示信息JOptionPane.showMessageDialog(null,“修改成功!“);else/修改失败则返回修改失败信息JOptionPane.showMessageDialog(null,“修改失败!“);else/否则将提示不存在该学号学生JOptionPane.showMessageDia
36、log(null,“不存在该学号学生!“); catch(Exception er) if(e.getSource()=JBNext)JTNumber.setText(null);JTName.setText(null);JTBir.setText(null);/JT1.setText(null);30JT2.setText(null);JT3.setText(null);JT4.setText(null);if(e.getSource()=JBExit)setVisible(false);if(e.getSource()=JBack)new student_manage();总结:本来是要用网页来实现的,最后在调试时,tomcat 崩溃,没办法,就做了一个 java 图形界面,但是中间遇到了很多困难,在添加数据是,由于 SQL 语句多了一个冒号,和删除是语句多了一个星号而调试了很长时间,通过这次课设,我学到了很多,通过这次课设也增加了我对编程的自己,单页发现了自己的不足,下定决心,多实践,相信会有成功的那一天