jsp个人信息管理系统实训报告.docx
摘要随着社会的不断发展,社会的竞争也越来越激烈,这就在无形中增加了人们的生活压力,要做的事情太多,如果企业资产很多,可以想象人们的工作强度,在这种环境下有些事情忘了顾及不到了是在所难免的事情,但是你的忘记却可能会带来无法弥补的错误。信息化的发展帮助人们解决了上述难题,信息管理让人们从繁重的劳动中变得清醒,让生活有条不紊的进行着。在当今社会上,要想有理想的事业和生活环境,首先要从个人做起所以做好个人信息管理是完事之根本个人信息管理系统实现了管理的信息化,它记录着个人每日的重要信息,能记录、提示用户有关信息。本信息管理系统运用了JSP技术编写而成,专为个人设计。本个人信息管理系统主要由:个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理等模块组成。进入该系统后,用户可以对系统中的信息进行添加、修改、删除和查询等操作。目录一课程设计目的3二. 课程设计内容32.1项目分析3(1) 用户需求3(2) 业务流程分析3(3) 系统功能分析32.2 项目设计4(1) 系统总体设计4(2) 系统数据库设计52.3 项目实现10(1) 登录模块10(2) 用户注册模块12(3)备忘录模块14(4)通讯录模块16(5)日记模块18(6)财务管理模块20三.部署和发布系统24四课程设计总结与心得26附件27湖南商学院课程设计评审表27一课程设计目的 本项目根据本学期所学的JAVA与上学期所学的JSP相关知识概念与原理,设计和开发个人信息管理系统。通过本项目对所学知识进行掌握以及综合运用。二. 课程设计内容2.1项目分析(1) 用户需求随着社会的不断发展,人们生活节奏越来越快,认识的人也越来越多,交际圈越来越广,需要记录的东西越来越多,对于日常办公的人来说迫切需要一个日常信息管理系统记录自己的日常生活和活动的安排比如朋友和同事的电话、邮箱、办公地址;自己的日程、会议、活动安排,日常记事等都需要一个工具帮助自己,以便于合理的安排自己的日常生活。而此项目个人信息管理系统正是基于这样的一个应用需求而设计的。(2) 业务流程分析用户需要使用账号与密码通过登陆页面登陆个人信息管理系统,新用户可注册新账号登陆。登陆后进入系统主窗体,可对个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理进行操作。退出系统时返回登陆页面。(3) 系统功能分析个人信息管理系统主要由:个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理等模块组成。进入该系统后,用户可以对系统中的信息进行添加、修改、删除和查询等操作。包括以下功能:(1) 个人基本信息管理模块:个人的姓名、性别、出生日期、民族、学历、职称、登录名、密码、电话和家庭住址等。(2) 用户个人通讯录模块:个人姓名、电话、邮箱、工作单位、地址、QQ等、可以自由添加联系人的信息,查询或删除某些联系人。(3) 日程安排模块:添加从某一时间到另一时间要做什么事,日程标题、内容、开始时间和结束时间、可以自由查询、修改和删除。(4) 个人财物管理模块:包括总收入,消费项目、消费金额、消费时间、余额。系统功能描述如下:(1) 每个用户可以自己注册一个用户名,对自己的个人信息进行独立的管理。(2) 用户登录、个人使用用户名和密码以及输入验证码登录系统、(3) 查看个人信息。主界面显示个人基本信息,如姓名、性别、出生日期、民族、学历、职称、电话、家庭住址、邮箱地址和登录名等、(4) 修改个人信息。用户可以修改自己的基本信息。如果修改了登录名,下次应使用新的登录名。(5) 修改登录密码。用户可以修改登录密码。(6) 查看通讯录。浏览通讯录列表,按照姓名检索等。(7) 维护通讯录。增加、修改、删除联系人。(8) 查看日程安排。查看日程安排列表,可以查看某一日的内容时间等。(9) 维护日程。一个新的日程安排包括日程标题、内容、开始时间和结束时可以对日程进程进行添加、修改、删除等操作。(10)个人财物管理:包括总收入,消费项目、消费金额、消费时间、余额。 2.2 项目设计(1) 系统总体设计 个人信息管理系统业务流程图如图所示用户登陆是否登陆系统主窗体个人信息备忘录通讯录日志财务管理登陆注册否是系统业务流程图退出个人信息管理系统功能结构图如图所示个人信息管理系统个人信息备忘录通讯录日记财务管理查看个人信息写日志财务总况财务清单收人情况支出情况添加记录添加备忘查看记录添加记录查看日志个人首页修改个人信息查看备忘操作退出系统系统功能结构图(2) 系统数据库设计在需求分析阶段已经完成系统的所有数据分析。根据该阶段建立的概念模型,已经得出满足第三范式的几个关系描述,此阶段主要的工作就是把前一阶段的成果转化为具体的数据库。系统的基本E-R图根据之前的分析规划出的个人信息管理系统实体有:个人信息实体、日程实体、通讯录实体、个人财务管理实体。个人信息实体图如图所示个人信息姓名年龄出生日期电话号码QQ工作地址个人信息实体账号密码备忘录实体如图所示备忘录用户名时间记录时间地点事情备忘录实体 通讯录实体如图所示通讯录出生日期性别QQ姓名城市地址工作关系添加时间电话通讯录实体日记实体如图所示日记日记标题地点时间用户名事情日记实体 财务管理实体如图所示财务管理用户名项目时间数额添加时间收入/支出财务管理实体关系描述的设计根据数据库原理,并结合以上E-R图,经转换,可以导出各个关系。其转化规则为首先每个实体应该转换成一个关系,有属性的联系也应转化为一个关系然且需要给出每个关系的关键字。根据以上规则直接给出所有关系。个人信息(用户ID号,用户密码,姓名,出生日期,电话号码,QQ,工作,地址,民族)主键为用户ID号。备忘录(备忘编号,用户ID号,日期,地点,日记标题,备注)主键为备忘编号,外键为用户ID号。通讯录(通讯编号,用户ID号,名字,性别,关系,添加时间,电话, QQ,出生日期,工作,地址,城市)关键字为通讯编号,外键为用户ID号。 个人财务管理财务管理(财务管理编号,用户ID号,日期,项目,添加时间,数额,收入/支出)关键字为财务管理编号,外键为用户ID号。在得出以上关系后,根据关系数据库的理论要求,需要对所有的关系进行关系规范化,至少要求各个关系达到第三范式的要求。按照第三范式的要求对比以上各个关系,在所有关系中都不存在非主属性对关键字的部分依赖,即满足第三范式。 数据库的逻辑设计数据库逻辑设计即把得到的满足第三范式的关系转化为特定的数据库系统下的数据表。根据前面得到的各个关系,现把它们转化为数据表。用户信息表:用户ID号,用户密码,姓名,民族,出生日期,电话号码,QQ,工作,地址。日程表:标识,日期,事件,备注。通讯录表:标识,姓名,性别,关系,添加时间,电话, QQ,出生日期,工作,地址,城市财务管理表:标志,日期,项目,添加时间,数额,收入/支出数据库的物理设计在完成数据库的逻辑设计后,即可以开始数据库的物理设计。基于以上数据库的逻辑设计,考虑程序设计的简易性及通用性,本个人信息管理系统采用SQL Server 2012数据库,并在其下创建5个数据表,其结构分别如下:(1) 个人信息表, 其字段列表如表所示:个人信息表(2) 备忘录表, 其字段列表如表所示:备忘录表(3)通讯录表, 其字段列表如表所示: 通讯录表(4) 日记表, 其字段列表如表所示: 日记表 数据库关系图2.3 项目实现(1) 登录模块<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><% taglib uri=" prefix="c" %><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <base href="<%=basePath%>"> <title>个人信息系统</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!-<link rel="stylesheet" type="text/css" href="styles.css">-><%request.setCharacterEncoding("UTF-8") ;%><link rel="stylesheet" href="css/login.css" type="text/css" /> </head> <body background="image2.jpg"> <marquee height="100"></marquee><br /> <div align="center" > <br/><br/><br/><br/> <div align="center" > <br/> <br/> <center><h1>个人信息系管理统欢迎您</h1> <table width="250" border="0"><tbody><tr><td>账号:</td><td><input type = "text" name = "userId" id="userId"side="15"maxlength="15"></td></tr><tr><td>密码:</td><td><input type = "password" name = "password" id = "password"side="15"maxlength="15"></td></tr><tr><td> </td><td><input type = "submit" value = "确定" > <input type="reset" value="取消"> <input type="button" value="注册" onClick="window.open('zhuce.jsp')"><br></td></tr></tbody></table> </form> (用户名和密码请输入615位的字母或数字) </center> <div class="div1"><table border="0" width="250px"><tr><td height="23px"></td></tr><tr><td height="23px"></td></tr></table></div></div></div></body></html>(2) 用户注册模块<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><% page import="java.text.*" %><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>注册</title><link rel="stylesheet" type="text/css" href="./css/base.css"><script language="javascript" type="text/javascript" src="./js/base.js"></script> </head><body leftmargin="8" topmargin="8"><!- 快速转换位置按钮 -><table width="98%" border="0" cellpadding="0" cellspacing="1" bgcolor="#D1DDAA" align="center"><tr> <td height="26"> <table width="98%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"> </td></tr></table></td></tr></table><!- 内容列表 -><table width="98%" border="0" cellpadding="2" cellspacing="1" bgcolor="#D1DDAA" align="center" style="margin-top:8px"><tr bgcolor="#E7E7E7"><td height="24" colspan="10"> 注册 </td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">用户ID:</td> <td align="left"><input type="text" name="userId" />(615位字母或数字)</td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">用户名:</td> <td align="left"><input type="text" name="userName" /></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">密 码:</td> <td align="left"><input type="text" name="password" />(615位字母或数字)</td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">年龄:</td> <td align="left"><input type="text" name="uage" /></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">出生日期:</td> <td align="left"><input type="text" name="ubirthday" />(YYYY-MM-DD)</td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">电话:</td> <td align="left"><input type="text" name="utelephoto" /></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">QQ:</td> <td align="left"><input type="text" name="uqq"/></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">工作:</td> <td align="left"><input type="text" name="ujob"/></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">工作地址:</td> <td align="left"><input type="text" name="uworkingPlace"/></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td colspan="2" height="280"> <textarea rows="10" cols="120" name="uremaks"></textarea> </td></tr> <tr align="left" bgcolor="#FAFAF1" height="22"> <td colspan="2" > <input type="submit" value="保存"> <input type="reset" value="重置"> </td></tr></table></body></html>(3)备忘录模块添加备忘录<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><% page import="java.text.*" %><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><%String userId = null;%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>备忘录</title><link rel="stylesheet" type="text/css" href="./css/base.css"><script language="javascript" type="text/javascript" src="./js/base.js"></script> </head><body leftmargin="8" topmargin="8"><!- 快速转换位置按钮 -><table width="98%" border="0" cellpadding="0" cellspacing="1" bgcolor="#D1DDAA" align="center"><tr> <td height="26"> <table width="98%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"> </td></tr></table></td></tr></table><!- 内容列表 -><form name="form" action="add_mem.jsp" method="post"><table width="98%" border="0" cellpadding="2" cellspacing="1" bgcolor="#D1DDAA" align="center" style="margin-top:8px"><tr bgcolor="#E7E7E7"><td height="24" colspan="10"> 添加备忘录 </td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%"> 时 间 :</td> <td align="left"><input type="text" name="mtime" value="<%=new SimpleDateFormat("yyyy-M-d HH:mm:ss").format(new Date()%>"/></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">添加时间:</td> <td align="left"><input type="text" name="maddtime" value="<%=new SimpleDateFormat("yyyy-M-d HH:mm:ss").format(new Date()%>"/></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%"> 地 点 :</td> <td align="left"><input type="text" name="mplace"/></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td colspan="2" height="280"> <textarea rows="20" cols="120" name="mthings"></textarea> </td> </tr> <tr align="left" bgcolor="#FAFAF1" height="22"> <td colspan="2" > <input type="submit" class="coolbg"value="保存"> <input type="reset" class="coolbg"value="重置"> </td></tr></table></form></body></html>(4)通讯录模块添加新联系人<% page language="java" import="java.util.*" pageEncoding=" UTF-8"%><% page import="java.text.*" %><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><%String userId = null;%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>添加通讯录</title><link rel="stylesheet" type="text/css" href="./css/base.css"><script language="javascript" type="text/javascript" src="./js/base.js"></script> </head><body leftmargin="8" topmargin="8"><!- 快速转换位置按钮 -><table width="98%" border="0" cellpadding="0" cellspacing="1" bgcolor="#D1DDAA" align="center"><tr> <td height="26"> <table width="98%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"> </td></tr></table></td></tr></table><!- 内容列表 -><form name="form" action="add_book.jsp" method="post"><table width="98%" border="0" cellpadding="2" cellspacing="1" bgcolor="#D1DDAA" align="center" style="margin-top:8px"><tr bgcolor="#E7E7E7"><td height="24" colspan="10"> 添加通讯录 </td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%"> 姓 名 :</td> <td align="left"><input type="text" name="name" /></td> <td width="20%"> 性 别 :</td> <td align="left"><input type="radio" name="sex" value="男"checked="checked"/>男<input type="radio" name="sex" value="女"/>女</td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%"> 关 系 :</td> <td align="left"><input type="text" name="relation"/></td> <td width="20%">添加时间:</td> <td align="left"><input type="text" name="aaddtime" value="<%=new SimpleDateFormat("yyyy-MM-dd").format(new Date()%>"/>*</td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%"> 电 话 :</td> <td align="left"><input type="text" name="telephone" /></td> <td width="20%"> Q Q :</td> <td align="left"><input type="text" name="qq" /></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">出生日期:</td> <td align="left"><input type="text" name="birthday" value="<%=new SimpleDateFormat("yyyy-MM-dd").format(new Date()%>"/>*</td> <td width="20%"> 工 作 :</td> <td align="left"><input type="text" name="job" /></td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width="20%">地址:</td> <td align="left"><input type="text" name="workingPlace" /></td> <td width="20%"> 城 市 :</td> <td align="left"><input type="text" name="city" /></td></tr> <tr align="left" bgcolor="#FAFAF1" height="22"> <td colspan="4" > <input type="submit" class="coolbg"value="保存"> <input type="reset" class="coolbg"value="重置"> </td></tr></table></form></body></html>(5)日记模块添加新的日记<% page language="java" import="java.util.*" pageEncoding=" UTF-8"%><% page import="java.text.*" %><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><%String userId = null;%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>日记</title><link rel="stylesheet" type="text/css" href="./css/base.css"><script language="javascript" type="text/javascript" src="./js/base.js"></script> </head><body leftmargin="8" topmargin="8"><!- 快速转换位置按钮 -><table width="98%" border="0" cellpadding="0" cellspacing="1" bgcolor="#D1DDAA" align="center"><tr> <td height="26"> <table width="98%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"> </td></tr></table></td></tr></table><!- 内容列表 -><form name="form" action="add_diary.jsp" method="post"><table width="98%" border="0" cellpadding="2" cellspacing="1" bgcolor="#D1DDAA" align="center" style="margin-top:8px"><tr bgcolor="#E7E7E7"><td height="24" colspan="10"> 新的日记 </td></tr><tr align="center" bgcolor="#FAFAF1" height="22"> <td width