通讯录Java数据库课程设计文档格式.docx
《通讯录Java数据库课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《通讯录Java数据库课程设计文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
1引言
1.1课题背景
通讯录是人们日常生活中常用到的工具,它以文件方式保存用户录入的数据,并提供查询的功能供用户查询和使用通讯录信息。
随着人类信息技术迅速发展,通讯录经过了传统通讯录,网络通讯录,移动通讯录,内部通讯录,每种通讯录都需要一种通讯录管理系统来管理。
计算机信息管理技术的应用,个人电脑、掌上电脑、移动电话等任何联网设备上录入你的联系人的手机\电话号码、Email、QQ、MSN、通信地址等通讯录信息,更重要的是能建立准确畅通、简便的信息流通渠道,从而方便人们查找联系人和联系人的基本信息。
1.2课程设计目的
通讯录是人们日常生活中经常要用到的通讯管理工具,在现实生活中应用非常广泛,从个人到企业,而尤其是在移动通讯领域通讯录的使用使我们感觉是最大受益者。
通讯录给人们带来很大的方便,通讯录以文件方式保存用户录入的数据,它可以高效的管理用户数据信息并提供用户一些功能,包括数据的录入、修改、删除、查找以及文件的读写等、
通过通讯录数据库系统的设计,熟练掌握VisualC++、SQLServer2000等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。
1.3课程设计任务
本课程设计任务是通过开发一个数据库通讯录管理系统,学习数据库系统的设计与开发,采用Java和SQLServer2000等软件为开发工具。
通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。
在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。
2系统结构分析
2.1需求分析
通讯录要求实现最基本的功能,包括新建联系人,查找信息,删除信息,修改信息,退出系统,为此需要首先定义记录项的格式,其基本属性包括姓名、电话、地址、邮箱。
通讯录管理系统的主要包括以下功能:
(1).新建联系人:
操作添加一条新的联系人。
(2).查找信息:
查出一条已经存在的联系人。
(3).删除信息:
删除一个联系人的信息。
(4).修改信息:
修改联系人的基本信息。
2.2功能模块图
1.根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示。
图2.1通讯录管理系统功能模块示意图
2.“新建联系人”功能模块包括姓名、电话、地址、邮箱四个属性,其如图2.2所示。
图2.2新建联系人
3数据库设计
3.1概念结构设计
根据需求分析抽象出信息结构,可得该系统的E-R图。
(1).用户E-R图,如图3.1所示。
图3.1用户E-R图
根据分E-R图和需求分析,可得到总E-R图,如图3.2所示。
3.2总体E-R图
3.2逻辑结构设计
基本信息表Friend用来保存姓名、电话、地址、邮箱信息。
表Friend的结构如表3-1所示。
表3-1表Friend的结构
编号
字段名称
数据结构
说明
1
Name
Char
联系人姓名
2
Tele
联系人电话
3
Adder
联系人地址
4
Mail
联系人邮箱
3.3数据库表的建立
在设计数据库表结构之前,首先要创建一个数据库。
本系统使用的数据库为Friend。
创建表Friend(基本信息表),它的代码如下:
CREATETABLEFriend
(Namechar(20)PRIMARYKEY,
Telechar(20),
Addrchar(30),
Mailchar(20)
)
GO
4系统实现
4.1数据库的连接
在该系统中数据库的连接使用mysql-connector-java-5.1.6-bin驱动。
将该驱动通过eclipse添加到工程“通讯录管理系统”中,如图4.1。
然后通过控制语句实现与数据库的连通。
图4.1找到的数据库连接驱动mysql-connector-java-5.1.6-bin
5功能测试
该程序实现了通讯录管理系统应有的功能,即新建联系人、快速查找、删除信息、修改信息、退出系统管理。
5.1登陆界面
程序运行出现登陆界面,要求用户输入用户名和密码,当用户名和密码均正确时才能进入系统,如图5.1所示。
图5.1登陆界面
5.2主界面
用户登陆系统以后,将出现主界面,用户可以选择要执行的操作,如图5.2所示。
图5.2主界面
5.3各功能模块的实现
新建联系人功能的实现操作,界面如图5.3所示。
图5.3新建联系人界面
快速查找功能实现操作,界面如图所示。
图5.4查找信息功能界面
图5.5查找显示界面
删除信息功能实现操作,界面如图所示。
图5.6删除信息功能界面
修改信息功能实现操作,界面如图所示。
图5.7修改信息功能界面
6系统技术实现
6.1SQLServer2000
运用SQLServer2000建立一个数据库,以Windows身份验证模式要求SQLServer2000的连接,实现用户登陆需要输入密码才能进入本通讯管理系统,保护用户信息安全。
作为它的数据库查询和编程语言。
T-SQL是结构化查询语言SQL的一种,支持标准SQLServer为公共的管理功能提供了预定义的服务器和数据库角色,可以很容易为某一特定用户授予一组选择好的许可权限。
SQLServer可以在不同的操作平台上运行,支持多种不同的网络协议。
7结束语
经过这些天的努力,本次课程设计终于完成了。
通过这次课程设计,使我对数据库这门课程有了更深入的理解,数据库是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
在本次课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写程序的能力,培养了基本的、良好的程序设计技能。
这次课程设计同样提高了我的综合运用所学知识的能力。
并对SQLSERVER2000有了更深入的了解。
由于我的经验和知识的不足,在程序中还存在很多缺陷。
经过这次课程设计,我的知识得到了很大提高,经验也更加丰富。
今后我会更多的学习编程技巧,不断的提高
编程能力。
致谢
在这次数据库的课程设计中,曾遇到过不少问题,单靠我个人的努力,很难按时完成该课程设计。
在此,我衷心感谢我的指导老师——颜宏文。
颜宏文老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我获益非浅。
另外,还要感谢学校领导、辅导员、各位同学对我们的关怀、帮助,为我们提供了良好的设计环境以及各方面的支持。
参考文献
[1]杨磊,陈凌云.EclipseWeb开发.北京:
人民邮电出版社,2006
[2]王珊,萨师煊.数据库系统概论(第四版).北京:
高等教育出版社.2006
[3]Y.DanielLiang,万波,郑海红,潘蓉,李娜.Java语言程序设计基础篇.北京:
机械工业出版社,2008
附录部分程序代码
packagedf;
importjavax.swing.JFrame;
importjava.awt.GridLayout;
publicclassShowGridLayoutextendsJFrame{
publicShowGridLayout(){
setLayout(newGridLayout(5,1,20,20));
//add(newJLabel("
姓名"
));
//add(newJTextField(5));
电话"
//add(newJTextField(5));
//add(newJLabel("
地址"
邮箱"
}
publicstaticvoidmain(String[]args){
ShowGridLayoutframe=newShowGridLayout();
frame.setTitle("
通讯录数据库系统"
);
frame.setLocation(500,200);
frame.setSize(320,270);
frame.setVisible(true);
}
}
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JTextField;
importjava.awt.FlowLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjavax.swing.*;
publicclassShowFlowLayoutextendsJFrame{
staticConnectioncon=null;
publicShowFlowLayout(){
setLayout(newFlowLayout(FlowLayout.LEFT,15,25));
finalShowFlowLayoutframe=newShowFlowLayout();
JLabeljlbl欢迎使用通讯录数据库系统=newJLabel("
欢迎使用通讯录数据库系统"
frame.add(jlbl欢迎使用通讯录数据库系统);
JLabeljlbl用户名=newJLabel("
用户名"
frame.add(jlbl用户名);
finalJTextFieldjtf用户名=newJTextField(16);
frame.add(jtf用户名);
JLabeljlbl密码=newJLabel("
密码"
frame.add(jlbl密码);
finalJTextFieldjtf密码=newJTextField(16);
frame.add(jtf密码);
JButtonjbt登录=newJButton("
登录"
frame.add(jbt登录);
JButtonjbt退出=newJButton("
退出"
frame.add(jbt退出);
frame.setSize(270,250);
jbt登录.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(jtf用户名.getText().equals("
***"
)&
&
jtf密码.getText().equals("
123456"
))
{
frame.dispose();
newThreeButtons();
}
elseJOptionPane.showMessageDialog(null,"
用户名或密码错!
"
});
jbt退出.addActionListener(newActionListener(){
System.exit(0);
}});
try{
Class.forName("
com.mysql.jdbc.Driver"
System.out.println("
驱动加载成功"
Stringurl="
jdbc:
mysql:
//localhost:
3306/通讯录"
;
StringuserName="
root"
StringpassWord="
131495"
con=DriverManager.getConnection(url,userName,passWord);
连接数据库成功"
}catch(Exceptione){
e.printStackTrace();
}
importjava.awt.*;
importjava.sql.SQLException;
publicclasschaxunextendsJFrameimplementsActionListener{
JTextFieldjtf请输入你要查找人的姓名=newJTextField(20);
publicchaxun(){
setTitle("
setLocation(500,200);
setSize(270,250);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(newGridLayout(3,1));
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
JLabeljlbl请输入你要查找人的姓名=newJLabel("
请输入你要查找人的姓名"
p1.add(jlbl请输入你要查找人的姓名);
p2.add(jtf请输入你要查找人的姓名);
JButtonjbt确定=newJButton("
确定"
p3.add(jbt确定);
add(p1);
add(p2);
add(p3);
jbt确定.addActionListener(this);
publicvoidactionPerformed(ActionEvente){
PreparedStatementpstmt;
ResultSetrs;
try{
pstmt=ShowFlowLayout.con
.prepareStatement("
select*fromfriendwherename=?
pstmt.setString(1,jtf请输入你要查找人的姓名.getText());
rs=pstmt.executeQuery();
if(rs.next())
JOptionPane.showMessageDialog(null,"
姓名"
+rs.getString
(1)+"
\n电话"
+rs.getString
(2)+"
\n地址"
+rs.getString(3)+"
\n邮箱"
+rs.getString(4));
elseJOptionPane.showMessageDialog(null,"
无此联系人!
}catch(SQLExceptione1){
e1.printStackTrace();
}
publicclassThreeButtonsextendsJFrame{
JButtonjbt快速查找=newJButton("
快速查找"
JButtonjbt新建联系人=newJButton("
新建联系人"
JButtonjbt删除信息=newJButton("
删除信息"
JButtonjbt修改信息=newJButton("
修改信息"
JButtonjbt退出系统=newJButton("
退出系统"
ThreeButtons(){
setSize(300,370);
setLayout(newGridLayout(5,1));
add(jbt快速查找);
add(jbt新建联系人);
add(jbt删除信息);
add(jbt修改信息);
add(jbt退出系统);
jbt快速查找.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
newchaxun();
jbt新建联系人.addActionListener(newActionListener(){
newTestSwingCommonFeatures();
jbt删除信息.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente)
newshanchu();
jbt修改信息.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente)(
newxiugai();
jbt退出系统.addActionListener(newActionListener(){
System.exit(0);
importjavax.swing.JButton;
impor