1、图3-2-1 用户的用例图具体功能用例图(图3-2-2):图3-2-2 具体功能用例图(二)用例描述用例:登录ID:1简单描述:系统的用户、输入正确的用户名和密码进入系统主参与者:用户副参与者:无主流:(1)进入系统登录页面 (2)键入预先分配好的帐号和密码 (3)点击登录,进入系统 (4)登录成功(5)用户名或者密码输入错误超过三次直接退出系统1.登录模块修改学生信息2系统的用户、进本系统前置条件:用户,需要进入本系统的基本信息设置模块(1)进入系统主管理页面 (2)点击基本信息管理设置按钮 (3)点击增删改按钮,在显示的学生信息的表格中鼠标选中要修改的学生信息进行出入要修改的信息进行修改操
2、作 (4)弹框弹出提示信息“修改成功”后置条件:存在要修改的学生附加流:修改出错时提示出错误信息2. 修改学生模块3. id 查询学生信息id查询学生信息3用户,需要进入本系统的学生信息设置模块 (2)点击学生信息管理设置按钮 (3)点击学生id查询按钮,输入id (4)查询成功,界面显示查到的相应信息存在要查询的学生查询出错时提示出错误信息4.删除学生信息删除学生信息4 (3)点击增删改按钮,在显示的学生信息的表格中鼠标选中要删除的学生信息进行一键删除信息操作 (4)弹框弹出提示信息“删除成功”存在要删除的学生删除出错时提示出错误信息5.增加学生增加学生信息5 (3)点击增删改按钮,输入姓名
3、、城市、所属部门进行增加新学生信息 (4)弹框弹出提示信息“增加成功”管理员登录后台成功增加出错时提示出错信息4.功能设计4.1 系统层次方框图系统结构为保证系统具有较好的可维护性和可扩展性,对系统进行分层设计,共分四层: 视图层:接收用户输入信息,显示界面信息和用户信息 控制层:访问流程控制 业务层:完成具体功能的实现 数据库访问层:完成对数据库访问操作的封装具体结构如图所示:4.2 算法设计(活动图或时序图)5.数据设计5.1 类图设计1.数据访问层:包括一个类(My Db.java)主要功能加载驱动连接数据库,执行sql语句并返回结果。2.业务层:包括一个类(user Service.j
4、ava)主要功能是完成具体功能的实现3.控制层:包括一个类(Login.java)主要功能是完成系统的流程4. 视图层: 主要包括七个类:1. MainJFrame.java:进入系统的显示的主界面类(包括三大模块:用户设置、基本信息设置、学生信息)2.UserInfo.java:用户信息的增删改查功能类(输入用户名和密码进行增删改功能并且判断用户名和密码不能为空)3.UserInfo_zsg.java:学生信息的怎删改查操作类4.instudent.java:单独增加学生信息功能类5.fuzzy_find.java:实现学号的模糊查询功能并显示出来类6.can.java:实现模糊查询以及导出
5、查询到的数据表(以 .txt格式导出)和导出学生全部信息表7.find.java:根据学生id单独查询学生以及以表格形式显示出来5.2 数据表设计用户登录表设计:学生信息表设计:6.运行结果主界面功能测试:结果如图6-1所示图6-1 登录界面1.用户名或者密码错误三次提示信息会自动退出系统如下图:图6-2登录失败界面2.用户信息的注册退出操作图6-3程序退出界面图6-4 主界面增加学生信息功能测试:图6-5 增加学生信息界面ID查找个人学生信息功能测试图6-6 id查询学生信息界面id模糊查找学生信息功能测试图6-7 id模糊查询学生信息界面修改学生信息功能测试图6-8 修改学生信息界面删除学
6、生信息功能测试图6-9 删除学生信息界面按学生相应的查询导出数据表:图6-9 导出数据表7.关键代码一:数据访问层:MyDb.java类:package gyf.beanss.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class MyDb private final static String DRIVER=com.mysql.jdbc.Dri
7、ver; private Connection con;/数据库连接对象 private Statement st;/sql语句的执行对象 private ResultSet rs;/查询结果集,用来存放查询的结果,没有查到rs为空 private int n;/更新数据时,成功操作的行数 static/加载 try Class.forName(DRIVER);/加载驱动 catch (ClassNotFoundException e) / TODO Auto-generated catch block e.printStackTrace(); System.out.println(驱动异常)
8、; /* * 建立数据库连接操作 * return */ public Connection getMysqlCon() /&useUnicode=true&characterEncoding=UTF8(处理往数据库存数据中文乱码的问题) String dbur1 = jdbc:mysql:/localhost:3306/cs?/更改数据库名 + user=root&password=root&characterEncoding=UTF8 con=DriverManager.getConnection(dbur1); catch (SQLException e) 数据库连接失败 return
9、con; * 创建执行sql语句的对象 public Statement getPreST(String sql) st=this.getMysqlCon().prepareStatement(sql); return st; public Statement getCreST() st=this.getMysqlCon().createStatement(); * 执行sql语句-查询 public ResultSet getRs(String sql) try rs=this.getCreST().executeQuery(sql); return rs; * 执行sql语句-更新(增加、
10、删除、修改) public int getN(String sql) n = this.getCreST().executeUpdate(sql); return n; * 关闭执行查询所创建的所有对象 public void closeRs() rs.close(); st.close(); con.close(); * 关闭执行更新所创建的所有对象 public void closeN() 二:服务层userService.java类package gyf.beanss.Services;import java.util.List;import gyf.beanss.dao.User_DA
11、O;import gyf.beanss.ps.User;import gyf.beanss.ps.student_message;public class UserServices User_DAO user_DAO; public UserServices() super(); user_DAO=new User_DAO(); * 登录模块的用户名和密码的验证方法 public boolean login(User user) User us1= user_DAO.FindBNamPass(user); if(us1=null) return false; else return true;
12、 * 显示数据表中的所有信息 public List showAll() List all=user_DAO.FindByall(); return all; /* * 删除用户信息 * param id public boolean delete(int id) int user=user_DAO.delete(id); if (user = 1) System.out.println(删除成功1条记录 return true; else return false; 三:控制层Login.java类package gyf.beannss.Main;import java.awt.Color;
13、import java.awt.Container;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import ja
14、vax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import gyf.beanss.Services.UserServices;import gyf.beanss.View.MainJFrame;public class Login extends JFrame implements ActionListener ,KeyListener int count=0;/判断记录登录失败次数 * 控件布置 public Str
15、ing ming ; private JFrame jf = new JFrame(登录界面/窗框显示 private Container con = jf.getContentPane();/容器 private JTextField j4 = new JTextField(10);/用户名输入框 private JPasswordField j5 = new JPasswordField(10);/密码输入框 private JLabel j1 = new JLabel(用户名/j1 标签 private JLabel j2 = new JLabel(密 码/j2 标签 private J
16、Label j3 = new JLabel(欢迎登陆/j3标签 private JButton jb1 = new JButton(确定/jb1确定按钮 private JButton jb2 = new JButton(取消/jb2取消按钮 /* * 面板实例化 private JPanel jp1 = new JPanel();/jp1面板 private JPanel jp2 = new JPanel(); private JPanel jp3 = new JPanel(); Login(String ming ) this.ming=ming; jf.setSize(200, 210)
17、; jf.setVisible(true); /-设置屏幕居中显示- Toolkit KIT =Toolkit.getDefaultToolkit(); Dimension screen =KIT.getScreenSize(); int X=screen.width; int Y=screen.height; int Xcenter =(X-this.getSize().width)/2; int Ycenter =(Y-this.getSize().height)/2; jf.setLocation(Xcenter,Ycenter); /- / 将jp1,jp2,jp3,三个面板按着北 ,
18、中,南三个方向依次摆放 con.add(jp1, North con.add(jp2, Center con.add(jp3, South / 给三个面板添加颜色 jp1.setBackground(Color.cyan); jp2.setBackground(Color.PINK); jp3.setBackground(Color.green); jb1.setBackground(Color.red); jb2.setBackground(Color.red); / 将相应的组件添加在相应的面板上 jp1.add(j3); jp2.add(j1); jp2.add(j4); jp2.add
19、(j2, East jp2.add(j5); jp3.add(jb1); jp3.add(jb2); /给按钮添加监听 jb1.addActionListener(this); jb2.addActionListener(this); j4.addKeyListener(this); j5.addKeyListener(this); / 主函数 public static void main(String args) new Login( * 事物监听方法 */ public void actionPerformed(ActionEvent e) if (e.getSource() = jb1
20、) confirm();/ 用来判断用户名和密码 ming =j4.getText(); else if (e.getSource() = jb2) jf.dispose();/点击取消按钮后窗体退出 * 验证用户名和密码 public void confirm() / 执行查找方法 String username =j4.getText(); String userpass = j5.getText(); User user =new User(username, userpass); UserServices us=new UserServices(); /login(user); if(
21、us.login(user) MainJFrame cc =new MainJFrame();/调用菜单的窗口 jf.hide();/调用后进入菜单界面后登录窗口隐藏 else count+; JOptionPane.showMessageDialog(null, 用户名或密码错误, 提示!, JOptionPane.YES_NO_OPTION); j4.setText( j5.setText( if(count=3) JOptionPane.showMessageDialog(null, 用户名或密码错误超过三次 jf.hide(); jf.getDefaultCloseOperation();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1