1、用户信息管理系统代码行数639项目名称用户信息管理系统1实训目的面向对象程序设计课程设计是计算机科学与技术专业培养计划中的重要实践教学环节,旨在通过一个管理信息系统的开发,加深学生对Java语言的理解和应用,尤其是对面向对象编程思想、Java编码规范、图形用户接口、JDBC访问数据库的理解,巩固软件工程课程的相关知识,了解软件开发的基本流程,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。2实训内容使用Eclipse为开发工具,使用ProcessOn、IDEA为建模工具,使用MySQL为数据库服务器,基于JDBC技术,分析、设计并实现一个管理信息系统。3.需求分析3.1 需求描述登录:
2、输入账号和密码,完成登录操作,进入主界面,显示所有用户的基本信息以及可进行的相关操作的选项。退出:登录后可进行退出操作,结束整个程序。注册:输入账户、密码和确认密码完成新用户的注册。显示用户信息:登录成功后在主界面中以表格形式显示所有用户的信息。添加用户:输入用户各项信息,完成用户信息的添加操作,添加成功后以表格形式显示所有的用户信息。删除用户:根据用户主键,完成用户信息的删除操作,删除成功后以表格形式显示所有的用户信息。修改用户:输入用户主键,显示用户信息,输入每个字段值,完成用户信息的修改,修改成功后以表格形式显示所有的用户信息。查询用户:可利用模糊查询完成对用户名的查询操作3.2 用例描
3、述4.功能设计4.1 系统层次方框图4.2 算法设计(活动图或时序图)登录功能活动图 注册功能活动图显示所有用户信息活动图用户信息添加活动图查询用户信息活动图删除用户信息活动图修改用户信息活动图5.数据设计5.1 类图设计系统类图数据库访问层类图数据库封装类类图业务层类图控制层类图视图层类图Test类图5.2 数据表设计 t_login表序号字段名类型长度备注1idint4主键2accountchar20唯一性、不为空3passwordchar20不为空t_user表序号字段名类型长度备注1idint4主键2namechar20不为空3sexint20表示男,1表示女4birthdaydate
4、默认不为空6.运行结果1.注册密码和确认密码不一致2.登录3.添加4.删除5.修改6.查询如果没有查询到相关的信息7退出7.关键代码1. LoginService.javaimport java.sql.ResultSet;import java.sql.SQLException;import a.DB;import cn.edu.ccut.po.Login;public class LoginService private DB db; private static LoginService service; private LoginService() /构造方法 db=DB.getIns
5、tance(); public static LoginService getInstance() if(service=null) service=new LoginService(); return service; public boolean login(Login lo) String sql=select * from t_login where account = ?and password = ? ; ResultSet rs=db.executeQueryByParam(sql,lo.getUsername(),lo.getPassword(); try if(rs.next
6、() return true; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally db.close(); return false; public boolean register(Login lo) /注册 String sql =insert into t_login(account,password)values(?,?); int count=db.executeUpdate(sql,lo.getUsername(),lo.getPassword(); db.clo
7、se(); if(count0) return true; else return false; 2.DB.javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DB private static DB db; private Connection con; private PreparedStatement pre; pri
8、vate ResultSet rs; static try Class.forName(com.mysql.jdbc.Driver); catch (ClassNotFoundException e) / TODO Auto-generated catch block e.printStackTrace(); private DB() / 构造方法 public static DB getInstance() if (db = null) db = new DB(); return db; private void buildconnection() try con = DriverManag
9、er.getConnection(jdbc:mysql:/localhost:3306/db, root, ); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); public ResultSet executeQueryByParam(String sql, Object.o) / 查询操作 this.buildconnection(); try pre = con.prepareStatement(sql);/ 预处理操作 System.out.println(o.length); f
10、or (int i = 0; i o.length; i+) pre.setObject(i+1, oi); / 设置字段内容,把通配符替换object rs = pre.executeQuery(); / 执行sql 语句 catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return rs; public ResultSet executeQueryNOparam(String sql) / 查询表中的所有内容 this.buildconnection(); try pre = con
11、.prepareStatement(sql); rs = pre.executeQuery(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return rs; public int executeUpdate(String sql, Object. o) this.buildconnection(); try pre = con.prepareStatement(sql); for (int i = 0; i o.length; i+) pre.setObject(i + 1,
12、oi); / 设置字段内容 int count = pre.executeUpdate(); return count; / 计数,修改的地方 catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return 0; public void close() try if (rs != null) rs.close(); pre.close(); con.close(); catch (SQLException e) / TODO Auto-generated catch block e.pri
13、ntStackTrace(); 3.AddView.javaimport java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.InputMismatchException;import java.util.Scanner;import cn.edu.ccut.service.UserService;public class AddView implements Operation Override public void operation(UserS
14、ervice service) throws InputMismatchException / TODO Auto-generated method stub Scanner scan =new Scanner(System.in); while(true) System.out.println(please input name、sex、birthday to ADD,if return input0:); String name=scan.next(); if(0.equals(name) break; String sex0=scan.next(); int sex1=1; if(男.e
15、quals(sex0) sex1=0; String birthday0=scan.next(); SimpleDateFormat format =new SimpleDateFormat(yyyy-MM-dd); Date birthday =new Date (); try birthday= format .parse(birthday0); catch (ParseException e) / TODO Auto-generated catch block e.printStackTrace(); boolean flag =service .insertOneUser(name,s
16、ex1,new java.sql.Date(birthday.getTime(); if(flag) System.out.println(add success); /scan.close() return; else System.out.println(add failure,try again); 8.实训总结通过三周的实训,时间虽短却也学到了不少的知识。刚开始只是有简单的想法,再到实践,中间还是有很多的问题和错误,但通过这个过程,自身修改错误的能力也相对增长。在这次实训的过程中,我发现平时学习的知识和实践应用有一定的差距,实践中必须自己摸索适合程序的方法,收集各个方面的知识,完成于数据库的连接和后台的搭建。此次实训,让我自己意识到自身还有很多问题,还有很多的不足,系统也不是很完善,但总的来说,此次实训对自身还是有很大的帮助,受益匪浅。成 绩Score教师签字 日期
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1