通讯录管理系统说明书.docx
《通讯录管理系统说明书.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统说明书.docx(15页珍藏版)》请在冰点文库上搜索。
通讯录管理系统说明书
目录
一、设计题目1
二、设计目的1
三、需求分析1
四、总体设计1
1.程序总体设计思想1
2.程序设计总体框图2
五、详细设计3
1.功能模块图3
2.数据库概念模型3
3.数据库逻辑结构设计4
4.数据库表的建立4
5.数据库的连接5
六、算法描述与实现5
1.登录界面5
2.通讯记录界面7
3.修改联系人界面8
4.删除联系人界面10
5.添加联系人记录界面11
七、结论12
八、参考文献12
一、设计题目
通讯录管理系统
二、设计目的
本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。
三、需求分析
通讯录要求实现最基本的功能,包括新建联系人,查找信息,删除信息,修改信息,退出系统,为此需要首先定义记录项的格式,其基本属性包括姓名、电话、地址、邮箱。
通讯录管理系统的主要包括以下功能:
(1).新建联系人:
操作添加一条新的联系人。
(2).查找信息:
查出一条已经存在的联系人。
(3).删除信息:
删除一个联系人的信息。
(4).修改信息:
修改联系人的基本信息。
四、总体设计
1.程序总体设计思想
个人通讯录件的功能模块有:
(1)提供登陆界面,方便用户进入,满足需求;
(2)添加:
可以添加通讯录记录,依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司、E-Mail地址、家庭住址、组别、备注后,会提示是否继续添加;
(3)显示:
可以以表格形式输出所有通讯录里的记录;
(4)查询:
可以用姓名查询;
(5)修改:
输入欲修改的那个人的名字后,再依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司、E-Mail地址、家庭住址、组别、备注即可完成修改;
(6)删除:
可以直接删除多余的通讯录记录;
(7)帮助:
可以在帮助里面修改用户密码;
(8)导出数据库:
可以将数据库以文本txt格式导出。
程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
2.程序设计总体框图
个人通讯录管理系统设计的总体框图如图1所示。
图1个人通讯录管理系统设计的总体框图
五、详细设计
1.功能模块图
1.根据上述的功能,可以设计出系统的总体功能模块,如图2所示。
图2通讯录管理系统功能模块示意图
2.“新建联系人”功能模块包括姓名、电话、QQ、邮箱四个属性,其如图3所示。
图3新建联系人
2.数据库概念模型
根据需求分析抽象出信息结构,可得该系统的E-R图。
用户E-R图,如图4所示。
图4用户E-R图
根据分E-R图和需求分析,可得到总E-R图,如图5所示。
图5总体E-R图
3.数据库逻辑结构设计
基本信息表Friend用来保存姓名、电话、地址、邮箱信息。
表Friend的结构如表1所示。
表1表Friend的结构
编号
字段名称
数据结构
说明
1
Name
Char
联系人姓名
2
Tele
Char
联系人电话
3
Qq
Char
联系人QQ
4
Mail
Char
联系人邮箱
4.数据库表的建立
在设计数据库表结构之前,首先要创建一个数据库。
本系统使用的数据库为Friend。
创建表Friend(基本信息表),它的代码如下:
CREATETABLEFriend
(Namechar(20)PRIMARYKEY,
Telechar(20),
Addrchar(30),
Mailchar(20)
)
GO
5.数据库的连接
在该系统中数据库的连接使用mysql-connector-java-5.1.6-bin驱动。
将该驱动通过eclipse添加到工程“通讯录管理系统”中,如图6。
然后通过控制语句实现与数据库的连通。
图6找到的数据库连接驱动mysql-connector-java-5.1.6-bin
六、算法描述与实现
1.登录界面
登录界面,如图7所示。
图7登录界面
在登录界面中,用户可以输入正确的用户名,密码,从而进入通讯录。
只有登录成功才可以浏览通讯录的信息,以及添加新的联系人,修改联系人等操作。
主要代码如下:
privatevoidokButtonActionPerformed(java.awt.event.ActionEventevt){
//TODOaddyourhandlingcodehere:
IStudentDaodao=newStudentDao();
IUserDaouserDao=newUserDao();
Stringname=nameField.getText().trim();
Stringpassword=String.valueOf(passwordField.getPassword());
IUseruser=newUser(name,password);
booleanresult=false;
try{
result=userDao.isContain(user);
if(result==false)
{
JOptionPane.showConfirmDialog(null,"账号或密码错误!
","登录提示",
JOptionPane.CLOSED_OPTION);
passwordField.setText(null);
}else{
MainWindowmainWindow=newMainWindow(dao);
mainWindow.setVisible(true);
this.setVisible(false);
}
}catch(Exceptione){
JOptionPane.showMessageDialog(this,e.getMessage(),"登录失败!
",JOptionPane.ERROR_MESSAGE);
}
}
2.通讯记录界面
通讯录界面,如图8所示。
图8通讯记录界面
在通讯录界面,用户可以浏览所有的联系记录。
主要代码如下:
publicMainWindow(IStudentDaodao){
initComponents();
setResizable(false);
setLocationRelativeTo(this);
this.dao=dao;
updateView();
}
//更新视图
privatevoidupdateView(){
Liststudents=dao.getAllStudent();
model=newDefaultTableModel();
model.addColumn("姓名");
model.addColumn("电话号码");
model.addColumn("QQ号吗");
model.addColumn("邮箱号码");
for(IStudenteach:
students)
model.addRow(newObject[]{each.getName(),each.getTellNumber(),
each.getQqNumber(),each.getMail()});
table.setModel(model);
setButtonEnabled(false);
}
3.修改联系人界面
修改界面,如图9所示。
图9修改联系人界面
用户可以根据需要修改信息,修改完毕后,点击确定按钮,修改后的信息将存入数据库。
主要代码如下:
publicModifyStudent(java.awt.Frameparent,booleanmodal,
IStudentDaodao,IStudentoldStuedent){
super(parent,modal);
initComponents();
setLocationRelativeTo(parent);
setResizable(false);
this.dao=dao;
this.oldStudent=oldStuedent;
nameTextField.setText(oldStudent.getName());
tellNumber.setText(String.valueOf(oldStudent.getTellNumber()));
qqNumber.setText(String.valueOf(oldStuedent.getQqNumber()));
mail.setText(String.valueOf(oldStuedent.getMail()));
setVisible(true);
}
privatevoidokButtonActionPerformed(java.awt.event.ActionEventevt){
Stringname=nameTextField.getText().trim();
Stringtell=tellNumber.getText().trim();
Stringqq=qqNumber.getText().trim();
StringmailString=mail.getText().trim();
IStudentoldStudent=newStudent(name,tell,qq,mailString);
dao.update(oldStudent);
setVisible(false);
}
4.删除联系人界面
删除界面,如图10所示。
图10删除联系人界面
用户可以根据自己的需求删除通讯录中无用的信息。
选中要删除的行,点击删除按钮,单击确定,根据提示确定删除,即可删除信息。
主要代码如下:
@SuppressWarnings("static-access")
privatevoiddeleteButtonActionPerformed(java.awt.event.ActionEventevt){
//收集选中的对象信息
intindex=table.getSelectedRow();
Stringname=(String)model.getValueAt(index,0);
StringtellNumber=(String)model.getValueAt(index,1);
StringqqNumber=(String)model.getValueAt(index,2);
Stringmail=(String)model.getValueAt(index,3);
IStudentoldStudent=newStudent(name,tellNumber,qqNumber,mail);
JOptionPanepanel=newJOptionPane();
intresult=panel.showConfirmDialog(null,"确定要删除"+"【"+name+"】"
+"的全部信息吗?
","删除记录",JOptionPane.YES_NO_OPTION);
if(result==JOptionPane.YES_OPTION){
dao.delete(oldStudent);
updateView();
}
}
5.添加联系人记录界面
添加界面,如图11所示。
图11添加联系人记录界面
单击添加按钮,在弹出的添加对话框中输入对应得信息。
姓名后输入联系人姓名,联系方式可根据需要填写,如:
电话号码、邮箱、QQ号码等。
主要代码如下:
privatevoidokButtonActionPerformed(java.awt.event.ActionEventevt){
try{
//获取用信息
Stringname=nameTextField.getText().trim();
Stringtell=tellNumber.getText().trim();
Stringqq=qqNumber.getText().trim();
StringmailString=mail.getText().trim();
IStudentstudent=newStudent(name,tell,qq,mailString);
dao.insert(student);
setVisible(false);
}catch(Exceptione){
JOptionPane.showMessageDialog(this,e.getMessage());
}
}
七、结论
由于课程设计时间较短,所以该系统还有许多不尽人意的地方,例如界面设计不够美观,统计功能不够完善等等,这些都有待进一步改善。
经过这周的课程设计,大大提高了我的实际操作能力和思想的远见能力,做到真正的从感性认识上升到理性认识再到实际的操作中,真正做到学以致用。
八、参考文献
[1].张振领《Java语言程序设计》中国电力出版社
[2].耿详义《Java程序设计教程》清华大学出版社
[3].耿详义《Java课程设计》清华大学出版社
[4].孙鑫Java视频教程