基于用户个人电话簿管理系统Word格式.docx
- 文档编号:21154319
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:40
- 大小:819.03KB
基于用户个人电话簿管理系统Word格式.docx
《基于用户个人电话簿管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《基于用户个人电话簿管理系统Word格式.docx(40页珍藏版)》请在冰豆网上搜索。
图4.2登录功能时序图
图4.3登录功能活动图
图4.4注册功能时序图
图4.5注册功能活动图
图4.6显示所有电话簿信息时序图
图4.7显示所有电话簿信息活动图
图4.8电话簿信息添加时序图
图4.9电话簿信息添加活动图
图4.10查询电话簿信息时序图
图4.11查询电话簿信息活动图
5.数据设计
5.1类图设计
根据分析,系统由14个类构成,分别为:
数据库访问层:
DB类
数据封装类:
Login类、User类
业务层:
LoginService类、UserService类
控制层:
Controller类
视图层:
AddView类、DeleteView类、ModifyView类、QueryView类、MainView类、
Operation类
其它:
Test类
系统中各类之间关系如下图所示:
图5.1系统类图
5.1.1.数据库访问层
DB类用于封装JDBC的操作,完成对数据库的直接访问,创建对象,具体内容如下所示:
图5.2数据库访问层类图
5.1.2.数据封装类
Login类和User类分别用于登录、注册操作时的数据封装和电话簿信息管理时的数据封装,具体内容如下图所示:
图5.3数据封装类类图
5.1.3.业务层
LoginService类进行登录、注册等对Login类的访问操作,UserService类进行电话簿信息管理的操作,两者均采用单态模式创建对象,具体内容如下图所示:
图5.4业务层类图
5.1.4.控制层
Controller类用于进行系统的流程控制,具体内容如下所示:
图5.5控制层类图
5.1.5.视图层
MainView类用于完成登录、注册等提示信息的显示和系统主界面的显示,具体内容如下所示:
图5.6MainView类图
Operation接口是增、删、改、查等操作的抽象,AddView类、DeleteView类、ModifyView类、QueryView类均使用Operation接口,分别完成增、删、改、查、导出等操作,利用简单工厂模式与Controller类建立关系,具体内容如下所示:
图5.7视图层类图
5.1.6.其它
Test类是程序的主类,用于启动系统,具体内容如下:
图5.8Test类图
5.2数据表设计
根据概要设计中login类图和User类图可知,系统需要两张表t_login和t_suer,其中,t_login表用于存储登录信息,t_suer表用于存储电话簿基本信息,两张表之间没有关联关系,具体结构如下所示:
表5-2-1t_login表
序号
字段名
类型
长度
备注
1
id
int
11
主键
2
username
varchar
30
唯一性、不为空
3
userpass
不为空
表5-2-2t_user表
name
sex
10
4
tel
可为空
6.运行结果
6.1.登录
用户可在系统首界面直接输入账号和密码进行登录,或在注册成功后再进行登录。
登录成功后显示所有通讯录信息和系统主控制界面。
图6.1登录成功后的显示
6.2.添加
“1,选择添加电话簿信息操作,次输入联系人的姓名、电话和性别,完成添加。
添加成功后,显示成功的提示信息,并显示所有电话簿信息和系统主控制界面。
如果添加失败,则显示失败的提示信息,并提示重新输入。
图6.2添加电话簿信息界面
6.3.删除
输入“2”,选择删除电话簿信息操作。
如果输入“123返回删除菜单。
输入要删除的联系人的id(主键)值,完成删除。
删除成功后,显示成功的提示信息,并显示所有电话簿信息和系统主控制界面。
如果删除失败,则显示删除失败的提示信息,并提示重新输入。
图6.3删除电话簿信息界面
6.4.修改
输入“3”,选择修改电话簿信息操作。
如果输入“123返回修改菜单。
输入要修改的用户的id(主键)值,显示该电话簿的信息。
再依次输入要修改的联系人的姓名、电话、QQ号和性别,执行修改操作。
修改成功后,显示成功的提示信息,并显示所有电话簿信息和系统主控制界面。
如果修改失败,则显示删除失败的提示信息,并提示重新输入。
图6.4改电话簿信息界面
6.5.查询
输入“4”,选择查询电话簿信息操作。
如果输入“0”表示返回查询菜单。
输入要查询的联系人名,显示以改名称作为关键字的所有电话簿的信息,之后显示所有通讯录信息和系统主控制界面。
图6.5查询到电话簿息的界面
6.6.退出
输入“0”,表示退出系统,结束整个程序。
图6.6出系统界面
6.7.导出电话本
图6.7电话薄导出文件界面
图6.8导出账单信息位置的界面
7.关键代码
7.1数据库访问类(DB.java)
packageDB;
//创建连接方法每次直接调用获得连接加载数据库类
//重要的参数ip地址+端口,数据库名,用户名,密码
importjava.sql.*;
publicclassDB{
privatestaticConnectioncon;
privatePreparedStatementpre;
privateResultSetrs;
privatestaticDBdb;
static{
try{
Class.forName("
com.mysql.jdbc.Driver"
);
//加载驱动
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
}
privateDB(){
publicstaticDBgetInstance(){
if(db==null){
db=newDB();
returndb;
}//单态
publicstaticConnectionbuildConnection(){
con=DriverManager.getConnection("
jdbc:
mysql:
//localhost:
3306/demo?
useUnicode=true&
characterEncoding=utf-8"
"
root"
//建立数据库连接
}catch(SQLExceptione){
returncon;
publicResultSetexecuteQueryByParam(Stringsql,Object...o){
this.buildConnection();
pre=con.prepareStatement(sql);
for(inti=0;
i<
o.length;
i++){
pre.setObject(i+1,o[i]);
}
rs=pre.executeQuery();
returnrs;
publicResultSetexecuteQueryNoParam(Stringsql){
publicintexecuteUpdate(Stringsql,Object...o){
intcount=pre.executeUpdate();
returncount;
return0;
publicvoidclose(){
if(rs!
=null){
rs.close();
pre.close();
con.close();
}
2、数据封装类
2.1Login.java
packageperson;
publicclassLogin{
privateStringusername;
privateStringpassword;
publicStringgetUsername(){
returnusername;
publicvoidsetUsername(Stringusername){
this.username=username;
publicStringgetPassword(){
returnpassword;
publicvoidsetPassword(Stringpassword){
this.password=password;
2.2User.java
publicclassUser{
privateintid;
privateStringname;
privateintsex;
privateinttel;
publicintgetId(){
returnid;
publicvoidsetId(intid){
this.id=id;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
this.name=name;
publicintgetSex(){
returnsex;
publicvoidsetSex(intsex){
this.sex=sex;
publicintgetTel(){
returntel;
publicvoidsetTel(inttel){
this.tel=tel;
3、业务层
3.1LoginService.java
packageService;
importjava.util.Scanner;
importperson.Login;
importDB.DB;
publicclassLoginService{
privateDBdb;
privatestaticLoginServiceservice;
privateLoginService(){
db=DB.getInstance();
publicstaticLoginServicegetInstance(){
if(service==null){
service=newLoginService();
returnservice;
publicbooleanlogin(Loginlo){
Stringsql="
select*fromt_loginwhereusername=?
andpassword=?
"
;
ResultSetrs=db.executeQueryByParam(sql,lo.getUsername(),lo.getPassword());
if(rs.next()){
returntrue;
finally{
db.close();
returnfalse;
publicbooleanregister(Loginlo){
insertintot_login(username,password)values(?
?
)"
intcount=db.executeUpdate(sql,lo.getUsername(),lo.getPassword());
db.close();
if(count>
0){
returntrue;
else{
returnfalse;
3.2UserService.java
importjava.util.ArrayList;
importjava.util.List;
importperson.User;
publicclassUserService{
privatestaticUserServiceservice;
privateUserService(){
publicstaticUserServicegetInstance(){
service=newUserService();
publicList<
User>
getAllUsers(){
Stringsql="
select*fromt_suerorderbyname"
ResultSetrs=db.executeQueryNoParam(sql);
List<
users=null;
users=this.getList(rs);
}finally{
db.close();
returnusers;
queryUsersByName(Stringname){
select*fromt_suerwherenamelike?
ResultSetrs=db.executeQueryByParam(sql,"
%"
+name+"
privateList<
getList(ResultSetrs)throwsSQLException{
users=newArrayList<
();
Useruser;
while(rs.next()){
user=newUser();
user.setId(rs.getInt
(1));
user.setName(rs.getString
(2));
user.setSex(rs.getInt(3));
user.setTel(rs.getInt(4));
users.add(user);
publicbooleaninsertOneUser(Stringname,intsex,inttel){
insertintot_suer(name,sex,tel)values(?
intcount=db.executeUpdate(sql,name,sex,tel);
if(count>
0){
}else{
publicbooleandeleteUserById(intid){
deletefromt_suerwhereid=?
intcount=db.executeUpdate(sql,id);
if(count>
}else{
publicbooleanupdateUser(intid,Stringname,intsex,inttel){
updatet_suersetname=?
sex=?
tel=?
whereid=?
intcount=db.executeUpdate(sql,name,sex,tel,id);
0){
publicUsergetUserById(intid){
Stringsql="
select*fromt_suerwhereid=?
ResultSetrs=db.executeQueryByParam(sql,id);
Useruser=newUser();
user.setId(id);
user.setName(rs.getString
(2));
user.setSex(rs.getInt(3));
user.setTel(rs.getInt(4));
returnuser;
}catch(SQLExceptione){
}finally{
returnnull;
4、视图层
4.1operation.java
packageview;
//接口
importjava.util.InputMismatchException;
importService.UserService;
publicinterfaceOperation{
voidoperation(UserServiceservice)throwsInputMismatchException;
4.2AddView.java
ackageview;
importjava.util.Date;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
impo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 用户 个人 电话簿 管理 系统