郑州轻工业学院
实训报告
实训名称:基于MVC模式的个人信息管理系统
姓名:、
院(系):
专业班级:
学号:
指导教师:
成绩:
时间:年月日至年月日
一.实训目的
本项目根据本学期所学的相关知识概念与原理,设计和开发基于MVC设计模式的个人信息管理系统。通过本项目的实训对所学知识进行掌握以及综合运用。二.实训内容
2.1 项目分析
a)用户需求
随着社会的不断发展,人们生活节奏越来越快,认识的人也越来越多,交际圈越来越广,需要记录的东西越来越多,,对于日常办公的人来说迫切需要一个日常信息管理系统记录自己的日常生活和活动的安排比如朋友和同事的电话、邮箱、办公地址;自己的日程、会议、活动安排,日常记事等都需要一个工具帮助自己,以便于合理的安排自己的日常生活。而此项目个人信息管理系统正是基于这样的一个应用需求而设计的。
b)业务流程分析
用户需要使用账号与密码通过登陆页面登陆个人信息管理系统。登陆后进入系统主窗体,可对个人信息管理、日程安排、通讯录管理、个人文件管理。退出系统时返回登陆页面
c)系统功能分析
个人信息管理系统主要由:
个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理等模块组成。进入该系统后,用户可以对系统中的信息进行添加、修改、删除和查询等操作。包括以下功能:
(1)个人基本信息管理模块。个人的姓名、性别、出生日期、民族、学历、
职称、登录名、密码、电话和家庭住址等。
(2)用户个人通讯录模块。个人姓名、电话、邮箱、工作单位、地址、QQ
等、可以自由添加联系人的信息,查询或删除某些联系人。
(3)日程安排模块、添加从某一时间到另一时间要做什么事,日程标题、
内容、开始时间和结束时间、可以自由查询、修改和删除。
(4)个人文件管理模块。用户在网上需要存储的临时文件。用户可以新建
文件夹,修改、删除、移动文件夹,上传文件、下载文件、删除文件、
移动文件等。
系统功能描述如下:
(1)用户登录、个人使用用户名和密码以及输入验证码登录系统、
(2)查看个人信息。主界面显示个人基本信息,如姓名、性别、出生日期、
民族、学历、职称、电话、家庭住址、邮箱地址和登录名等、
(3)修改个人信息。用户可以修改自己的基本信息。如果修改了登录名,下
次应使用新的登录名。
(4)修改登录密码。用户可以修改登录密码。
(5)查看通讯录。浏览通讯录列表,按照姓名检索等。
(6)维护通讯录。增加、修改、删除联系人。
(7)查看日程安排。查看日程安排列表,可以查看某一日的内容时间等。
(8)维护日程。一个新的日程安排包括日程标题、内容、开始时间和结束时
(9)可以对日程进程进行添加、修改、删除等操作、
(10)浏览下载文件。任意浏览文件、文件夹,并可以下载到本地
2.2 项目设计
a)系统总体设计
个人信息管理系统业务流程图如图所示
系统业务流程图
b)系统数据库设计
在需求分析阶段已经完成系统的所有数据分析。根据该阶段建立的概念模型,已经得出满足第三范式的几个关系描述,此阶段主要的工作就是把前一阶段的成果转化为具体的数据库。
系统的基本E-R图
根据之前的分析规划出的个人信息管理系统实体有:个人信息实体、日程实体、通讯录实体、个人文件管理实体。
个人信息实体图如图所示
个人信息实体
同通讯录实体如图所示
3.3通讯录实体
日记实体如图所示
日程安排实体
财务管理实体如图所示
财务管理实体
关系描述的设计
根据数据库原理,并结合以上E-R图,经转换,可以导出各个关系。其转化规则为首先每个实体应该转换成一个关系,有属性的联系也应转化为一个关系然且需要给出每个关系的关键字。根据以上规则直接给出所有关系。
个人信息(用户ID号,用户密码,姓名,出生日期,电话号码,QQ,工作,地址,民族)关键字为用户ID号。
日程安排(标识,日期,地点,日记标题,备注)关键字为标识。
通讯录(标识,名字,性别,关系,添加时间,电话, QQ,出生日期,工作,地址,城市)关键字为标识。
个人文件管理(上传文件,下载文件)关键字为标识。
在得出以上关系后,根据关系数据库的理论要求,需要对所有的关系进行关系规范化,
至少要求各个关系达到第三范式的要求。按照第三范式的要求对比以上各个关系,在所有关系中都不存在非主属性对关键字的部分依赖,即满足第三范式。
数据库的逻辑设计
数据库逻辑设计即把得到的满足第三范式的关系转化为特定的数据库系统下的数据表。根据前面得到的各个关系,现把它们转化为数据表。
用户信息表:用户ID号,用户密码,姓名,民族,出生日期,电话号码,QQ,工作,地址。
日程表:标识,日期,事件,备注。
通讯录表:标识,姓名,性别,关系,添加时间,电话, QQ,出生日期,工作,地址,城市
个人文件管理表:文件上传,文件下载。
数据库设计
用Access作为数据库,实现数据的存储和访问。在数据库中构建以下几张数据表
2.3 项目实现
登录模块
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.sql.*"%>
个人信息管理系统实训function chk_image(){
var img = document.getElementById("pic");
img.src = "image.jsp?" + Math.random();
}
验证用户名密码以及验证码
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.sql.*"%>
"https://www.wendangku.net/doc/ba8029379.html,/TR/html4/loose.dtd">
JSP Page<%
String username=request.getParameter("username");
String password=request.getParameter("userpass");
String rand = (String)session.getAttribute("rand");
String input = request.getParameter("userimage");
Connection con=null;
Statement st=null;
ResultSet rs=null;
if(username.equals("")){
response.sendRedirect("index.jsp");
}
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:stuInfo");
st=con.createStatement( );
String sql="select * from user where username='"+username+"'";
rs=st.executeQuery(sql);
if(rs.next()){
//用户判断密码是否正确
String sql2="select * from user where password='"+password+"'";
rs=st.executeQuery(sql2);
if(rs.next()){
if(rand.equals(input)){
out.print("");
response.sendRedirect("main.jsp");
}
else{
out.print("");
}
}
else{
out.println("用户名或密码错误,请重新输入!");
//response.sendRedirect("index.jsp");
}
}
}catch(Exception e){
e.printStackTrace();
}
finally{
rs.close();
st.close();
con.close();
}
%>
●主界面
<%@page contentType="text/html" pageEncoding="UTF-8"%>
"https://www.wendangku.net/doc/ba8029379.html,/TR/html4/loose.dtd">
个人信息管理系统实训