个人信息管理系统终极版
个人信息管理系统终极版
————————————————————————————————作者:————————————————————————————————日期:
┊┊
┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
目录
1问题描述 (4)
1.1 设计任务及要求 (4)
1.2 问题理解和分析 (4)
1.3开发环境 (7)
1.4系统可行性分析 (9)
2题目设计及实现 (11)
2.1 总体设计 (11)
2.2数据库设计 (12)
2.3详细设计 (15)
7系统测试 (22)
7.1用户登录测试 (22)
7.2用户注册测试 (23)
7.3用户操作界面测试 (24)
8结论 (25)
9参考文献 (27)
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
1问题描述
1.1 设计任务及要求
本系统主要是在对个人基本信息的分析上进行设计的,根据需要,本系统主要具备了以下特点和功能:(1)具有良好的人机界面;(2)具有较好的权限管理;(3)方便查询和修改数据;(4)数据稳定性;(5)实用性;要具有管理中心,如好友基本信息管理、事务备忘对各种事情的管理、密码备忘对各种密码辅助记忆等相关个人的多种常用功能。
个人信息管理系统的基本管理方法:在管理中心里面,我们可以对自己的常联系的好友的基本信息进行操作,具体的操作有:添加好友及好友基本信息、删除好友基本信息、修改基本信息、还可以查询好友的信息;在事务帮手中,我们可以对平常要做的事情做一个备忘,例如要做事情的时间、地点等等,还可以对这些事务进行查询、添加、删除、修改等等一系列的操作,对已完成的事情自动转入历史记录;最后是在密码备忘中,可以对个人常用的密码进行备忘,例如对所设置的手机密码,银行卡密码,邮箱密码等进行备忘,具体的操作还是有查询、添加、删除、修改等等。
课程设计的主要目的如下:
(1)运用已学过的知识进行应用系统的开发,掌握软件设计流程。
(2)通过课程设计,学会Java高级语言、SQL语言等开发应用系
统,掌握基本的编程方法。
(3)通过课程设计掌握数据库的连接方法,及对数据的查询、修改、插入、删除等操作
1.2 问题理解和分析
随着社会的不断发展,社会的竞争也越来越激烈,这就在无形中增加了人们的生活压力,要做的事情太多,在这种环境下有些事情顾及不到是在所难免的。信息化的发展帮助人们解决了这个难题,信息管理使生活有条不紊的进行着。个人信息管理系统实现了管理的信息化,它记录着个人每日的重要信息,能记录、提示用户有关信息。人信息管理系统能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对个人信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高个人管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件是很有必要的。
个人信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面[1]。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,我们使用Eclipse开发工具,利用其提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发。本文主要介绍了个人信息管理系统的开发背景,所要完成的功能和开发的过程。主要说明了系统设计的重点、设计思想、难点技术和解决方案。在日常办公中的许多常用数据,比如朋友电话、邮件地址、日程安排、日常记事都可以用此系统进行管理。用户需要使用账号与密码通过登陆页面登陆个人信息管理系统,新用户可注册新账号登陆。登陆后进入系统主窗体,可对朋友信息管理、通讯录管理、日记管理、财务管理进行操作。注销时返回登陆页面。
本系统提供的的主要功能如下:
(1) 能对朋友信息进行管理:添加、查询、修改。
(2) 能对日记信息进行管理:添加、查询。
(3) 能对个人财务进行管理:消费清单、添加、查询。
(4) 能对个人信息进行管理。
1.2.1性能需求
(1)数据精确度
在“个人财务管理”表中,总收入、消费金额和剩余资金的数据精度都是小数点后四位。
(2)适应性
该系统适合各类人群使用,当用户需求改变时可以很快的修改,可维护性高。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊1.2.2运行需求
操作系统: windows系列
数据库管理系统:mysql
开发工具: eclipse
1.2.3项目设计模式
MVC 设计模式是目前用得比较多的一种设计模式,最早出现在Smalltalk 中,后来广泛应用于Java Web 应用程序中。Model(模型)表示业务逻辑层,View(视图)代表表示层,Controller(控制器)代表控制层。
(1)View
在Java Web 应用程序中,View 部分一般用JSP 和HTML 构建。客户在View 部分提交请求,在业务逻辑层处理后,把处理结果又返回给View部分显示出来。因此,View部分也是Web应程序的用户界面。
(2)Controller
Controller 部分一般由Servlet 组成。当用户请求从View 部分传过来时,Controller 把该请求发给适当的业务逻辑组件处理;请求处理完成后,又返回给Controller。后者再把处理结果转发给适当的View 组件显示。因此,Controller 在视图层与业务逻辑层之间起到了桥梁作用,控制了它们两者之间的数据流向。
(3)Model
Model 部分包括业务逻辑层和数据库访问层。在Java Web 应用程序中,业务逻辑层一般由JavaBeans 或EJB(Enterprise JavaBeans,企业级JavaBeans)构建。EJB 是J2EE 的核心组件,可以构建分布式应用系统。与普通JavaBeans 不同,它由两个接口和一个实现类组成,并且包含一些固有的用于控制容器生命周期的方法。
(4)基于MVC模式的Java Web应用程序实例
按照MVC 设计模式,用JSP,Servlet 及JavaBeans 构建一个登录系统。
该系统的要求是,当用户在登录页面上填入用户名和密码并提交后,系统将检查该用户是否已经注册;如果该用户已注册,系统将进入主页面,否则就进入注册页面。
(5)按以下步骤构建这个系统:
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
①数据库设计:使用Mysql 作为数据库,构建数据表T_UserInfo;
②构建视图组件:登录页面login.jsp,主页面main.jsp,以及注册页面register.jsp;
③构建控制层组件:一个Servlet,取名为loginServlet.java;
④构建业务逻辑层组件(Model 组件):一个JavaBean,取名为loginHandler.java;
⑤构建数据访问层组件:一个数据访问类,取名为dbPool.java;
⑥编译、打包程序;
⑦部署该程序到Web 服务器Tomcat 中,然后运行。
1.3开发环境
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段(Script)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和script,来封装产生动态网页的处理逻辑。网页还能通过tags和script访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP(Java Server Pages)是一种基于Java的脚本技术。在JSP的众多优点之中,其中之一是它能将HTML编码从Web页面的业务逻辑中有效地分离出来。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器。Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品[3]。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit),而本论文的设计正是基于JDK1.6.0_17版本来开发实现的。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
网络数据库系统,尤其是网络三层结构数据库系统有着诸多的优点,三层结构数据库系统的应用在日益增加。使用Java语言和JDBC API发布含有applet 小程序的网页,通过网页中applet小程序访问远程数据库在目前已被广泛的应用。另一方面,由于JDBC使得开发数据库应用程序越来越受到Java语言程序开发人员的重视。在数据库应用系统调用JDBC API方法之前,首先需要进行注册和装入JDBC驱动程序。
在Java语言https://www.360docs.net/doc/4f14433434.html,ng.Class接口中的Class.forName()方法[8]是将指定的类装载到支持Java语言程序运行的虚拟机中。JDBC API在Java.spl包中提供的连接对象表示与数据库的连接。连接过程包括所执行的SQL语句和获取在该连接上所返回的结果。一个数据库应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。JDK(Java Development Kit)是Sun Microsystems 针对Java开发员的产品[3]。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit),而本论文的设计正是基于JDK1.6.0_17版本来开发实现的。
mysql数据库的特点有[6]:(1)具有最小的冗余度,即数据库尽可能不重复;
(2)资源共享性,即以最优的方式服务与一个或多个应用程序;(3)数据独立性,即数据的存储尽可能独立于使用它的应用程序;(4)安全可靠;(5)保密性能好。
JDBC[(Java DataBase Connectivity.Java数据库连接)是一种可用于执行
SQL(结构化查询语言)语句的Java API(Application Programming Interface,应用程序设计接口)。它是一些由Java语言编写的类和界面组成。JDBC为数据库应用开发人员提供了一种标准的应用程序接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。同时,Java语言程序还可以通过JDBC来访问计算机上已经定义的ODBC(Open Database Connectivity.开放数据库连接)数据源。
网络数据库系统,尤其是网络三层结构数据库系统有着诸多的优点,三层结构数据库系统的应用在日益增加。使用Java语言和JDBC API发布含有applet 小程序的网页,通过网页中applet小程序访问远程数据库在目前已被广泛的应用。另一方面,由于JDBC使得开发数据库应用程序越来越受到Java语言程序开发人员的重视。
在数据库应用系统调用JDBC API方法之前,首先需要进行注册和装入JDBC驱动程序。在Java语言https://www.360docs.net/doc/4f14433434.html,ng.Class接口中的Class.forName()方法[8]
是将指定的类装载到支持Java语言程序运行的虚拟机中。方法如下:public static class forName(String className)
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
throws classNotFoundExecption
{
return
forName0(className,true,classLoader.getcallerclassLoader();)
}
JDBC API在Java.spl包中提供的连接对象表示与数据库的连接。连接过程包括所执行的SQL语句和获取在该连接上所返回的结果。一个数据库应用程序
可与单个数据库有一个或多个连接,或者可与许多数据库有连接。
1.4系统可行性分析
本系统管理的对象都是个人的基本信息,并且数据内容具有一定的关联性,比较适合于采用数据库管理。根据所学的专业知识和所具备的专业技能,采用功能强大的JAVA编程技术,利用微软公司的Microsoft SQL Server作为后台数据库设计实现,有指导老师的指导、同学的帮助和相关参考文献,特别是网上资料,及参考其它程序的功能,因此完全可以实现。本系统主要可以实现以下的管理功能:好友基本信息管理、平常事务情况管理、各种密码信息管理等等。该模块的主要任务是维护系统的正常运行和安全性设置,包括添加用户、修改密码、删除用户等等。该模块主要的任务是实现对个人自己的好友基本信息(如电话号码,QQ号码)的管理,包括:好友基本信息的添加、信息修改、信息查询,从而方便管理人员对好友的基本情况的快速查询和了解。
实现对个人所需要做的事情的基本信息(如事务时间,地点等等)的管理,包括:事务基本信息的添加、信息修改、信息查询,从而方便自己对各种事务的基本情况的快速查询,及时做出判断。该模块主要的功能是实现对个人自己的密码基本信息(如自银行卡密码,手机密码,邮箱密码)的管理,包括:密码信息的添加、信息修改、信息查询,从而方便自己对快速查询和了解各种密码,防止遗忘。本系统是对个人信息进行分析而设计,因此本个人信息管理系统是一个简单适用型的系统,本系统的设计目标将最终定位于完成以上所述的系统主要业务的基本模型上。
在需求分析后,就可以设计出能够满足用户需求的各类实体,以及它们之间的关系,为后面的设计打下基础。这些实体包含各种具体的信息,通过相互之间的作用形成数据的流动[11]。
根据上面的分析规划出的实体有:用户信息实体、好友信息实体、事务帮手信息实体、密码备忘信息实体
本系统的设计是在Windows 中文版操作系统环境下,采用JAVA编程技术,
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊mysql作为后台数据设计实现。SUN公司的JAVA开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。JAVA设计之初就是为了简化开发,并且面向不同的设备。JAVA编程如同搭积木,将不同的模块通过接口连接起来组成一个完整的系统[9]。而且很多构件是JAVA系统内部的,而不需要程序员进行开发,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统JAVA是一个相对较好的选择。mysql是一个简单易学的关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索,而且具有相应的安全性。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
2题目设计及实现
2.1 总体设计
用户需要使用账号与密码通过登陆页面登陆个人信息管理系统,新用户可注册新账号登陆。登陆后进入系统主窗体,可对朋友信息管理、通讯录管理、日记管理、财务管理进行操作。注销时返回登陆页面。
本系统提供的的主要功能如下:
(1) 能对朋友信息进行管理:添加、查询、修改。
(2) 能对日记信息进行管理:添加、查询。
(3) 能对个人财务进行管理:消费清单、添加、查询。
(4) 能对个人信息进行管理。
功能模块图如2-1:
图2-1功能模块图
项目的总体包括4个模块:
(1)朋友基本信息管理模块。包括朋友的姓名、性别、职称、电话、家庭住址等。
(2)用户个人收支模块。包括收支情况,时间,金额等。可以自由添加,查询收支信息。
财
务
总
况
财
务
清
单
收
入
情
况
支
出
情
况
添
加
记
录
退
出
系
统
查
看
日
志
写
日
志
添
加
朋
友
信
息
查
看
朋
友
信
息
修
改
朋
友
信
息
朋友日财务操
个人信息
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
(3)日记管理模块。添加某一时间,在某一地点,主要人物和详细事件的添加。
(4)系统管理模块。用户更改个人当前财富的总金额
系统总流程图如图2-2所示。
图2-2 系统流程图
2.2数据库设计
数据库采用mysql数据库,数据库名为personal,包含用户表、朋友信息表、日志信息表、收支信息表。在“个人财务管理”表中,总收入、消费金额和剩余资金的数据精度都是小数点后四位。需求分析阶段已经完成系统的所有数据分析。根据该阶段建立的概念模型,已经得出满足第三范式的几个关系描述。本阶段的工作就是把前一阶段的成果转化为具体的数据库。一般把数据库的设计分为数据库的逻辑设计和数据库的物理设计两个步骤。数据库逻辑设计即把得到的满足第三范式的关系转化为特定的数据库系统下的数据表。根据前面得到的各个关系,现把它们转化为数据表。
┊┊┊┊┊
┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
表5-2朋友信息表
字段名数据类型字段长度与格式主键firendID INT 20 是fName VARCHAR 20 否
fSex VARCHAR 2 否fTelep VARCHAR 20 否fAddr VARCHAR 20 否fRemark VARCHAR 20 否
表5-3日志信息表
字段名数据类型字段长度与格式主键logID INT 20 是logDetails text 20 否logD datetime 20 否
logP VARCHAR 20 否
logW VARCHAR 20 否fRemark VARCHAR 20 否字段名数据类型字段长度与格式主键userId int 20 是username VARCHAR 20 否password VARCHAR 20 否
┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
表5-4收支信息表
字段名数据类型字段长度与格式主键FIID INT 20 是IorO VARCHAR 20 否info VARCHAR 20 否nowDalance VARCHAR 20 否data datetime 20 否FMoney double 20 否
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊2.3详细设计
2.3.1登录界面
该界面实现用户登录的用户名及密码验证。实现用户的密码及用户名与数据库匹配,保证的安全性
用户登录界面如图2-3所示:
图2-3用户登录窗口
登录成功后就进入系统,这是默认的是进入系统的通讯录信息界面,如图14所示,在这个界面可以显示当前用户,可以对通讯录进行相关的管理,同时也可以通过左侧的快捷菜单进入其他功能界面。本界面的主要功能是为了对系统进行安全性管理。本系统的用户名称和用户密码保存在用户信息表中,首先可以初始密码登陆;初始密码设置为q,系统会自动校验密码正确与否。本系统相对安全,因为在设置过程中我通过一个类来实现。在初次运行时它会自动的跳转到系统登陆界面,这样就使系统相对安全。如果密码输入错误,则会提示“密码错误,请重新输入!”,在本界面中设置有“登陆”,“重置”,“注册”三个按钮当点击登录时先用js判断输入的数据是否为空。不为空则讲用户名与数据库中的用户名匹配,如匹配则对照用户输入密码于数据库中password是否一致则记录用户名在session中并转跳到操作页面。
2.3.2用户注册界面
该界面市为用户注册提供的界面,让用户可以注册自己的用户名及密码,在登录时得到与自己有关信息。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊用户注册界面如图2-4所示:
图2-4用户注册窗口
当用户点击注册时先用js判断注册的输入框是否为空,如不为空则判断用户名是否与数据库中的username是否重复,若不重复责检查密码与确认密码是否相同,相同注册成功跳转到登陆界面,失败则返回注册界面并在注册界面显示错误信息。
2.3.3用户操作界面
该界面为用户操作提供基础界面在此界面用户可以选择自己所需的操作,当用户没有等刻录自动跳转到登陆界面。防止没有登陆便可以操作产生不必要的错误。修改的方法采用了批量修改方法。界面简洁大方直观的表述了在用户操作的基本按钮
用户操作界面如图2-5所示:
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊
图2-5用户操作窗口
用户操作界面没有采用框架而是用了include在右边的div中包含其他子页面,并将子页面的标志写入session中以方便后续使用,在主界面中的注销功能是将页面session中的username清空,当username为空时页面自动跳转到登陆界面。防止没有登陆便可以操作产生不必要的错误。修改的方法采用了批量修改方法。
批量修改的主要代码如下:
String[] fSexs = request.getParameterValues("fSex");
String[] fAddrs =
request.getParameterValues("fAddr");
FriendDAO dao= new FriendDAO();
for (int i = 0; i < friendIDs.length; i++) {
String fSex = fSexs[i];
String fAddr = fAddrs[i];
String fTelep = fTeleps[i];
}if (b) {
String info = "操作成功";
session.setAttribute("info", info);
} else {
String info = "操作失败";
session.setAttribute("info", info);
}
response.sendRedirect("manage.jsp");
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊6.3.1朋友信息录入界面
该界面市为用户查找并修改朋友信息的界面,让用户可以修改查看自己朋友的信息,添加朋友信息。
朋友信息如图2-6所示:
图2-6朋友信息录入窗口
朋友信息录入窗口是有朋友信息窗口中的添加朋友信息按钮转跳过来的,帮用户输入朋友信息并点击保存按扭时,跳到Servlet,在Servlet中判断朋友名是否在数据库中已经存在如存在则返回朋友信息界面并显示“朋友信息已存在请勿重复添加”的提示信息。如不存在则保存到数据库中并返回返回朋友信息界面并显示“操作成功”的提示信息。并将数据保存到数据库中同时刷新页面用户可以直观的看到你添加的信息。
录入成功界面如图2-7所示:
图2-7朋友信息录入成功窗口
朋友信息录入成功窗口是有朋友信息窗口中的添加朋友信息按钮转跳过来的信息显示窗口,则返回朋友信息界面并显示“朋友信息已存在请勿重复添加”的提示信息。如不存在则保存到数据库中并返回返回朋友信息界面并显示
“操作成功”的提示信息。并将数据保存到数据库中同时刷新页面用户可以直
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊观的看到你添加的信息
6.3.3日记操作界面
该界面市为用户查找并修改日记信息的界面,让用户可以修改查看自己日记的信息,添加日记信息。
日记操作面如图2-8所示:
图2-8日记操作窗口
日记信息录入窗口是有日记信息窗口中的添加日记信息按钮转跳过来的,帮用户输入日记信息并点击保存按扭时,跳到Servlet,在Servlet中判断日记名是否在数据库中已经存在如存在则返回朋友信息界面并显示“日记信息已存在请勿重复添加”的提示信息。如不存在则保存到数据库中并返回返回朋友信息界面并显示“操作成功”的提示信息。并将数据保存到数据库中同时刷新页面用户可以直观的看到你添加的信息
日记操作窗口的主要代码如下: