资源描述
- .
1.1业务流程分析
用户需要使用账号与密码通过登陆页面登陆个人信息管理系统,新用户可注册新账号登陆。登陆后进入系统主窗体,可对个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理进展操作。退出系统时返回登陆页面。
1.2系统功能分析
个人信息管理系统主要由:个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理等模块组成。进入该系统后,用户可以对系统中的信息进展添加、修改、删除和查询等操作。包括以下功能:
1) 通讯录信息:包括通讯人XX、联系方式、工作地点、城市、备注等。
2) 备忘录信息:包括什么时间、事件、地点等。
3) 日记信息:包括什么时间、地点、事件等。
4) 个人财物管理:包括总收入,消费工程、消费金额、消费时间、余额。
每个用户可以自己注册一个用户名,对自己的个人信息进展独立的管理。
1、 系统总体设计
2.1个人信息管理系统业务流程图如图2.1所示
用户登陆
是否登陆
系统主窗体
个人
信息
备忘录
通讯录
日志
财务管理
登陆
注册
否
是
2.1系统业务流程图
退出
2.2个人信息管理系统功能构造图如图2.2所示
个人信息管理系统
个人信息
备忘录
通讯录
日记
财务管理
查看个人信息
写日志
财务总况
财务清单
收人
情况
支出
情况
添加记录
添加备忘
查看记录
添加记录
查看日志
个人首页
修改个人信息
查看备忘
操作
退出系统
2.2系统功能构造图
2、 系统数据库设计
在需求分析阶段已经完成系统的所有数据分析。根据该阶段建立的概念模型,已经得出满足第三式的几个关系描述,此阶段主要的工作就是把前一阶段的成果转化为具体的数据库。
3.1系统的根本E-R图
根据之前的分析规划出的个人信息管理系统实体有:个人信息实体、备忘录实体、通讯录实体、日记实体、财务管理实体。
个人信息实体图如图3.1所示
个人信息
XX
年龄
出生日期
QQ
工作
地址
3.1个人信息实体
账号
密码
备忘录实体图如图3.2所示
备忘录
用户名
时间
记录时间
地点
事情
3.2备忘录实体
同通讯录实体如图3.3所示
通讯录
出生日期
性别
QQ
XX
城市
地址
工作
关系
添加时间
3.3通讯录实体
日记实体如图3.4所示
日记
日记标题
地点
时间
用户名
事情
3.4日记实体
财务管理实体如图3.5所示
财务管理
用户名
工程
时间
数额
添加时间
收入/支出
3.5财务管理实体
3.2关系描述的设计
根据数据库原理,并结合以上E-R图,经转换,可以导出各个关系。其转化规那么为首先每个实体应该转换成一个关系,有属性的联系也应转化为一个关系然且需要给出每个关系的关键字。根据以上规那么直接给出所有关系。
个人信息〔用户ID号,用户密码,XX,年龄,出生日期,,QQ,工作,地址〕关键字为用户ID号。
日志〔标识,日期,地点,日记标题,备注〕关键字为标识。
通讯录〔标识,名字,性别,关系,添加时间,, QQ,出生日期,工作,地址,城市〕关键字为标识。
备忘录〔标识,时间,记录时间,地点,备注〕关键字为标识。
财务管理〔标志,日期,工程,添加时间,数额,收入/支出〕关键字为标识。
在得出以上关系后,根据关系数据库的理论要求,需要对所有的关系进展关系规化,至少要求各个关系到达第三式的要求。按照第三式的要求比照以上各个关系,在所有关系中都不存在非主属性对关键字的局部依赖,即满足第三式。
3.3数据库的逻辑设计
数据库逻辑设计即把得到的满足第三式的关系转化为特定的数据库系统下的数据表。根据前面得到的各个关系,现把它们转化为数据表。
用户信息表:用户ID号,用户密码,XX,年龄,出生日期,,QQ,工作,地址。
日志表:标识,日期,地点,日记标题,备注。
通讯录表:标识,XX,性别,关系,添加时间,, QQ,出生日期,工作,地址,城市
备忘录表:标识,日期,记录时间,地点,备注。
财务管理表:标志,日期,工程,添加时间,数额,收入/支出。
3.4数据库的物理设计
在完成数据库的逻辑设计后,即可以开场数据库的物理设计。基于以上数据库的逻辑设计,考虑程序设计的简易性及通用性,本个人信息管理系统采用Oracle数据库,并在其下创立5个数据表,其构造分别如下:
(1)个人信息表, 其字段列表如表3.1所示:
表3.1 个人信息表
字段名
数据类型
字段长度与格式
主键
UserID
VARCHAR
20
是
userName
VARCHAR
10
否
userPassword
VARCHAR
20
否
uage
NUMBER
/
否
ubirthday
DATE
/
否
utelephoto
VARCHAR
11
否
uQQ
VARCHAR
15
否
ujob
VARCHAR
30
否
uworkingPlace
VARCHAR
30
否
uremarks
CLOB
/
否
(2) 备忘录表, 其字段列表如表3.2所示:
表3.2 备忘录表
字段名
数据类型
字段长度与格式
主键
mid
VARCHAR
20
是
userId
VARCHAR
20
否
mtime
timestamp
/
否
maddtime
timestamp
/
否
mplace
VARCHAR
30
否
mthings
CLOB
/
否
(3)通讯录表, 其字段列表如表3.3所示:
表3.3 通讯录表
字段名
数据类型
字段长度与格式
主键
aid
VARCHAR
20
是
userId
VARCHAR
20
否
name
VARCHAR
10
否
relation
VARCHAR
10
否
sex
VARCHAR
2
否
birthday
DATE
/
否
aaddtime
DATE
/
否
telephone
VARCHAR
11
否
QQ
VARCHAR
15
否
job
VARCHAR
30
否
workingPlace
VARCHAR
30
否
city
VARCHAR
15
否
(4) 日记表, 其字段列表如表3.4所示:
表3.4 日记表
字段名
数据类型
字段长度与格式
主键
did
VARCHAR
20
是
userId
VARCHAR
20
否
atitle
VARCHAR
20
否
dtime
DATE
/
否
dplace
VARCHAR
30
否
dthings
CLOB
/
否
(5) 财务管理表, 其字段列表如表3.5所示:
表3.5 财务管理表
字段名
数据类型
字段长度与格式
主键
fid
VARCHAR
20
是
userId
VARCHAR
20
否
inorout
NUMBER
/
否
project
VARCHAR
30
否
ftime
DATE
/
否
faddtime
DATE
/
否
fmoney
NUMBER
8,2
否
3、 各功能模块的设计与实现
4.1登录模块
<% page language="java" import="java.util.*" pageEncoding="GBK"%>
<% taglib uri="java.sun./jsp/jstl/core" 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 -equiv="pragma" content="no-cache">
<meta -equiv="cache-control" content="no-cache">
<meta -equiv="expires" content="0">
<meta -equiv="keywords" content="keyword1,keyword2,keyword3">
<meta -equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<%
request.setCharacterEncoding("GBK") ;
%>
<link rel="stylesheet" href="css/login.css" type="text/css" />
</head>
<body background="images\.jpg">
<marquee height="100"></marquee><br />
<div align="center" >
<br/><br/><br/><br/>
<jsp:useBean id="login" scope="request" class="benben.check"/>
<div align="center" >
<br/>
<br/>
<center><h1>个人信息系管理统欢送您</h1>
<form action = "check.jsp" method = "post" name = "form1 ">
<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>
〔用户名和密码请输入6~15位的字母或数字〕
</center>
<div class="div1"><table border="0" width="250px">
<tr>
<td height="23px"><%=login.getErrorMsg("erruserId")%></td></tr>
<tr>
<td height="23px"><%=login.getErrorMsg("errpassword")%></td></tr></table></div></div></div>
</body>
</html>
4.2用户注册模块
<% page language="java" import="java.util.*" pageEncoding="GBK"%>
<% 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 -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_user.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%">用户ID:</td>
<td align="left"><input type="text" name="userId" />〔6~15位字母或数字〕</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" />〔6~15位字母或数字〕</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></form>
</body>
</html>
4.3备忘录模块
添加备忘录
<% page language="java" import="java.util.*" pageEncoding="GBK"%>
<% page import="java.text.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%String userId = null;%>
<% include file="../cookie2.html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta -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">
<% include file="top.jsp"%>
</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>
<tralign="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.4通讯录模块
添加新联系人
<% page language="java" import="java.util.*" pageEncoding="GBK"%>
<% page import="java.text.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%String userId = null;%>
<% include file="../cookie2.html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta -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">
<% include file="top.jsp"%>
</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>
4.5日记模块
添加新的日记
<% page language="java" import="java.util.*" pageEncoding="GBK"%>
<% page import="java.text.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%String userId = null;%>
<% include file="../cookie2.html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta -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">
<% include file="top.jsp"%>
</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="20%">日记标题:</td>
<td align="left"><input type="text" name="atitle" /></td>
</tr>
<tr align="center" bgcolor="#FAFAF1" height="22">
<td width="20%"> 时 间 :</td>
<td align="left"><input type="text" n
展开阅读全文