毕业设计用户管理系统的设计与开发样本.doc
《毕业设计用户管理系统的设计与开发样本.doc》由会员分享,可在线阅读,更多相关《毕业设计用户管理系统的设计与开发样本.doc(36页珍藏版)》请在咨信网上搜索。
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 XXXX大学XX学院 毕业设计报告书 课程名称: 软件开发毕业设计 题 目: 用户管理系统的设计与开发 系 名: XXXX系 专业班级: XXXX专业XXXX班 姓 名: 学 号: 指导教师: 年 月 日 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 设计题目: 用户管理系统的设计与开发 初始条件: 了解软件工程基本知识, 掌握JAVA编程基础, 了解基本的软件开发工具。 要求完成的主要任务: 功能: 用户能够注册, 然后登陆, 有错误提示等。登陆成功以后, 会列出所有用户的记录信息。 登陆用户可对记录进行增加、 修改、 删除、 查询等操作。 技术: jsp+servlet+tomcat6.0+mysql 设计报告撰写格式要求: 一、 课程设计说明书( 或报告书) 正文内容 【设计题目】用户管理系统的设计与开发 【开发环境】windows XP 【开发工具】MyEclipse 7.0, tomcat 6.0, MySQL 【完成时间】 【设计思想】 描述确定设计内容后, 自己如何思考的、 确定设计的方案是什么? 打算如何实现 【设计过程及设计步骤】 将设计的步骤及实施过程分步总结写出来 【测试运行】描述对于自己给定的数据, 运行后的结果如何? 【评价与修订】 对自己设计内容及结果进行全面评价描述, 包括: 创造性、 独特性、 满意程度及不足处, 并提出改进意见; 【设计体会】 总结本次实训经验、 教训、 收获、 体会, 为今后的实践环节学习打好基础 【参考文献】 罗列在设计过程中查阅的文献名称 时间安排: 目录 第1章 需求分析 1 1.1设计题目 1 1.2设计要求 1 1.3设计任务 1 1.4开发环境与工具 2 第2章 概要设计 2 2.1 设计思想 2 2.2 系统功能设计 2 第3章 详细设计 3 第4章 设计运行结果与分析 10 4.1 运行结果 10 4.1.1 用户登录界面 10 4.1.2 添加用户 10 4.1.3 修改用户信息 11 4.1.4 删除用户 11 4.1.5 查询用户 11 4.2 结果分析 12 第5章 设计体会与小结 13 参考文献 13 附录……………………………………………………………………14 第1章 需求分析 1.1设计题目 用户管理系统的设计与开发。 1.2设计要求 (1) 了解软件工程基本知识。 (2) 掌握JAVA编程基础。 (3) 了解基本的软件开发工具。 1.3设计任务 (1) 设计一个用户管理系统, 用户能够注册、 登陆, 登陆成功后, 会列出所有用户的记录信息。 ( 2) 登录用户能够对记录进行增加、 删除、 修改, 查询操作。 1.4开发环境工具 Windows XP系统,MyEclipse 7.0, tomcat 6.0, MySQL等开发工具。 第2章 概要设计 2.1 设计思想 本次课程设计经过使用MYSQL, Myeclisp 7.0, Tomcat 6.0等软件, 首先设计一个用户管理系统, 以达到用户能够注册、 登陆, 登陆成功后, 会列出所有用户的记录信息的目的最后能实现登录用户能够对记录进行增加、 删除、 修改, 查询操作等工作。首先利用Mysql软件创立数据库, 命名为db_user; 然后, 在db_user中创立表, 命名为tb_user, 在表中创立4个字段: 用户编号( userId) , 用户姓名( userName) , 用户密码( userPass) , 用户年龄( userAge) , 而且将用户编号设置为主键。进行数据库连接, 最后在Myeclisp 7.0工具中去运行编程结果以达到用户登录进行增加、 删除、 修改, 查询操作。 2.2系统功能设计 系统功能 用户登录 用户管理 修改用户信息 删除用户信息 添加用户 查询用户 2.2系统功能图 第3章 详细设计 3.1 创立数据库, 在数据库中建立用户信息表: Create database db_user Use db_user Create table tb_user( userId int not null primary key,userName varchar(20),userPass varchar(50),userAge int) 3.2 创立数据库连接: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnection { private static String driverName = "com.mysql.jdbc.Driver"; private static String userName; private static String userPass; private static String url = "jdbc:mysql://localhost:3306/db_user"; public static Connection getConnection(String _url, String _userName, String _userPass) { userName = _userName; userPass = _userPass; url = _url; Connection conn = null; try { Class.forName(driverName); conn = DriverManager.getConnection(url, userName, userPass); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } public static Connection getConnection() { return getConnection(url, "root", "123456"); } public static void closeConnection(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } 3.3 用户主要功能的实现: import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import com.softeem.dto.UserDTO; public class UserDAO { private Connection conn; private Statement st; private ResultSet rs; private String sql; public void add(UserDTO user) { conn = DBConnection.getConnection(); try { st = conn.createStatement(); sql = "insert into tb_user(userName,userPass,userAge) values('" + user.getUserName() + "','" + user.getUserPass() + "','" + user.getUserAge() + "')"; int m = st.executeUpdate(sql); if (m != 0) { System.out.println("添加成功"); } DBConnection.closeConnection(conn); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void update(UserDTO user) { conn = DBConnection.getConnection(); try { st = conn.createStatement(); sql = "update tb_user set userName='" + user.getUserName() + "',userPass='" + user.getUserPass() + "',userAge='" + user.getUserAge() + "' where userId='" + user.getUserId() + "'"; int m = st.executeUpdate(sql); if (m != 0) { System.out.println("修改成功"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void delete(int n) { conn = DBConnection.getConnection(); try { st = conn.createStatement(); sql = "delete from tb_user where userId='" + n + "'"; int m = st.executeUpdate(sql); if (m != 0) { System.out.println("删除成功"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public ArrayList<UserDTO> selectAll() { ArrayList<UserDTO> list = new ArrayList<UserDTO>(); conn = DBConnection.getConnection(); try { st = conn.createStatement(); sql = "select * from tb_user"; rs = st.executeQuery(sql); while (rs.next()) { UserDTO user = new UserDTO(); user.setUserId(rs.getInt("userId")); user.setUserName(rs.getString("userName")); user.setUserPass(rs.getString("userPass")); user.setUserAge(rs.getInt("userAge")); list.add(user); } } catch (SQLException e) { e.printStackTrace(); } return list; } public UserDTO selectById(int n) { UserDTO user = new UserDTO(); conn = DBConnection.getConnection(); try { st = conn.createStatement(); sql = "select * from tb_user where userId='" + n + "'"; rs = st.executeQuery(sql); while (rs.next()) { user.setUserId(rs.getInt("userId")); user.setUserName(rs.getString("userName")); user.setUserPass(rs.getString("userPass")); user.setUserAge(rs.getInt("userAge")); } } catch (SQLException e) { e.printStackTrace(); } return user; } public ArrayList<UserDTO> selectByProperty(String property, String value) { ArrayList<UserDTO> list = new ArrayList<UserDTO>(); conn = DBConnection.getConnection(); PreparedStatement pst = null; try { if (property.equals("") || property == null || value.equals("") || value == null) { sql = "select * from tb_user"; pst = conn.prepareStatement(sql); } else { sql = "select * from tb_user where " + property + " like ?"; pst = conn.prepareStatement(sql); pst.setString(1, "%" + value + "%"); } System.out.println(sql); rs = pst.executeQuery(); while (rs.next()) { UserDTO user = new UserDTO(); user.setUserId(rs.getInt("userId")); user.setUserName(rs.getString("userName")); user.setUserPass(rs.getString("userPass")); user.setUserAge(rs.getInt("userAge")); list.add(user); } } catch (SQLException e) { e.printStackTrace(); } return list; } public boolean checkLoginuser(UserDTO user) { boolean flag = false; conn = DBConnection.getConnection(); try { st = conn.createStatement(); // sql = "select * from tb_user where userName='" + // user.getUserName() // + "' and userPass='" + user.getUserPass() + "'"; //查询满足userName和userPass条件的记录 sql = "select count(*) from tb_user where userName='" + user.getUserName() + "' and userPass='" + user.getUserPass() + "'"; // sql="select userPass from tb_user where userName='"+user.getUserName()+"'"; //执行sql语句 rs = st.executeQuery(sql); //对结果集进行遍历 如果查询的记录条数大于0 则说明 数据库存在该条记录此时改变flag的值 while (rs.next()) { if (rs.getInt(1) > 0) { flag = true; } } } catch (SQLException e) { e.printStackTrace(); } return flag; } } 3.4 测试过程: public class UserDAOTest { @Test public void testAdd() { UserDTO user = new UserDTO(); user.setUserName("admin"); user.setUserPass("123456"); user.setUserAge(43); UserDAO dao = new UserDAO(); dao.add(user); } @Test public void testUpdate() { UserDTO user = new UserDTO(); user.setUserId(1); user.setUserName("test"); user.setUserPass("1111111"); user.setUserAge(111); UserDAO dao = new UserDAO(); dao.update(user); } @Test public void delete() { UserDAO dao = new UserDAO(); dao.delete(1); } @Test public void testSelectAll() { UserDAO dao = new UserDAO(); ArrayList<UserDTO> list = dao.selectAll(); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i).getUserId() + "\t" + list.get(i).getUserName() + "\t" + list.get(i).getUserPass() + "\t" + list.get(i).getUserAge()); } } @Test public void testSelectById(){ UserDAO dao=new UserDAO(); UserDTO user=dao.selectById(6); System.out.println(user.toString()); } @Test public void testCheckLoginuser(){ UserDTO user=new UserDTO(); user.setUserName("Lucy"); user.setUserPass("123456"); UserDAO dao=new UserDAO(); boolean flag=dao.checkLoginuser(user); System.out.println(flag); } } 第4章 设计运行结果与分析 4.1 运行结果 4.1.1 用户登录界面 运行login.jsp得到的结果如下: 图 3.1.1 用户登陆界面 4.1.2 添加用户 点击页面的增加选项, 弹出如下窗口, 添加新用户, 用户名为admin, 设置密码, 用户年龄。设置完成后, 点击增加按钮。 添加用户成功后, 显示页面如下: 图3.1.2 增加用户 4.1.3 修改用户信息 点击页面的”编辑”按钮, 修改用户名为” admin ”的用户信息, 将其用户密码修改为123456。 修改页面如下图 图3.1.3 修改用户信息 修改成功后, 页面显示如下图 图3.1.3 修改后用户信息 4.1.4 删除用户 点击”删除”按钮, 删除用户姓名为”a”,即删除。 4.1.5 查询用户 查询某用户信息, 查询结果如图: 图3-7 用户信息 图3.1.5查询结果 4.2 结果分析 本次课程设计基本达到了任务要求, 用户在登录界面登录后, 经过运行和调试能够成功的注册、 登陆, 登陆成功后, 会列出所有用户的记录信息。最后登陆对用户信息进行添加, 删除, 修改以及最后进行查询, 都达到了预期的结果, 如3.1中设计结果的运行和所得出的视图。同时设计过程中依然存在许多不足, 主要是对开发工具的不能熟练掌握和功能的运用, 从而导致用户界面不够好, 编程和运行时出现了些问题。用jsp开发和java语言来进行编程以及对开发工具Myeclipse的使用得到了添加, 删除, 修改以及查询最终得到了用户界面基本符合课程设计的要求。 第5章 设计体会与小结 经过近两个星期的软件开发工具的课程设计, 让我学到了很多东西, 特别是让我学会了使用jsp的开发和进一步熟悉和掌握了java语言的编程以及对开发工具Myeclipse的使用。在这次课程设计中, 经过指导老师近两个星期的讲解, 不断的丰富我们软件开发工具的知识, 让我受益匪浅同时也检验了我所学习的知识, 重要的是让我在平时中没有理解和掌握的东西有了进一步深入的理解。在设计过程中, 我也遇到了很多问题和困难, 在与同学们相互探讨, 相互学习的过程中让我逐渐掌握了解决这些困难的技巧。我觉得课程设计, 主要在于经过理论与实际的结合, 提高我们平时课堂中学不到的东西, 如何理论联系实际。经过实践能够我意识到了的课堂学习与实际工作学习的差距, 平时我们更应该去好好学习去掌握每个知识点才能为我们的实际动手能力打下良好的基础。本次课程设计我深深的感受到平时学习中存在的不足, 让我体会深刻, 在以后的学习中我们应更加努力。课程设计过程中我的实际能力不好, 因此碰到很多问题, 经过对问题的解决我的动手能力才慢慢开始熟练起来。 只有理论联系实际才能出真知, 在今后的学习过程中我将继续努力去熟练掌握我们所学的课堂知识, 在实际中的运用过程中才能发挥自如。两个星期的学习让我学到了很多, 感受也很深, 做任何事都要一步步的熟练掌握从无到有, 才能得出想要的结果和成果。今后我将继续好好学习。 参考文献 [1] 软件工程方法与实践, 窦万峰, 机械工业出本社, 7月 [2] 数据库原理与应用, 夏冰冰, 国防工业出版社, .12 [3]软件工程概论, 卫红春, 清华大学出版社, .9 附录: 部分源代码 package com.softeem.dto; /** * version 1122 * @author 姜贝 * */ public class UserDTO { private int userId; private String userName; private String userPass; private String userSex; private int userAge; private String userEmail; public UserDTO() { } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPass() { return userPass; } public void setUserPass(String userPass) { this.userPass = userPass; } public String getUserSex() { return userSex; } public void setUserSex(String userSex) { this.userSex = userSex; } public int getUserAge() { return userAge; } public void setUserAge(int userAge) { this.userAge = userAge; } public String getUserEmail() { return userEmail; } public void setUserEmail(String userEmail) { this.userEmail = userEmail; } @Override public String toString() { return "UserDTO [userAge=" + userAge + ", userEmail=" + userEmail + ", userId=" + userId + ", userName=" + userName + ", userPass=" + userPass + ", userSex=" + userSex + "]"; } } package com.softeem.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.softeem.dao.UserDAO; import com.softeem.dto.UserDTO; /** * version 1122 * @author 姜贝 * */ public class LoginUserCheck extends HttpServlet { public LoginUserCheck() { super(); } public void destroy() { super.destroy(); // Just puts "destroy" string in log } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 接收从页面传过来的数据 注意 // 第一点: 页面表单里面的name要和servlet里面的name要一样 // 第二点: 如果是int类型的话 那么就需要转型 String->int String username = request.getParameter("username"); String userpass = request.getParameter("userpass"); // 将接收到的值复制给user对象 经过set方法 UserDTO user = new UserDTO(); user.setUserName(username); user.setUserPass(userpass); UserDAO dao = new UserDAO(); // 将登陆的用户名和密码与数据库进行校验 如果存在记录 那么就返回一个true值 然后就跳转到用户管理页面 // 如果返回值为false 那么就往登陆页面跳转 同时 给出提示 boolean flag = dao.checkLoginuser(user); if (flag == true) { request.getSession().setAttribute("user", user); request.getRequestDispatcher("/servlet/UserManager").forward( request, response); } else { request.setAttribute("msg", "用户名或者密码错误"); request.getRequestDispatcher("/login.jsp").forward(request, response); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public void init() throws ServletException { } } ackage com.softeem.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import com.softeem.dto.UserDTO; /** * version 1122 * @author 姜贝 * */ public class UserDAO { /* * */ private Connection conn; private Statement st; private ResultSet rs; private String sql; /** * 增加 * * @param user */ public void add(UserDTO user) { conn = DBConnection.getConnection(); try { st = conn.createStatement(); sql = "insert into tb_user(userName,userPass,userAge) values('" + user.getUserName() + "','" + user.getUserPass() + "','" + user.getUserAge() + "')"; int m = st.executeUpdate(sql); if (m != 0- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 用户 管理 系统 设计 开发 样本
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文