java通讯录课程设计.docx
《java通讯录课程设计.docx》由会员分享,可在线阅读,更多相关《java通讯录课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
![java通讯录课程设计.docx](https://file1.bdocx.com/fileroot1/2023-2/4/4ffd1f56-5766-4dbb-9528-58ac7ecee00b/4ffd1f56-5766-4dbb-9528-58ac7ecee00b1.gif)
java通讯录课程设计
课程设计Ⅳ
课程设计说明书
在线通讯录的开发
学生姓名
贾长辉
学号
1118042025
班级
计算机专升本1101班
成绩
指导教师
任民宏
数学与计算机科学学院
2012年3月2日
课程设计Ⅳ课程设计评阅书
题目
在线通讯录的开发
学生姓名
贾长辉
学号
1118042025
指导教师评语及成绩
指导教师签名:
年月日
答辩评语及成绩
答辩教师签名:
年月日
教研室意见
总成绩:
室主任签名:
年月日
课程设计任务书
2011—2012学年第2学期
专业:
计算机科学与技术学号:
1118042025姓名:
贾长辉
课程设计名称:
课程设计Ⅳ
设计题目:
在线通讯录的开发
完成期限:
自2012年2月20日至2012年3月2日共2周
设计依据、要求及主要内容(可另加附页):
系统采用C/S结构,用JAVA语言开发,后台数据库采用SQLServer2000。
系统具有注册、登记、登录、浏览和后台管理功能。
用户登录后,可通过登记功能将自己的通信信息加入到系统,浏览系统中的通信录信息。
后台管理功能包括删除用户和删除通信录中的记录功能。
贾长辉在本次课程设计中完成需求分析、系统设计、系统实现和测试。
在课程设计过程中可参考以下文献:
[1]齐治昌,谭庆平,宁洪.软件工程[M].北京:
高等教育出版社,2004.
[2]陈强.会当凌绝顶:
java开发修行实录[M].北京:
电子工业出版社,2011
[3]黄明,梁旭,曹利超.Java信息系统设计与开发实例[M].北京:
机械工业出版社,2005
指导教师(签字):
教研室主任(签字):
批准日期:
年月日
摘要
通讯工具在平常百姓家中已经是非常常见。
于是,用Java语言开发这个后台带SQL2000数据库的强大通讯录。
以实现我们对大量的人员的通信信息予以记录。
以便我们使用方便。
我们可以往这个通信录系统中添加数据,也可以对记录进行修改,删除。
这样大大提高了我们的通信管理效率。
关键词:
通讯录;Java;SQL2000
目录
1课题描述1
2设计过程2
2.1软件结构2
2.2数据库设计2
2.2.1数据库概念结构设计2
2.2.2数据库逻辑结构设计3
2.2.3数据库物理结构设计3
2.3系统实现3
2.3.1建立数据库3
2.3.2登录界面4
2.3.3通讯记录界面5
2.3.4修改联系人界面6
2.3.5删除联系人界面7
2.3.6添加联系人记录界面8
3系统测试10
总结13
参考文献14
1、课题描述
随着人们生活水平的提高,通讯工具在平常百姓家中已经是非常常见。
有些家庭人员众多,有的家庭成员甚至有好几个联系方式,在这种情况下,要记住所有的联系方式似乎有些困难,所以我们希望设计一个家庭通讯录,记录所有家庭成员的联系方式,并且能方便的查找,增加和删除。
本课题利用Java语言开发这个后台带SQL2000数据库的强大通讯录。
开发工具:
MyEclipse8.5;SQL2000
2.设计过程
2.1软件结构
图2.1程序流图
2.2数据库设计
2.2.1数据库概念结构设计
采用自底而上的设计方法。
先自顶向下地进行需求分析,对在线通讯录的需求进行逐步细化;然后再自底而上地设计概念结构,最终将各个局部应用的概念结构集合成为全局概念结构。
通过对局部应用的选择,逐一设计出分E-R图,并对各个分E-R图进行合并,生成初步E-R图,消除不必要的系统冗余,可以得出以下在线通讯录系统E-R图。
如图2.2所示。
图2.2系统E-R图
2.2.2数据库逻辑结构设计
将上E-R图转化为如下的关系模型,其中下划线为主码:
联系人(姓名,电话号码,QQ号码,邮箱号码)
用户(用户名,密码)
对上面的关系模型进行优化设计,该系统模型属于3NF。
2.2.3数据库物理结构设计
(1)用户数据表的设计,如表2.1。
表2.1用户数据表
列名
数据类型
长度
是否为空
name
nvarchar
50
否
passWord
nvarchar
50
否
(2)记录信息数据表,如表2.2。
表2.2记录信息数据表
列名
数据类型
长度
是否为空
name(key)
nvarchar
50
否
tellNumber
nvarchar
50
否
qqNumber
nvarchar
50
是
mail
nvarchar
50
是
2.3系统实现
2.3.1建立数据库
在SQL2000中,创建数据库,如图2.3所示。
图2.3线通讯录数据库
2.3.2登录界面
登录界面,如图2.4所示。
图2.4登录界面
在登录界面中,用户可以输入正确的用户名,密码,从而进入通讯录。
只有登录成功才可以浏览通讯录的信息,以及添加新的联系人,修改联系人等操作。
主要代码如下:
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.3.3通讯记录界面
通讯录界面,如图2.5所示。
图2.5通讯记录界面
在通讯录界面,用户可以浏览所有的联系记录。
主要代码如下:
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);
}
2.3.4修改联系人界面
修改界面,如图2.6所示。
图2.6修改联系人界面
用户可以根据需要修改信息,修改完毕后,点击确定按钮,修改后的信息将存入数据库。
主要代码如下:
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);
}
2.3.5删除联系人界面
删除界面,如图2.7所示。
图2.7删除联系人界面
用户可以根据自己的需求删除通讯录中无用的信息。
选中要删除的行,点击删除按钮,单击确定,根据提示确定删除,即可删除信息。
主要代码如下:
@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();
}
}
2.3.6添加联系人记录界面
添加界面,如图2.8所示。
图2.8添加联系人记录界面
单击添加按钮,在弹出的添加对话框中输入对应得信息。
姓名后输入联系人姓名,联系方式可根据需要填写,如:
电话号码、邮箱、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());
}
}
3系统测试
本实验主要进行了黑盒测试。
首先进行登录测试,若登录成功,则进入通讯录界面;如果输入的用户名密码不正确,则登录失败。
如下图3.1所示。
图3.1登录失败
对添加记录进行测试,可以添加系统没有的记录。
添加过程中必须要添加姓名,如果没有添加姓名,则会失败。
如下图3.2所示。
图3.2添加记录失败
如果要成功添加一个记录,需要输入姓名以及其他的一项或几项。
如图3.3所示。
图3.3添加记录
输入符合要求的新纪录,确定添加,则会看到成功添加的结果。
如图3.4所示。
图3.4添加记录成功
如果有过期的或者不需要的记录,可以对记录进行删除。
先选中要删除的选项,则会弹出,确定删除选项对话框。
以记录“唐僧”为例。
如图3.5所示。
图3.5选中待删记录
若选择“否”,则不删除记录,选择“是”,着删除记录。
确定要删除,如图3.6所示。
图3.6删除成功
如果某条记录需要修改,可以对其进行除姓名以外的一条或几条记录的修改。
下面以“李四”为例。
修改前如图3.7所示。
图3.7修改之前
这里只对“李四”记录的邮箱号码进行修改。
修改之后,如图3.8所示。
图3.8修改之后
通过对系统进行黑盒测试,可以知道系统能够基本完成正常的功能。
总结
通过这次课程设计,我们不仅深入学习了整个课题,并且有很多收获和体会。
这个过程中遇到的最大的困难就是数据库与java的的连接,以前没有学习过,所以要从头开始。
同过课设,让我体会到实践的重要性。
很多东西在理论层面是行的通的,但到实际中就行会引出许多的问题来。
所以要多实践,在不断的修改调试过程中巩固知识。
当然,能够顺利的完成课设不仅有我的努力,还与指导老师任民宏老师的帮助与支持是离不开的。
非常感谢任老师。
参考文献
[1]齐治昌,谭庆平,宁洪.软件工程[M].北京:
高等教育出版社,2004.
[2]陈强.会当凌绝顶:
java开发修行实录[M].北京:
电子工业出版社,2011
[3]黄明,梁旭,曹利超.Java信息系统设计与开发实例[M].北京:
机械工业出版社,2005