摘 要

随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须经常与亲戚、朋友、同学、同事和其它一些人保持联系。因此,为了能够快速查找到联系人的信息,节省查找时间,可以创建一个个人通讯录管理系统。

通过编写并调试一个Java应用软件,连接MySQL数据库,实现一个基本的个人通讯录管理系统,包括用户登陆注册,新建联系人,分组,修改,增加,删除,导入导出,显示联系人基本个人信息等功能。

在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摒弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。

关键词JAVAMysq个人通讯录管第一章 概述

1.1引言

个人通讯录管理系统是根据个人通讯录需求而开发的一套管理软件。个人通讯录管理系统主要是管理用户的联系人信息,对其进行分组分类,使得用户在查找联系人时更加方便快捷。在现在的信息时代,越来越多人增加了对手机的需求,一套完整的管理系统可以节约用户时间的同时,满足用户更多元化的需求。此系统对联系人进行分类,使得用户在与亲戚、朋友、同学、同事等保持联系的同时,节约更多时间,同时该系统为保护用户的个人隐私,在进入系统前需要登录,通过密码进行验证,在方便快捷的同时保证了用户个人信息安全。

通过该系统,用户可将联系人、联系人各项基本信息连成一个有机整体,进行快速、高效的信息收集和业务处理,为通讯服务提供方便快捷的通讯环境,提高通讯管理效能,保持良好的人际关系。

1.2系统目标

本次设计的个人通讯录管理系统功能齐全,包括登录功能、用户通讯录管理功能、用户联系组管理功能、用户联系人管理功能,对不同类别的联系人进行分组,同时可以储存联系人的姓名、手机、QQ、微信、Email、微博、博客、地址等多项信息,做到多元化,方便用户同时查询多项信息。

第二章 个人通讯录管理系统需求分析

2.1系统功能需求

2.1.1登录管理

用户可以直接输入用户名和密码,登录进入通讯录的主功能界面。其他用户可以输入自己的用户名、密码及确认密码,来实现注册成为该通讯录的使用者。

2.1.2系统设置

2.1.3用户管理

在该功能里,用户可以对自己存储的联系人进行查询。

2.1.4用户通讯录管理

2.1.5用户联系组管理

2.1.6用户联系人管理

2.1.7退出管理

用户可以选择退出,也可以选择重新登录。

2.2个人通讯录的非功能需求
(1)系统的容错能力。在做该系统时,一-定要考虑全面可能出现错误信息的地方,然后加上trycalch语句进行捕捉,防止造成系统故障。
(2)系统的对话框提示。当注册用户时,用户名有重复时,提示不可注册:注册密码与确认密码不同时,也要弹出提示,不允许注册等等一系列对话框弹出提示。
(3)在使用数据的查询语句时,尽量使用存储过程提交,方便了对数据库的查询,同时也提高了查询速度。
(4)便捷性。尽量用户界面做的简洁大方美观,有很好的用户界面交互能力,也使用户使用起来更加方便。

2.3系统的性能要求

因服务器资源有限,故以控制用户数量的手段来保证服务器的稳定。Mysql数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能[1]。数据库引擎充分保护数据完整性,同时将管理上千并发修改数据库的用户的开销减到最小。因此当网络数据量增大时,系统也可以稳定的运行。数据库安全方面主要是利用Mysql自带的各种管理工具,实现对关键数据的保护。

2.4统配置

2.4.1软件配置

客户端: 安装Java虚拟机

开发环境:Eclipse

开发语言:Java

数据库: Mysql5.7

2.4.2硬件配置

电脑配置:CPU: Core i52.30GHz 内存:DDR3 8GB 硬盘:500GB

操作系统:Microsoft Windows10

2.5可行性分析

2.5.1经济可行性

2.5.2技术可行性

2.5.2社会可行性

综上所述,此系统开发目标已明确,在技术和经济方面都是都可行。所依此系统的开发是完全可行的。

第三章 个人通讯录管理系统总体设计

3.1功能设计

系统所实现的功能强弱是衡量一个软件好坏的最直接也是最根本的标准。经过对系统的可行性分析、需求分析、数据分析以及数据库设计后,结合调研的情况,本系统分为用户登录、用户管理、用户通讯录管理、用户联系组管理、用户联系人管理、退出登录,确定了本系统的功能模块如图

3.2系统功能设计

3.2.1登录功能

登录管理主要包括用户登录管理。PC端和移动端用户需要输入正确的用户名、密码才能够登录系统。

3.2.2主要类设计

(1)LoginController.java.该类主要用于实现用户登录界面,包括如何使用正确的用户名、密码进行登录,如何对面板进行布局,如何实现用户登陆界面与主界面的连接等。

  1. RegisterController.java该类主要用于实现新用户注册界面,包括新用户如何注册成为该通讯录系统的使用者,以及一些注册界面的设计和布局。

    (3)Main.java.该类为用户主功能界面,在该类里,包括菜单、菜单项的设计,以及实现查询、添加、修改、删除、备份和退出功能的界面布局设计和它们的功能的实现。并且这些功能基本上:都在一个窗体下的面板里显示的。

    (4)EditPersonController.java.该类主要用于实现联系人信息的修改功能。包括窗体组件的布局和设计,以及要修改的联系人的默认信息的显示在文本框里等。

    (5)AddGroupController.java.该类中定义了一系列的添加联系组。目的是为了将联系人按照不同的类别分类,方便了用户的查询

  1. AddPersonController.java. 该类中定义了一系列的添加联系人,新建联系人。目的是在用户认识更多人时将他们加入到通讯录中。
  2. FindPwdController.java. 该类中定义了数据库的连接,使联系人信息被系统记忆储存,方便了用户的查询。
  3. ImportExportController.java. 该类中定义了对通讯录的导入导出。

    (9)Userjava。该类主要是为了当用户修改密码时,原用户的用户名和密码默认都已在文本框里显示了,用户不必再手动输入自己的用户名和密码,只需输入自己要修改后的密码就行,方便了用户的使用。

3.2.3数据库设计

(1)数据表的设计
根据系统的需求,在该数据库中主要建立了3个表,分别为:联系人表
(contactUser125)、分组表(contactGroup125)、用户表(systemUser125)。
①联系人表(联系人编号、联系人姓名、性别、手机、QQ、微信、Email、微博、博客、github、地址、分组。

②分组表(分组编号、分组名、用户编号)。
③用户表(用户编号、用户名、用户密码)。

第四章 详细设计

4.1详细模块设计

4.1.1登录功能

(1) 功能说明

登录功能主要实现用户登录管理界面的功能。用户可以通过首页进入登录页面,填入用户名和密码,执行登录后,根据MySQL数据库中信息核对是否正确,如正确则登录成功。若信息不正确,若密码输入错误,则可找回密码,若数据库中无法查询到该用户名或用户第一次使用该系统,则需要注册后使用。

(2) 程序流程图

  1. 模块算法(或重要代码段)

①当用户点击“登录”按钮时,由于登录按钮添加了监听器,所以会产生一个监听动作,即系统会主动获取文木框中输入的用户名和密码,连接数据库,然后和数据库中systemUser125表中的username和userpassword列的数据相比对,如果完全匹配,则进入主功能界面,否则失败。
②当用户点击“取消”按钮时,使用system.exit(0)自动退出系统。
③当用户点击“注册”按钮时,则弹出注册窗口。
(4)调试与测试
当用户名为空时,会弹出提示信息“用户名不能为空!”;当密码为空时,会弹出信息“密码不能为空!”当用户名或密码和数据库中的不匹配时,则会弹出提示信息“用户名或密码错误!”。

4.2.2 系统设置功

(1)功能说明

系统设置功能主要是用户登录成功后的界面,在此界面进行对所需要功能的选择。

模块算法

①模糊查询算法
当用户点击了“查询”按钮时,会产生-一个监听动作,这个监听动作为:首先要加载数据库连接,然后定义-“个StringBuffer类型的字符串str,并给他赋初值为SQL语句的查询语句字符串,然后使用if条件判断三种查询方式中,哪些方式被选择了,然后把被选择的查询方式所对应的where条件采用strappend()方式,追加到SQL语句中,然后把StringBuffer类型的字符串用toString()方法转换为String类型,最后把查询的结果在表格组件中显示出来。
②精确查询算法
当用户点击“查找”按钮时,会产生-一个监听动作,这个监听动作为:首先要加载数据库连接,然后定义一一个StringBuffer类型的字符串strl,并给它赋初值为”SELECT★FROMcontactUser125where1=0″,然后采用if…elseif…elseif条件来判断用户选择的是哪一个单选框,如果选择“按姓名查询”单选框,则在strl后面调用append方法追加”orcontactName='”+jt4.getText()+”‘”,否则的话,如果选择“按手机号查询”,则在strl后面追加”orhandset='”+jt4.getText()+”i”,否则的话,如果选择“按Qe号查询”,则在strl后面追加”orQQ='”+jt4.getText()+”‘”,最后将str1调用toString()方法转换为string类型,最后将查询的结果在表格组件中显示出来。
(4)调试与测试
刚开始对于模糊查询也有自己的想法,那就是把复选框中所有可能的条件组合全都列出来,然后由系统去判断用户选择的复选框组合属于哪种,然后再去查询结果,后来,觉得这样做,会有点麻烦,最后,在向老师请教后,终于有了简单的可行的方法,那就是定义一个stringBuffer类的对象,然后去判断哪个复选框被选中了,把被选中的复选框的条件,追加到where条件中,这样就实现了简便的模糊查询。而对于精确查询的实现,也就慢慢地迎刃而解了。

程序源码

https://mp.csdn.net/mp_download/manage/download/UpDetailed