还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
XXXX大学XX学院毕业设计报告书课程名称软件开发毕业设计题目用户管理系统的设计与开发系名XXXX系专业班级XXXX专业XXXX班姓名学号指导教师:年月日课程设计任务书学生姓名专业班级指导教师工作单位设计题目用户管理系统的设计与开发初始条件了解软件工程基本知识,掌握JAVA编程基础,了解基本的软件开发工具要求完成的主要任务功能用户可以注册,然后登陆,有错误提示等登陆成功以后,会列出所有用户的记录信息登陆用户可对记录进行增加、修改、删除、查询等操作技术jsp+servlet+tomcat
6.0+mysql设计报告撰写格式要求
一、课程设计说明书(或报告书)正文内容【设计题目】用户管理系统的设计与开发【开发环境】windowsXP【开发工具】MyEclipse
7.0,tomcat
6.0,MySQL【完成时间】【设计思想】描述确定设计内容后,自己如何思考的、确定设计的方案是什么?打算如何实现【设计过程及设计步骤】将设计的步骤及实施过程分步总结写出来【测试运行】描述对于自己给定的数据,运行后的结果如何?【评价与修订】对自己设计内容及结果进行全面评价描述,包括创造性、独特性、满意程度及不足处,并提出改进意见;【设计体会】总结本次实训经验、教训、收获、体会,为今后的实践环节学习打好基础【参考文献】罗列在设计过程中查阅的文献名称时间安排目录TOC\o1-3\h\z\u第4章设计运行结果与分析
104.1运行结果
104.
1.1用户登录界面
104.
1.2添加用户
104.
1.3修改用户信息
114.
1.4删除用户
114.
1.5查询用户
114.2结果分析12第5章设计体会与小结13参考文献13附录……………………………………………………………………14第1章需求分析
1.1设计题目用户管理系统的设计与开发
1.2设计要求1了解软件工程基本知识2掌握JAVA编程基础3了解基本的软件开发工具
1.3设计任务1设计一个用户管理系统,用户能够注册、登陆,登陆成功后,会列出所有用户的记录信息
(2)登录用户能够对记录进行增加、删除、修改,查询操作
1.4开发环境工具WindowsXP系统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创建数据库,在数据库中建立用户信息表Createdatabasedb_userUsedb_userCreatetabletb_user(userIdintnotnullprimarykeyuserNamevarchar20userPassvarchar50userAgeint)
3.2创建数据库连接importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBConnection{privatestaticStringdriverName=com.mysql.jdbc.Driver;privatestaticStringuserName;privatestaticStringuserPass;privatestaticStringurl=jdbc:mysql://localhost:3306/db_user;publicstaticConnectiongetConnectionString_urlString_userNameString_userPass{userName=_userName;userPass=_userPass;url=_url;Connectionconn=null;try{Class.forNamedriverName;conn=DriverManager.getConnectionurluserNameuserPass;}catchClassNotFoundExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}returnconn;}publicstaticConnectiongetConnection{returngetConnectionurlroot123456;}publicstaticvoidcloseConnectionConnectionconn{ifconn!=null{try{conn.close;}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}}}
3.3用户主要功能的实现importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importcom.softeem.dto.UserDTO;publicclassUserDAO{privateConnectionconn;privateStatementst;privateResultSetrs;privateStringsql;publicvoidaddUserDTOuser{conn=DBConnection.getConnection;try{st=conn.createStatement;sql=insertintotb_useruserNameuserPassuserAgevalues+user.getUserName++user.getUserPass++user.getUserAge+;intm=st.executeUpdatesql;ifm!=0{System.out.println添加成功;}DBConnection.closeConnectionconn;}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}publicvoidupdateUserDTOuser{conn=DBConnection.getConnection;try{st=conn.createStatement;sql=updatetb_usersetuserName=+user.getUserName+userPass=+user.getUserPass+userAge=+user.getUserAge+whereuserId=+user.getUserId+;intm=st.executeUpdatesql;ifm!=0{System.out.println修改成功;}}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}publicvoiddeleteintn{conn=DBConnection.getConnection;try{st=conn.createStatement;sql=deletefromtb_userwhereuserId=+n+;intm=st.executeUpdatesql;ifm!=0{System.out.println删除成功;}}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}publicArrayListUserDTOselectAll{ArrayListUserDTOlist=newArrayListUserDTO;conn=DBConnection.getConnection;try{st=conn.createStatement;sql=select*fromtb_user;rs=st.executeQuerysql;whilers.next{UserDTOuser=newUserDTO;user.setUserIdrs.getIntuserId;user.setUserNamers.getStringuserName;user.setUserPassrs.getStringuserPass;user.setUserAgers.getIntuserAge;list.adduser;}}catchSQLExceptione{e.printStackTrace;}returnlist;}publicUserDTOselectByIdintn{UserDTOuser=newUserDTO;conn=DBConnection.getConnection;try{st=conn.createStatement;sql=select*fromtb_userwhereuserId=+n+;rs=st.executeQuerysql;whilers.next{user.setUserIdrs.getIntuserId;user.setUserNamers.getStringuserName;user.setUserPassrs.getStringuserPass;user.setUserAgers.getIntuserAge;}}catchSQLExceptione{e.printStackTrace;}returnuser;}publicArrayListUserDTOselectByPropertyStringpropertyStringvalue{ArrayListUserDTOlist=newArrayListUserDTO;conn=DBConnection.getConnection;PreparedStatementpst=null;try{ifproperty.equals||property==null||value.equals||value==null{sql=select*fromtb_user;pst=conn.prepareStatementsql;}else{sql=select*fromtb_userwhere+property+like;pst=conn.prepareStatementsql;pst.setString1%+value+%;}System.out.printlnsql;rs=pst.executeQuery;whilers.next{UserDTOuser=newUserDTO;user.setUserIdrs.getIntuserId;user.setUserNamers.getStringuserName;user.setUserPassrs.getStringuserPass;user.setUserAgers.getIntuserAge;list.adduser;}}catchSQLExceptione{e.printStackTrace;}returnlist;}publicbooleancheckLoginuserUserDTOuser{booleanflag=false;conn=DBConnection.getConnection;try{st=conn.createStatement;//sql=select*fromtb_userwhereuserName=+//user.getUserName//+anduserPass=+user.getUserPass+;//查询满足userName和userPass条件的记录sql=selectcount*fromtb_userwhereuserName=+user.getUserName+anduserPass=+user.getUserPass+;//sql=selectuserPassfromtb_userwhereuserName=+user.getUserName+;//执行sql语句rs=st.executeQuerysql;//对结果集进行遍历如果查询的记录条数大于0则说明数据库存在该条记录此时改变flag的值whilers.next{ifrs.getInt10{flag=true;}}}catchSQLExceptione{e.printStackTrace;}returnflag;}}
3.4测试过程publicclassUserDAOTest{@TestpublicvoidtestAdd{UserDTOuser=newUserDTO;user.setUserNameadmin;user.setUserPass123456;user.setUserAge43;UserDAOdao=newUserDAO;dao.adduser;}@TestpublicvoidtestUpdate{UserDTOuser=newUserDTO;user.setUserId1;user.setUserNametest;user.setUserPass1111111;user.setUserAge111;UserDAOdao=newUserDAO;dao.updateuser;}@Testpublicvoiddelete{UserDAOdao=newUserDAO;dao.delete1;}@TestpublicvoidtestSelectAll{UserDAOdao=newUserDAO;ArrayListUserDTOlist=dao.selectAll;forinti=0;ilist.size;i++{System.out.printlnlist.geti.getUserId+\t+list.geti.getUserName+\t+list.geti.getUserPass+\t+list.geti.getUserAge;}}@TestpublicvoidtestSelectById{UserDAOdao=newUserDAO;UserDTOuser=dao.selectById6;System.out.printlnuser.toString;}@TestpublicvoidtestCheckLoginuser{UserDTOuser=newUserDTO;user.setUserNameLucy;user.setUserPass123456;UserDAOdao=newUserDAO;booleanflag=dao.checkLoginuseruser;System.out.printlnflag;}}第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]软件工程方法与实践,窦万峰,机械工业出本社,2010年7月
[2]数据库原理与应用,夏冰冰,国防工业出版社,
2009.12
[3]软件工程概论,卫红春,清华大学出版社,
2007.9附录部分源代码packagecom.softeem.dto;/***version1122*@author姜贝**/publicclassUserDTO{privateintuserId;privateStringuserName;privateStringuserPass;privateStringuserSex;privateintuserAge;privateStringuserEmail;publicUserDTO{}publicintgetUserId{returnuserId;}publicvoidsetUserIdintuserId{this.userId=userId;}publicStringgetUserName{returnuserName;}publicvoidsetUserNameStringuserName{this.userName=userName;}publicStringgetUserPass{returnuserPass;}publicvoidsetUserPassStringuserPass{this.userPass=userPass;}publicStringgetUserSex{returnuserSex;}publicvoidsetUserSexStringuserSex{this.userSex=userSex;}publicintgetUserAge{returnuserAge;}publicvoidsetUserAgeintuserAge{this.userAge=userAge;}publicStringgetUserEmail{returnuserEmail;}publicvoidsetUserEmailStringuserEmail{this.userEmail=userEmail;}@OverridepublicStringtoString{returnUserDTO[userAge=+userAge+userEmail=+userEmail+userId=+userId+userName=+userName+userPass=+userPass+userSex=+userSex+];}}packagecom.softeem.servlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.softeem.dao.UserDAO;importcom.softeem.dto.UserDTO;/***version1122*@author姜贝**/publicclassLoginUserCheckextendsHttpServlet{publicLoginUserCheck{super;}publicvoiddestroy{super.destroy;//Justputsdestroystringinlog}publicvoiddoGetHttpServletRequestrequestHttpServletResponseresponsethrowsServletExceptionIOException{//接收从页面传过来的数据注意//第一点页面表单里面的name要和servlet里面的name要一样//第二点如果是int类型的话那么就需要转型String-intStringusername=request.getParameterusername;Stringuserpass=request.getParameteruserpass;//将接收到的值复制给user对象通过set方法UserDTOuser=newUserDTO;user.setUserNameusername;user.setUserPassuserpass;UserDAOdao=newUserDAO;//将登陆的用户名和密码与数据库进行校验如果存在记录那么就返回一个true值然后就跳转到用户管理页面//如果返回值为false那么就往登陆页面跳转同时给出提示booleanflag=dao.checkLoginuseruser;ifflag==true{request.getSession.setAttributeuseruser;request.getRequestDispatcher/servlet/UserManager.forwardrequestresponse;}else{request.setAttributemsg用户名或者密码错误;request.getRequestDispatcher/login.jsp.forwardrequestresponse;}}publicvoiddoPostHttpServletRequestrequestHttpServletResponseresponsethrowsServletExceptionIOException{doGetrequestresponse;}publicvoidinitthrowsServletException{}}ackagecom.softeem.dao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importcom.softeem.dto.UserDTO;/***version1122*@author姜贝**/publicclassUserDAO{/***/privateConnectionconn;privateStatementst;privateResultSetrs;privateStringsql;/***增加**@paramuser*/publicvoidaddUserDTOuser{conn=DBConnection.getConnection;try{st=conn.createStatement;sql=insertintotb_useruserNameuserPassuserAgevalues+user.getUserName++user.getUserPass++user.getUserAge+;intm=st.executeUpdatesql;ifm!=0{System.out.println添加成功;}}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}/***修改**@paramuser*/publicvoidupdateUserDTOuser{conn=DBConnection.getConnection;try{st=conn.createStatement;sql=updatetb_usersetuserName=+user.getUserName+userPass=+user.getUserPass+userAge=+user.getUserAge+whereuserId=+user.getUserId+;intm=st.executeUpdatesql;ifm!=0{System.out.println修改成功;}}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}/***删除**@paramn*/publicvoiddeleteintn{conn=DBConnection.getConnection;try{st=conn.createStatement;sql=deletefromtb_userwhereuserId=+n+;intm=st.executeUpdatesql;ifm!=0{System.out.println删除成功;}}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}/***查询所有**@return*/publicArrayListUserDTOselectAll{ArrayListUserDTOlist=newArrayListUserDTO;conn=DBConnection.getConnection;try{st=conn.createStatement;sql=select*fromtb_user;rs=st.executeQuerysql;whilers.next{UserDTOuser=newUserDTO;user.setUserIdrs.getIntuserId;user.setUserNamers.getStringuserName;user.setUserPassrs.getStringuserPass;user.setUserAgers.getIntuserAge;list.adduser;}}catchSQLExceptione{e.printStackTrace;}returnlist;}/****根据ID进行查找**@paramn*@return*/publicUserDTOselectByIdintn{UserDTOuser=newUserDTO;conn=DBConnection.getConnection;try{st=conn.createStatement;sql=select*fromtb_userwhereuserId=+n+;rs=st.executeQuerysql;whilers.next{user.setUserIdrs.getIntuserId;user.setUserNamers.getStringuserName;user.setUserPassrs.getStringuserPass;user.setUserAgers.getIntuserAge;}}catchSQLExceptione{e.printStackTrace;}returnuser;}/***根据不同的属性值进行查找**@paramproperty*@paramvalue*@return*/publicArrayListUserDTOselectByPropertyStringpropertyStringvalue{ArrayListUserDTOlist=newArrayListUserDTO;conn=DBConnection.getConnection;PreparedStatementpst=null;try{ifproperty.equals||property==null||value.equals||value==null{sql=select*fromtb_user;pst=conn.prepareStatementsql;}else{sql=select*fromtb_userwhere+property+like;pst=conn.prepareStatementsql;pst.setString1%+value+%;}System.out.printlnsql;rs=pst.executeQuery;whilers.next{UserDTOuser=newUserDTO;user.setUserIdrs.getIntuserId;user.setUserNamers.getStringuserName;user.setUserPassrs.getStringuserPass;user.setUserAgers.getIntuserAge;list.adduser;}}catchSQLExceptione{e.printStackTrace;}returnlist;}/***检验登录用户**@paramuser*@return*/publicbooleancheckLoginuserUserDTOuser{booleanflag=false;conn=DBConnection.getConnection;try{st=conn.createStatement;//sql=select*fromtb_userwhereuserName=+//user.getUserName//+anduserPass=+user.getUserPass+;//查询满足userName和userPass条件的记录sql=selectcount*fromtb_userwhereuserName=+user.getUserName+anduserPass=+user.getUserPass+;//sql=selectuserPassfromtb_userwhereuserName=+user.getUserName+;//执行sql语句rs=st.executeQuerysql;//对结果集进行遍历如果查询的记录条数大于0则说明数据库存在该条记录此时改变flag的值whilers.next{ifrs.getInt10{flag=true;}}}catchSQLExceptione{e.printStackTrace;}returnflag;}}packagecom.softeem.dao;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;/***version1122*@author姜贝**/publicclassDBConnection{privatestaticStringdriverName=com.mysql.jdbc.Driver;privatestaticStringuserName;privatestaticStringuserPass;privatestaticStringurl=jdbc:mysql://localhost:3306/db_user;publicstaticConnectiongetConnectionString_urlString_userNameString_userPass{userName=_userName;userPass=_userPass;url=_url;Connectionconn=null;try{Class.forNamedriverName;conn=DriverManager.getConnectionurluserNameuserPass;}catchClassNotFoundExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}returnconn;}publicstaticConnectiongetConnection{returngetConnectionurlroot123456;}publicstaticvoidcloseConnectionConnectionconn{ifconn!=null{try{conn.close;}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}}}系统功能用户登录用户管理修改用户信息删除用户信息添加用户查询用户。