Java课程设计通讯录管理系统Word格式.docx
- 文档编号:7084796
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:38
- 大小:296.06KB
Java课程设计通讯录管理系统Word格式.docx
《Java课程设计通讯录管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《Java课程设计通讯录管理系统Word格式.docx(38页珍藏版)》请在冰点文库上搜索。
(1)用户的登录,注册,删除功能;
(2)联系人信息的增加,删除,修改,查询的功能;
(3)联系人分组的增加,删除的功能;
三程序流程
a分流程示意图
1系统登录:
姓名设计流程图
2用户界面流程图:
未注册
消息不正确
3用户增加联系人流程:
4用户修改流程图:
输入不合法
输入不合法
信息已存在或不合法
5用户修查询程:
6用户删除流程:
入
查找失败查找失败
信息不存在信息不
存在
四设计步骤
【1】数据库设计
(1)表1普通用户数据表
列名
数据类型
长度
是否为空
username
varchar
50
否
password
(2)记录信息数据表,如表2
表2记录信息数据表
名
类型
是否空
id
int
name
tel
phone
category
work
aaress
【2】详细设计
LoginAction类,封装的信息由密码和账户名,以及登录失败时抛出的异常方法。
Stringexecute()函数继承了Exception类,如果登录密码不匹配,则会抛出异常,提示Error登录失败。
在登录模块中有管理员用户和普通用户,管理员可以对系统中的信息添加,修改,删除等功能,普通用户只进行查找操.
用户添加:
LoginAction类继承ActionSuporrt类,封装有name,sex,birthday,email,tel属性,封装有成员函数set_name(),set_sex(),set_birthday(),set_email(),set_tel()用来添加各个属性值,提示操作失败信息用Stringexecute()函数抛出异常。
用询查询:
FindAction类继承ActionSuporrt类的属性及方法,setInput()方法将输入的信息传递给FindAction类内的相应属性,getInput()方法用于返回输入值,封装的成员函数包括getlist()用于返回查询到的元组列表。
图5显示可以通过姓名,性别,出生日期,email地址对联系人进行查询。
用户修改:
ModAction类继承ActionListenerde同名方法,完成MyFirstFrame中类的所有方法进行修改直到成功,并且将修改后的信息通过ModActionString()导入数据库。
用户删除:
DeleAction类继承ActionSuporrt类,get_name()方法用于得到所要删除的信息的主码。
封装的数据成员包括name,封装有isSuccess()函数,用于判断删除成功与否。
删除模块中,用户可以根据某一关键字或多个关键字进行删除,删除信息后会自动提示。
用户导出:
根据ActionlistenrWindows窗口提示,联系人已经成功导出。
其结构体经初始化后已经完成,
导出的数据将成功存入数据库中,此时数据库可以随时进行查询等一切可行性操作。
五设计总结
通过这次课程设计我加深了对于java语言应用与实践之间的连接,能更好的使用java语言!
在张永老师及同学们的引导下配合下,我完成了题目。
只有通过合作,才能更高效率的完成任务。
实践非常的重要。
很多东西在理论层面是行的通的,但到实际中就行不通了。
所以要多实践,在不断的修改调试过程中巩固知识。
程序设计基本符合了我预期的要求,运行效果良好,无明显的大的bug。
在完成作业的过程中,我遇到了不少困难,其中有的是经过自己苦思冥想想出来的,也有的是询问比较厉害的同学得以解决的,还剩下的一些疑难问题当然就是求助网络了。
譬如说照片上传管理预览功能的实现,以及最小化到系统托盘的功能实现等。
其实不光是在网络上查询解决问题的方法,我也从网络上得到了不少编程的灵感和好的思想。
比如说我的程序中并没有运用网络编程,基本是一个单机版的程序,这其中基本上没有能够应用到多线程的地方。
但是经过我在网络上的查询,有人建议我可以在相片加载预览时候运用多线程,从而提高速度。
于是我就这样做了,从而使我的程序更完善了。
善于利用网络,对于我们的学习是大有裨益的。
五、结束语
通过两周的努力,我顺利的完成了通讯录系统的开发。
基于基本设计要求,我查阅了相关自资料,进行了需求分析,概要设计,详细设计,编码,调试运行等软件开发步骤。
无论在理论上还是在实践上都有较大幅度的提高,独立分析问题解决问题和他人交流的能力明显提高。
通过这次课程设设计,我对JAVA语言有了基本的认识。
JAVA是完全面向对象的语言,使用方便,界面友好,编译较难,能极大的节约运行时间,提高响应速度。
其次软件工程的思想有了深入了解:
完善需求,最大的满足客户需求,充分做好风险分析。
为了保证项目的速度,定期对项目进行评估工作。
本次项目随小,我却悟出了个简单的道理:
学习就像软件开发,拿到一本书后看看,提出自己未知的问题,进而分析问题,解决问题。
通过课程设计,我深刻的认识到在当今激烈的社会竞争中只有学到本领才能有立足之地,同时也感到软件开发的幸苦。
首先要有耐心,要忍着密密麻麻的代码,无数遍的修改,无数遍的调试,但是当你调试成功时,你会感到努力的结果!
谢谢老师,谢谢同学!
我们风雨无阻,一路向前。
六、参考文献
[l]其庆《Java模块设计实例经典[M]》冶金工业出版社,20046
[2]甲耀《CoreJava高级应用程序设计教程》电子工业出版社,2006.3
[3]JamesGosling《Java语言规范[M]》机械工业出版社,2006.5
[4]吴斯特曼,《java核心技术》,机械工业出版社,2008.5
[5]曹静,《软件丌发生命周期与统一建模语言UML》,水利水电出版社,20082
[7]《Java语法及网络应用设计》,徐迎晓编著,清华大学出版社2002.10
[8]《
ThinkinginJAVA(ThirdEdition)》,BruceEckel,机械工业出版社2010.5.7
[9]《Java2参考大全(第四版)》,[美]HerbertSchildt著,张玉清、吴浦峰、尚勇等译,清华大学出版社2009.6.7
七、源代码
1packagetongxun;
publicclassUseSystem{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
newMySystem().validate();
}
}
2packagetongxun;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.*;
importjavax.swing.*;
publicclassMySystemextendsJFrameimplementsActionListener,ItemListener{
UserServiceuService=newUserService();
Useru=newUser();
Choicechoice=newChoice();
JTextFieldt1=newJTextField(15);
JButtonb1=newJButton("
查询"
);
java.awt.Listlist=newjava.awt.List(6,true);
JButtonb2=newJButton("
增加"
JButtonb3=newJButton("
删除"
JButtonb4=newJButton("
修改"
JButtonb5=newJButton("
导出"
Containercon=getContentPane();
java.util.List<
User>
uList=newArrayList<
();
//staticVector<
uv=newVector<
(100);
intflag=0;
MySystem(){
super("
通讯录管理程序"
setSize(400,400);
con.setLayout(newBorderLayout());
choice.add("
姓名"
类别"
手机号码"
查询全部记录"
qq"
Panelp1=newPanel();
//Panelp2=newPanel();
Panelp3=newPanel();
p1.setBackground(Color.red);
p1.setSize(300,10);
//p2.setBackground(Color.cyan);
//p2.setSize(380,300);
p3.setBackground(Color.yellow);
list.setSize(300,300);
p1.add(choice);
p1.add(t1);
p1.add(b1);
p3.add(b2);
p3.add(b4);
p3.add(b3);
p3.add(b5);
con.add("
North"
p1);
Center"
list);
South"
p3);
setVisible(true);
validate();
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
setVisible(false);
System.exit(0);
}
});
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
list.addItemListener(this);
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==b2){//通过产生外部窗体,来实现添加功能
finalJFramenewf=newJFrame("
添加联系人"
newf.setSize(400,400);
newf.setVisible(false);
newf.setLayout(newGridLayout(10,2));
JLabeljb1=newJLabel("
联系人姓名:
"
finalJTextFieldjtf1=newJTextField(15);
Panelpp1=newPanel();
pp1.add(jb1);
pp1.add(jtf1);
newf.getContentPane().add(pp1);
JLabeljb2=newJLabel("
联系人电话:
finalJTextFieldjtf2=newJTextField(15);
Panelpp2=newPanel();
pp2.add(jb2);
pp2.add(jtf2);
newf.getContentPane().add(pp2);
JLabeljb3=newJLabel("
固定电话:
finalJTextFieldjtf3=newJTextField(15);
Panelpp3=newPanel();
pp3.add(jb3);
pp3.add(jtf3);
newf.getContentPane().add(pp3);
JLabeljb4=newJLabel("
联系人QQ:
finalJTextFieldjtf4=newJTextField(15);
Panelpp4=newPanel();
pp4.add(jb4);
pp4.add(jtf4);
newf.getContentPane().add(pp4);
JLabeljb7=newJLabel("
联系人email:
finalJTextFieldjtf7=newJTextField(15);
Panelpp7=newPanel();
pp7.add(jb7);
pp7.add(jtf7);
newf.getContentPane().add(pp7);
JLabeljb8=newJLabel("
联系类别:
finalJTextFieldjtf8=newJTextField(15);
Panelpp8=newPanel();
pp8.add(jb8);
pp8.add(jtf8);
newf.getContentPane().add(pp8);
JLabeljb5=newJLabel("
联系人工作:
finalJTextFieldjtf5=newJTextField(15);
Panelpp5=newPanel();
pp5.add(jb5);
pp5.add(jtf5);
newf.getContentPane().add(pp5);
JLabeljb6=newJLabel("
现居住地地址:
finalJTextFieldjtf6=newJTextField(15);
Panelpp6=newPanel();
pp6.add(jb6);
pp6.add(jtf6);
newf.getContentPane().add(pp6);
JButtonbb1=newJButton("
提交"
JButtonbb2=newJButton("
关闭"
Panelpp9=newPanel();
pp9.add(bb1);
pp9.add(bb2);
newf.getContentPane().add(pp9);
//JTextAreajta=newJTextArea();
Panelpp10=new
//Panel();
pp10.add(jta);
newf.getContentPane().add();
bb1.addMouseListener(newMouseAdapter(){
publicvoidmouseClicked(MouseEventee){
Useru=newUser();
u.setName(jtf1.getText());
u.setTel(jtf2.getText());
u.setPhone(jtf3.getText());
u.setQq(jtf4.getText());
u.setWork(jtf5.getText());
u.setAddress(jtf6.getText());
u.setEmail(jtf7.getText());
u.setCategory(jtf8.getText());
if(uService.add(u)){
JOptionPane.showMessageDialog(null,"
添加成功!
!
}else
添加失败!
}
});
bb2.addMouseListener(newMouseAdapter(){
newf.setVisible(true);
newf.setVisible(true);
}
if(b1==e.getSource()){//通过调用select();
实现模糊查询
list.removeAll();
select();
if(b3==e.getSource()){//通过获得联系人在list中的索引号,来实现对联系人的删除
if(flag==0){
JOptionPane.showMessageDialog(null,"
不能删除该行!
u=uList.get(flag-1);
if(uService.delById(u.getId())){
删除成功!
uList.remove(flag-1);
list.removeAll();
list.add("
编号"
+"
"
电话"
for(Useru1:
uList){
list.add(u1.getId()+"
:
+u1.getName()
+"
+u1.getTel());
}else
删除失败!
if(b4==e.getSource()){//通过获得联系人在list中的索引号,同弹出一个外部窗体其中
//有联系人的信息,用户可以修改.并在将其存入数据库
不能修改首行!
return;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程设计 通讯录 管理 系统