JAVA通讯录管理系统设计与实现本科毕业论文.docx
《JAVA通讯录管理系统设计与实现本科毕业论文.docx》由会员分享,可在线阅读,更多相关《JAVA通讯录管理系统设计与实现本科毕业论文.docx(38页珍藏版)》请在冰豆网上搜索。
![JAVA通讯录管理系统设计与实现本科毕业论文.docx](https://file1.bdocx.com/fileroot1/2023-1/27/066b19ad-598b-476a-acae-b4acbe165fc3/066b19ad-598b-476a-acae-b4acbe165fc31.gif)
JAVA通讯录管理系统设计与实现本科毕业论文
本科毕业论文(设计)
题目通讯录管理系统
系别网络与继续教育部
专业计算机科学技术与应用
年级2011级
学号
姓名李本城
指导教师丁华锋
成绩
2014年11月11日
文献综述
通讯录管理系统的设计与实现
李本城
西南大学荣昌校区信息管理系重庆荣昌402460
摘要:
随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须经常与亲戚、朋友、同学、同事保持联系,但是有时候存在着许多的限制条件,比如怎样找到交流对象的各种信息?
可能你会想到现实生活中的手机等通讯工具,由于这些工具的单一性,不可能在第一时间找到自己想要的信息资料,因此,为了能够快速查找到联系人的信息,节省查找时间,开发通讯录管理系统。
通讯录管理系统是一个基于C/S模式的个人通讯录管理系统。
它是将自己的联系人的具体信息集中管理,成为一个方便人们使用的小软件。
在开发过程中主要运用Java,JDK,MySQL,SWING等技术,由于开发工具和数据库之间的良好使用,可以为开发带来方便,使之成为一个可施行的系统。
从而达到开发的目的----实现对通讯录信息的管理。
“优秀的人际关系是一个人成功的重要因素”这已经成为不争的事实,这些日益繁多的人际交往使得我们很难搞清楚与每个人具体的联系方式,这严重影响了一个人的发展,所以通讯录管理系统的建立已是必要的了,此次课程设计我利用了数据结构中的知识以及JAVA语言的知识设计的通讯录管理系统能够达到快速了解联系人信息,通讯录管理系统主要包括:
1.通讯录链表的建立2.通讯者结点的插入3.通讯者结点的查询4.通讯者结点的删除5.通讯录链表的输出0.退出通讯录管理系统。
你能够通过本系统了解联系人的姓名、手机、家庭地址,你也可以根据自己的需要改变系统的信息,也可以浏览全部通讯的联系人,并且可以根据数据表的各字段来查询你所要找的联系人等功能。
相信通过使用该通讯录管理系统能够更加便利你的生活,为你的良好的人际关系添砖加瓦,帮助你走向成功。
目前的信息通信能力已经走超出了我们的想象,越来越多的通信工具出现,但无论是何种工具,其基本的一项功能就是记录通信者的信息,也便在需要时进行查寻。
关键词:
个人通讯录管理系统、添加、删除、查找、数据库
第一章引言
1.1通讯录的现状和背景
俗话说:
”海内存知己,天涯若比邻”,在现在竞争激烈,快节奏的生活中,人们之间的交流变得十分重要。
随着计算机技术的飞速发展,计算机在企业管理和个人生活中的应用越来越普及,越来越重要。
利用计算机实现公司往来通讯或个人的通讯管理显得越来越重要。
对于用户来说,利用计算机高效率地完成通讯录的查询,是适应现代通讯录管理制度要求,而销售管理是一项琐碎、复杂而又十分细致的工作,一般不允许出错,如果实行手工操作,须手工填制大量的表格数据,这就会耗费工作人员大量的时间和精力,计算机进行销售管理工作,不仅能够保证工作准确无误、快速完成,而且还可以利用计算机对有关商品的各种信息进行管理,服务于企业的各个部门,同时计算机具有手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高企业销售管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
在现代社会中管理的作用越来越显得重要和突出。
一般来讲,管理通过计划、组织、指导与领导、控制等手段,为组织制定目标,应用组织的各种要素,以实现组织的目标。
本世纪以来,由于社会生产力的迅速发展和科学技术的突飞猛进,人们进行信息交流的深度和广度不断增加,管理所需要的信息量急剧增长,同时对信息的处理要求及时、准确,这导致了传统的信息处理方法和手段已不能适应现代管理的需要;传统的企业管理活动中,把人、才、物作为企业的主要资源。
但是随着社会化大生产的不断扩大和社会对产品多样化的需求,人们越来越重视信息在生产经营及企业管理中的作用,并把它当作企业的一种极其重要的资源,人们称之为“信息资源”,信息资源的处理已经成为当今世界上一项主要的社会活动。
电子计算机的诞生 “信息时代”的开始,它使企业管理现代化成为可能。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对通讯录进行管理,有着手工管理所无法比拟的优点.例如:
浏览迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套软件成为很有必要的事情,在下面的正文中我们将以开发通讯录管理系统系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
第二章开发技术及技术
2.1开发技术
2.1.1MVC
MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
比如一批统计数据可以分别用柱状图、饼图来表示。
C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
模型-视图-控制器(MVC)是XeroxPARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。
后来被推荐为Oracle旗下Sun公司JavaEE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。
模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
2.1.2JDK
JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。
自从Java推出以来,JDK已经成为使用最广泛的JavaSDK(Softwaredevelopmentkit)。
JDK是整个Java的核心,包括了Java运行环境,一堆Java工具和Java基础的类库(rt.jar)。
不论什么Java应用服务器实质都是内置了某个版本的JDK。
因此掌握JDK是学好Java的第一步。
最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。
其中IBM的JDK包含的JVM运行效率要比SunJDK包含的JVM高出许多。
而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。
从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本信息也不再延续以前的1.2,1.3,1.4,而是变成了5.0,6.0了。
从7.0开始,其运行效率得到了非常大的提高,现在已有8.0问世了。
2.1.3SWING
图形用户界面(GraphicalUserInterface,GUI)。
Swing是一个用于开发Java应用程序用户界面的开发工具包。
它以抽象窗口工具包(AWT)为基础使跨平台应用程序
2.1.4Java
Java语言是一种面向对象的编程语言,是SunMicrosystems开发的编程平台。
Java技术基于单一Java虚拟机(JVM)的概念,JVM是编程语言与机器底层软件和硬件之间的翻译器。
编程语言的所有实现都必须模拟JVM,从而使Java程序可以在具有JVM版本的任何系统上运行。
Java编程语言是与众不同的,因为Java程序需要经过编译(翻译为叫做Java字节码的中间语言)和解释(通过JVM分析和运行字节码)。
编译只进行一次,而解释则在每次运行程序时都要进行。
Java语言具有简单、面向对象、分布性、解释型、安全性、平台无关性、可移植性、高性能、支持语言级多线程等优点。
广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java自问世以来,以其得天独厚的优势,在IT业界掀起了研究、开发它的浪潮,显示出了美好的发展前景。
作为一种与底层硬件无关的、“编写一次,到处运行”的高级语言和计算平台,Java天生就具有将网络上的各个平台连成一体的能力,真正实现了“网络就是计算机”的理念。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
2.2开发工具
2.1.1MyElipse
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernat] 。
MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。
可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。
2.1.2MySQL及
MySQL 是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:
关系数据库管理系统)应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
2.1.3NavicatforMySQL
NavicatforMySQL 是一款强大的MySQL数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具,但对于新用户仍然易于学习。
NavicatforMySQL基于Windows平台,为MySQL量身订作,提供类似于MySQL的用管理界面工具。
此解决方案的出现,将解放PHP、J2EE等程序员以及数据库设计者、管理者的大脑,降低开发成本,为用户带来更高的开发效率。
NavicatforMySQL使用了极好的图形用户界面(GUI),可以用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。
用户可完全控制MySQL数据库和显示不同的管理资料,包括一个多功能的图形化管理用户和访问权限的管理工具,方便将数据从一个数据库转移到另一个数据库中(LocaltoRemote、RemotetoRemote、RemotetoLocal),进行档案备份。
NavicatforMySQL支援Unicode,以及本地或远程MySQL服务器多连线,用户可浏览数据库、建立和删除数据库、编辑数据、建立或执行SQLqueries、管理用户权限(安全设定)、将数据库备份/复原、汇入/汇出数据(支援CSV,TXT,DBF和XML档案种类)等。
软件与任何MySQL5.0.x伺服器版本兼容,支援Triggers,以及BINARYVARBINARY/BIT数据种类等的规范。
第三章系统的需求分析
3.1系统功能分析
由于计算机科学技术的快速发展,开发一个通讯录管理系统管理自己联系人信息非常必要,可以提高我们办事的效率。
经过多方面的思考与查询,系统的设计出通讯录系统的功能。
系统分为四大模块:
用户登录,联系人信息维护,查找联系人,用户信息维护。
功能模块:
Pig.3-1Functionmodule
图3-1功能模块
3.2.1用户登录模块
据用户名和初始密码进行登录,验证通过后进入主窗体,输入有误则提示错误消息,要求用户重新输入,直到成功登录。
在用户登录前,其他人无法对联系人信息进行操作。
3.1.1联系人信息维护模块
(1)修改联系人信息:
可以修改联系人信息,如:
由于联系人更换电话或则家庭住址等等,进行修改操作。
(2)删除联系人信息:
可以删除这个联系人的具体信息。
如:
这个联系人的联系方式已经改变而暂时找不到新的方式时,可以删除这个。
(3)增加联系人信息:
可以增加新的联系人的联系方式,包括姓名,电话,邮箱家庭住址等等。
3.1.2查找联系人
可以按数据库任意字段名查找联系人,将查询结果显示在软件主界面的表格中,以便查看联系人详细信息。
按姓名排序、按姓名查询、快速查询。
3.1.3用户信息维护
将用户的操作请求发送至客户端,客户端收到用户操作请求,验证通过,对数据库中的数据进行操作,然后返回提示信息。
若验证没有通过,则返回主窗体.
3.2系统用例分析
3.2.2参与者分析
3.2.1.1该系统的参与者为Administrator,Printer,DB,各自的主要任务为:
(1)Administrator:
该参与者为系统登录用户,主要工作是对通讯录中的联系人的更新与维护,包括通讯录中的联系人的信息维护等。
(2)Printer:
该参与者主要工作是把用户所需要的信息显示在界面上,如用户查询的列表信息显示。
(3)DB:
该参与者为数据库系统,主要工作是搜集信息,提供搜索功能,方便用户对联系人的信息查找,更新,删除,增加等。
3.2.1.2该系统的参与者在UML中的描述如图所示:
-2Schematicdiagramoftheparticipants
图3-2参与者示意图
通讯录管理系统程序流程图:
Pig.3-3Theprogramflowchart
图3-3程序流程图
3.2.3系统主用例识别
3.2.2.1通过认真分析与思考,我认为自己的系统按照设计图大致将该系统的参与者,主用例和主用例的功能描述如下:
(1)联系人信息维护:
该主用例主要是对联系人的详细信息进行维护,通过对信息的维护可以确保自己人际交往的良好,保证日常生活的次序。
(2)查找联系人:
3.2.2.2该用例主要方便用户在第一时间可以很快提取到想要的联系人的各种信息,方便,快捷。
系统的主用例图如图所示:
Printer显示
系统管理员
联系人信息查询
联系人信息维护
Themainintentionwithinstantiation
图3-4主用例示意图
3.2.4系统子用例识别
联系人信息维护主用例主要包含以下子用例,各子用例描述如下:
(1)增加联系人功能:
该功能主要是针对用户在人际交往中认识新的朋友和伙伴,为了更好的相处及增进友谊,对方留下自己的各种联系方式,包括电话,手机,邮箱,家庭住址等等。
(2)更新联系人功能:
该功能主要是针对用户在于朋友,亲戚的友好相处中,由于对方更换联系方式,并且及时告诉用户信息,用户可以根据对方告知的信息进行更新,方便日后联系。
(3)删除联系人功能:
该功能主要是对联系人信息的删除。
该主用例与子用例之间的关系描述如图所示:
Themaincaseandsonwithexemplaryintention
图3-5主用例与子用例示意图
3.3数据库分析
通讯录管理系统是方便大众日常生活的工具,为了迎合大众需求,具体有浏览信息、查询信息、添加和删除信息,及排序等功能。
这就要求数据库结构能充分满足各种信息的输入与输出,实现有组织地,动态储存大量关联数据,方便用户访问系统中的数据。
3.3.1概念结构设计
根据需求分析抽象出信息结构,可得该系统的E-R图。
(1).用户E-R图
Pig.3-6TheuserE-Rdiagram
图3-6用户E-R图
根据分E-R图和需求分析,可得到总E-R图
TheoverallE-Rdiagram
图3-7总体E-R图
3.3.2逻辑结构设计
基本信息表Friend用来保存姓名、电话、家庭住址、邮箱信息。
表Friend的结构如表3-1所示。
Table3-1StructurefortableFriend
表3-1表Friend的结构
编号
字段名称
数据结构
说明
1
Name
Char
联系人姓名
2
Tele
Char
联系人电话
3
Adder
Char
联系人家庭住址
4
Mail
Char
联系人邮箱
5
Sex
Char
性别
6
Age
int
年龄
3.3.3数据库表的建立
在设计数据库表结构之前,首先要创建一个数据库。
本系统使用的数据库为Friend。
创建表Friend(基本信息表),它的代码如下:
CREATETABLEFriend
(Namechar(20)PRIMARYKEY,
Telechar(20),
Addrchar(30),
Mailchar(20)
)
GO
第四章系统实现
4.1数据库的实现
数据库连接
packageconnect_sql;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
publicclassConnects{
privateStringdbDriver="com.mysql.jdbc.Driver";
privateStringurl="jdbc:
mysql:
//localhost/new_db";
privateConnectioncon=null;
publicConnects(){
try{
Class.forName(dbDriver).newInstance();//数据库驱动
try{
con=DriverManager.getConnection(url,"root","123");
System.out.println("提示:
数据库加载成功!
");//加载数据库
}catch(SQLExceptione){
e.printStackTrace();
}
}catch(InstantiationExceptione){
e.printStackTrace();
}catch(IllegalAccessExceptione){
e.printStackTrace();
}catch(ClassNotFoundExceptione){
intStackTrace();
}
}
publicConnectiongetConnection(){
returncon;
}
}
4.2系统功能实现
4.2.1系统登录界面:
4.2.1.1登录功能:
privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){
inti=0;
flag0=1;
UserDaouser=newUserDao();
if(user.queryUser(jTextField1.getText().trim(),jPasswordField1
getText().trim())){
MainFromfr=newMainFrom();
fr.setVisible(true);
this.dispose();
}else{
i++;
if(i<=3){
JOptionPane.showMessageDialog(this,"用户名或密码请重新登录!
");
jTextField1.setText("");
jPasswordField1.setText("");
}
else
this.dispose();
}
}
4.2.1.2重置功能(代码):
privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){
jTextField1.setText("");
jPasswordField1.setText("");
}
4.2.2系统主界面:
4..2.2.1浏览联系人信息:
privatevoidjButton6ActionPerformed(java.awt.event.ActionEventevt){
Viewft=newView();
ft.setVisible(true);
}
4..2.2.2查询联系人信息:
privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){
Searchfr=newSearch();
fr.setVisible(true);
}
4..2.2.3添加联系人信息:
privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){
Addft=newAdd();
ft.setVisible(true);
}
4..2.2.4删除联系人信息:
privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt){
Deleteft=newDelete();
ft.setVisible(true);
}
4..2.2.5排序联系人信息:
privatevoidjButton4ActionPerformed(java.awt.event.ActionEventevt){
Sortft=newSort();
ft.setVisible(tr