Java课程设计个人通讯录管理系统方案.docx
《Java课程设计个人通讯录管理系统方案.docx》由会员分享,可在线阅读,更多相关《Java课程设计个人通讯录管理系统方案.docx(20页珍藏版)》请在冰豆网上搜索。
![Java课程设计个人通讯录管理系统方案.docx](https://file1.bdocx.com/fileroot1/2022-10/10/e5beee18-c451-4af0-9528-dd889a60583f/e5beee18-c451-4af0-9528-dd889a60583f1.gif)
Java课程设计个人通讯录管理系统方案
《JAVA程序设计》
课程设计说明书
班级:
学号:
:
设计题目:
个人通讯录管理系统
设计时间:
至
指导教师:
评语:
评阅成绩:
评阅教师:
目 录
1引言1
1.1课程设计选题1
1.2课程设计的目的1
1.3本选题的设计背景1
2需求分析1
2.1功能需求1
2.2系统的开发运行环境2
3总体设计2
3.1系统体系结构设计2
3.2系统功能模块及主要类设计3
3.3数据库设计5
4详细设计与实现7
4.1登录模块7
4.2注册新用户模块8
4.3查询模块9
4.4添加模块11
4.5修改模块13
4.6删除模块16
4.7备份模块18
4.8退出模块20
5小结和展望21
参考文献22
附录22
使用说明书22
1引言
1.1课程设计选题
《个人通讯录管理系统》
1.2课程设计的目的
通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。
使学生巩固和加深以Java语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。
1.3本选题的设计背景
一直以来就想做一个比较实用的通讯录管理系统,这样可以方便我对于身边联系人信息的管理,防止遗忘和丢失。
在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。
需求分析
2.1功能需求
2.1.1个人通讯录功能需求
(1)登陆功能。
用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。
(2)注册功能。
其他用户可以输入自己的用户名和密码及确认密码,来实现注册成为该通讯录的使用者。
(3)查询功能。
在该功能里,用户可以采用模糊查询和精确查询两种查询方式来对自己存储的联系人信息进行查询。
(4)添加功能。
在该功能里,用户可以添加自己的常用联系人和分组信息。
(5)修改功能。
此功能里,用户可以修改数据库中已存的联系人信息和分组信息,以及个人的登陆密码。
(6)删除功能。
在该功能里,用户可以输入自己想要删除的分组名和联系人。
(7)备份功能。
用户可以通过保存对话框,选择自己想要保存的联系人信息的路径,然后将其保存为txt文件。
(8)退出功能。
用户可以选择退出程序,也可以选择重新登录。
2.1.2个人通讯录的非功能需求
(1)系统的容错能力。
在做该系统时,一定要考虑全面可能出现错误信息的地方,然后加上trycatch语句进行捕捉,防止造成系统故障。
(2)系统的对话框提示。
当注册用户时,用户名有重复时,提示不可注册;注册密码与确认密码不同时,也要弹出提示,不允许注册等等一系列对话框弹出提示。
(3)在使用数据的查询语句时,尽量使用存储过程提交,方便了对数据库的查询,同时也提高了查询速度。
(4)便捷性。
尽量用户界面做的简洁大方美观,有很好的用户界面交互能力,也使用户使用起来更加方便。
2.2系统的开发运行环境
本系统开发平台:
Java+sqlserver2008
本系统集成开发环境:
Eclipse
本系统运行环境:
windows7家庭普通版
总体设计
3.1系统体系结构设计
在登陆界面,如果不是该系统的用户的可以点击注册用户名和密码。
如果已经是该系统的用户的,可以输入用户名和密码后,登陆进入主功能界面,在主功能界面里,用户可以对通讯录实现以下功能:
查询、添加、修改、删除、备份,退出等功能。
具体功能结构图如下:
3.2系统功能模块及主要类设计
3.2.1功能描述
本通讯录系统主要包括三大模块:
用户登录模块、用户注册模块、主功能模块。
(1)用户登录模块。
在该模块里,用户可以输入用户名和密码,如果用户名或密码为空,则会提示“用户名不能为空”或“密码不能为空”;如果数据库里没有匹配的,则提示“用户名或密码错误!
”然后将光标返回到用户名文本框中;如果和数据库里的匹配,则提示“成功登陆!
”,进入主功能界面。
(2)主功能界面。
在该模块里,用户可以实现对联系人信息、分组名称的查询、添加、修改、删除,可以对联系人信息进行备份,可以退出程序或重新登陆进入程序。
(3)用户注册模块。
在该模块里,非系统用户可以进行注册,成为该系统的使用者。
在注册的过程中,如果系统中存在用户名,则提示“用户名已存在!
”;如果密码和确认密码不同,则提示“两次密码输入不一致!
”,否则提示“恭喜您注册成功!
”。
3.2.2主要类设计
(1)BookManage.java。
该类主要用于实现用户登录界面,包括如何使用正确的用户名、密码进行登录,如何对面板进行布局,如何实现用户登陆界面与主界面的连接等。
(2)Add_user.java。
该类主要用于实现新用户注册界面,包括新用户如何注册成为该通讯录系统的使用者,以及一些注册界面的设计和布局。
(3)BookWindow.java。
该类为用户主功能界面,在该类里,包括菜单、菜单项的设计,以及实现查询、添加、修改、删除、备份和退出功能的界面布局设计和它们的功能的实现。
并且这些功能基本上都在一个窗体下的面板里显示的。
(4)ModifyContactuser。
该类主要用于实现联系人信息的修改功能。
包括窗体组件的布局和设计,以及要修改的联系人的默认信息的显示在文本框里等。
(5)Search.java。
该类中定义了一系列的公有的、静态的变量。
目的是为了获取要修改的联系人的所有信息,以便当要修改联系人时弹出的窗口里面有联系人信息的默认值。
(6)User.java。
该类主要是为了当用户修改密码时,原用户的用户名和密码默认都已在文本框里显示了,用户不必再手动输入自己的用户名和密码,只需输入自己要修改后的密码就行,方便了用户的使用。
3.3数据库设计
(1)数据表的设计
根据系统的需求,在该数据库中主要建立了3个表,分别为:
联系人表(contactUser125)、分组表(contactGroup125)、用户表(systemUser125)。
①联系人表(联系人编号(intidentity(100000,1))、联系人(varchar(10))、性别(char
(2)check(sex='男'orsex='女'))、出生日期(date)、家庭住址(varchar(50))、邮编(char(6))、(varchar(12))、手机(char(11))、Email(varchar(20))、QQ(varchar(12))、MSN(varchar(20))、公司地址(varchar(50))、公司(varchar(12))、分组编号(smallint)、备注(varchar(100)))。
②分组表(分组编号(smallintidentity(1000,1))、分组名(varchar(20))、用户编号(tinyint))。
③用户表(用户编号(tinyintidentity(100,1))、用户名(varchar(10))、用户密码(char(16)))。
(2)数据完整性设计
实体完整性:
在创建表的过程中已经为表contactUser125的主键设为contactid列,contactGroup125的主键设为groupid列,systemUser125的主键设为userid。
域完整性:
在创建contactUser125表的的过程中,就已经对sex列做了check约束,即只能是‘男’和‘女’;然后,对于contactUser25表里的Email列创建了名为email_constraint的check约束,规定每个Email的格式必须包含.。
参照完整性:
在创建表的过程中,已经把contactGroup125的外键列userid参照了systemUser125表里的userid,把contactUser125表里的外键列groupid参照了contactGroup125表里的groupid列。
(3)存储过程设计
在本通讯录系统中,我一共做了十个存储过程。
①创建查询用户个人创建的所有联系人信息的存储过程search_all_info1,这是一个无参的存储过程,通过该存储过程,用户可以快速的获取contactUser125表里的联系人信息。
②创建一存储过程insert_systemUser,形参为username,userpassword,该存储过程可以向形参传递增加的用户名和密码,然后向systemUser125表里增加一条记录。
③创建一存储过程insert_contactUser,形参为contactName,sex,birthday,homeAddress,postcode,telephone,handset,Email,QQ,MSN,companyAddress,companyPhone,remark。
该存储过程可以向形参传递要增加的联系人信息,然后向contactUser125表里增加一条记录。
详细设计与实现
4.1登录模块
1功能设计
用户输入正确的用户名和密码后点击“登录”按钮则可以进入到该通讯录管理系统,如果输入错误,则提示“用户名或密码错误!
”,如果用户名为空,则提示“用户名不能为空!
”,如果密码为空,则提示“密码不能为空!
”
2.界面设计
3模块算法(或重要代码段)
①当用户点击“登录”按钮时,由于登录按钮添加了监听器,所以会产生一个监听动作,即系统会主动获取文本框中输入的用户名和密码,连接数据库,然后和数据库中systemUser125表中的username和userpassword列的数据相比对,如果完全匹配,则进入主功能界面,否则失败。
②当用户点击“取消”按钮时,使用System.exit(0)自动退出系统。
③当用户点击“注册”按钮时,则弹出注册窗口。
4调试与测试
当用户名为空时,会弹出提示信息“用户名不能为空!
”;当密码为空时,会弹出信息“密码不能为空!
”当用户名或密码和数据库中的不匹配时,则会弹出提示信息“用户名或密码错误!
”。
4.2注册新用户模块
1功能设计
用户在登录界面点击“注册”时,会弹出一个注册新用户的窗口,在这个窗口里,想要使用该系统的人需填写用户名、密码、确认密码来注册成为该系统的用户。
2界面设计
3模块算法
①当用户点击“注册新用户”按钮时,由于该按钮添加了监听器,所以系统会发现用户点击了它,并且会产生一个监听动作,即获取用户名、密码和确认密码文本框中的字符串,然后通过连接数据库和使用数据库的SQL语句,将从文本框中读取到的字符串插入到数据库中的systemUser125表中,实现注册功能。
②当用户点击“退出”按钮时,由于按钮添加了监视器,系统会产生一个监听动作,即退出该界面。
4调试与测试
如果用户名为空时,会弹出提示信息“用户名不能为空!
”;如果用户名框中输入的字符在数据库中已经存在,则会弹出提示信息“该用户名已存在!
”;如果密码框为空时,系统会弹出提示信息“密码不能为空!
”;如果确认密码框为空时,会弹出提示信息“请输入确认密码!
”;如果密码框和确认密码框中输入的字符串不同的话,则会弹出提示信息“两次密码输入不一致!
”
4.3查询模块
1功能设计
在该功能里,用户可以选择“模糊查询”和“精确查询”两种操作,如果用户选择“模糊查询”的话,则又可以选择“按查询”、“按分组查询”、“按手机查询”三种方式,这三种方式属于复选框类型的,用户可以