JSP个人用户信息管理系统课程设计.docx
《JSP个人用户信息管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《JSP个人用户信息管理系统课程设计.docx(14页珍藏版)》请在冰点文库上搜索。
JSP个人用户信息管理系统课程设计
一、设计题目
用户信息查询系统
二、设计目的
1.运用已学过的知识进行一个JSP应用系统的开发。
2.基本掌握设计课题的基本步骤和方法。
3.掌握应用系统开发中的需求分析。
4.基本掌握应用系统开发中设计文档的编制。
三、需求分析
用户需要使用账号与密码通过登陆页面登陆个人信息管理系统,新用户可注册新账号登陆。
登陆后进入系统主窗体,可对个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理进行操作。
退出系统时返回登陆页面。
系统功能分析
个人信息管理系统主要由:
个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理等模块组成。
进入该系统后,用户可以对系统中的信息进行添加、修改、删除和查询等操作。
包括以下功能:
1.通讯录信息:
包括通讯人姓名、联系方式、工作地点、城市、备注等。
2.备忘录信息:
包括什么时间、事件、地点等。
3.日记信息:
包括什么时间、地点、事件等。
4.个人财物管理:
包括总收入,消费项目、消费金额、消费时间、余额。
每个用户可以自己注册一个用户名,对自己的个人信息进行独立的管理。
四、总体设计
1.系统功能模块设计
个人信息管理系统功能结构图如图1所示。
个人信息管理系统业务流程图如图2所示。
图2系统业务流程图
2.系统数据库概念设计
在需求分析阶段已经完成系统的所有数据分析。
根据该阶段建立的概念模型,已经得出满足第三范式的几个关系描述,此阶段主要的工作就是把前一阶段的成果转化为具体的数据库。
根据之前的分析规划出的个人信息管理系统实体有:
个人信息实体、备忘录实体、通讯录实体、日记实体、财务管理实体。
个人信息E-R图如图3所示。
备忘录E-R图如图4所示。
同通讯录实体如图5所示。
日记E-R图如图6所示。
财务管理E-R图如图7所示。
3.关系描述的设计
根据数据库原理,并结合以上E-R图,经转换,可以导出各个关系。
其转化规则为首先每个实体应该转换成一个关系,有属性的联系也应转化为一个关系然且需要给出每个关系的关键字。
根据以上规则直接给出所有关系。
个人信息(用户ID号,用户密码,姓名,年龄,出生日期,电话号码,QQ,工作,地址)关键字为用户ID号。
日志(标识,日期,地点,日记标题,备注)关键字为标识。
通讯录(标识,名字,性别,关系,添加时间,电话,QQ,出生日期,工作,地址,城市)关键字为标识。
备忘录(标识,时间,记录时间,地点,备注)关键字为标识。
财务管理(标志,日期,项目,添加时间,数额,收入/支出)关键字为标识。
在得出以上关系后,根据关系数据库的理论要求,需要对所有的关系进行关系规范化,至少要求各个关系达到第三范式的要求。
按照第三范式的要求对比以上各个关系,在所有关系中都不存在非主属性对关键字的部分依赖,即满足第三范式。
4.数据库的逻辑设计
数据库逻辑设计即把得到的满足第三范式的关系转化为特定的数据库系统下的数据表。
根据前面得到的各个关系,现把它们转化为数据表。
用户信息表:
用户ID号,用户密码,姓名,年龄,出生日期,电话号码,QQ,工作,地址。
日志表:
标识,日期,地点,日记标题,备注。
通讯录表:
标识,姓名,性别,关系,添加时间,电话,QQ,出生日期,工作,地址,城市
备忘录表:
标识,日期,记录时间,地点,备注。
财务管理表:
标志,日期,项目,添加时间,数额,收入/支出。
5.数据库的物理设计
在完成数据库的逻辑设计后,即可以开始数据库的物理设计。
基于以上数据库的逻辑设计,考虑程序设计的简易性及通用性,本个人信息管理系统采用Oracle数据库,并在其下创建5个数据表,其结构分别如下:
(1)个人信息表,其字段列表如表1所示。
表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)备忘录表,其字段列表如表2所示。
表2备忘录表
字段名
数据类型
字段长度与格式
主键
mid
VARCHAR
20
是
userId
VARCHAR
20
否
mtime
timestamp
/
否
maddtime
timestamp
/
否
mplace
VARCHAR
30
否
mthings
CLOB
/
否
(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)日记表,其字段列表如表4所示。
表4日记表
字段名
数据类型
字段长度与格式
主键
did
VARCHAR
20
是
userId
VARCHAR
20
否
atitle
VARCHAR
20
否
dtime
DATE
/
否
dplace
VARCHAR
30
否
dthings
CLOB
/
否
(5)财务管理表,其字段列表如表5所示。
表5财务管理表
字段名
数据类型
字段长度与格式
主键
fid
VARCHAR
20
是
userId
VARCHAR
20
否
inorout
NUMBER
/
否
project
VARCHAR
30
否
ftime
DATE
/
否
faddtime
DATE
/
否
fmoney
NUMBER
8,2
否
五、详细设计
1.登录模块
用户登录窗口设置在首页上,主要用来接收用户输入的用户名和密码,并更新用户在网站中的状态信息.会员登录窗口的运行结果如图8所示。
图8会员登录窗口
网站首页在用户第一次访问时会判断用户是否登录,未登录则显示用户登录窗口,提示用户登录或注册.对于已经登录的用户,在用户登录窗口将显示用户的相关信息.
首页主要是根据保存用户名信息的Session参数来判断用户是否已经登录的,关键代码如下:
Stringname=(String)session.getAttribute("name");
在会员登录窗口中单击登录按纽后,系统将对用户名和密码进行验证,判断用户是否是已注册用户,如果已注册,则更新用户在网站中的状态,如果没有注册,则拒绝用户的登录操作,登录数据验证的程序代码如下:
JDBConnectioncon=newJDBConnection();
whereUsername='"+username+"'andUserpass='"+password+"'";
ResultSetrs=con.executeQuery(sql);if(rs.next()){
session.setAttribute("username",username);
session.setAttribute("password",password);}
2.用户注册模块
当用户第一次登录时首先要注册,成为会员后,才可以购买物品.用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作,用户注册页面的运行结果如图9所示
图9用户注册页面
if(form.pasa.value=="")
{alert("请输入你的用户名");form.username.focus();returnfalse;}
if(form.password.value==""){alert("请输入确认密码");
form.password.focus();returnfalse;}
if(form.password.value!
=form.password.value){
alert("你输入的两次密码不一致");returnfalse;}}}
为了便于管理网站对用户的管理,在index.htm用户注册页接收到的注册信息要经过严格的过滤,保证注册用户的唯一性,在提交表单后需要对数据表中的数据进行查询,如果没有找到,则在插入数据表时提示注册成功,否则提示用户以被占用,请重新注册,关键代码如下:
Stringuid=request.getParameter("uid");
3.备忘录模块
用户备忘录添加,单击“添加备忘”链接,进入添加页面,该页面主要用于添加备忘录,其运行结果如图10所示。
图10添加备忘录
备忘录添加完毕后,要将新添加的数据信息更新注册到数据表中,单击“保存”按钮,如果提交的数据无误,将弹出“数据更新成功”消息对话框:
否则将弹出“更新失败”的消息对话框。
结果展示页面的关键代码如下:
if(session.getAttribute("username")==null){if(rs.next()){……}
4.通讯录模块
用户通讯录添加,单击“添加通讯录”链接,进入添加页面,该页面主要用于添加新的通讯录,其运行结果如图11所示。
图11添加通讯录
通讯录添加完毕后,要将新添加的数据信息更新注册到数据表中,单击“保存”按钮,如果提交的数据无误,将弹出“数据更新成功”消息对话框:
否则将弹出“更新失败”的消息对话框。
结果展示页面的关键代码如下:
if(session.getAttribute("username")==null){if(rs.next()){……}
5.日记模块
查看新日记添加页面运行结果如下图12所示。
图12新的日记
用户在添加新的日记页中单击提交按钮,系统将数据表提交到admin/addlea.jsp页,该页用来实现将留言内容存入数据库中,关键代码如下:
Stringusername=request.getParameter("username");
inttemp=con.executeUpdate(sql);
6.财务管理模块
为了方便用户随时管理财务情况,在网站的首页加入了我的账单链接,通过它可以添加新的支入/支出。
查看我的账单添加项目页面运行结果如下图13所示。
图13我的账单添加项目网页中运行结果
为了确保信息在数据表中的唯一性,在用户提交表单时,需要先根据用户输入的数据表进行查询,确保此商品在数据表中不存在后,方可进行添加操作。
在程序中与此功能对应的页为admin/gcheck.jsp,关键代码如下:
Datedate=newDate();
e="+goodsname+";ResultSetrs=con.executeQuery(sql);
六、结论
在本课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写Java程序的能力。
培养了基本的、良好的程序设计技能以及合作能力。
这次课程设计同样提高了我的综合运用所学知识的能力。
并对MyEclipse有了更深入的了解。
通过此次课程设计我知道了书本与显示操作的差距,课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新日异,计算机网络技术已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机网络技术是十分重要的。
此次课程设计,从理论到实践的过程中,我不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程."千里之行始于足下",通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。