通讯录管理系统课设任务说明书Word格式.docx
《通讯录管理系统课设任务说明书Word格式.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统课设任务说明书Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
![通讯录管理系统课设任务说明书Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/4/5d29aa46-3356-407f-9e7a-74dccfbc16f8/5d29aa46-3356-407f-9e7a-74dccfbc16f81.gif)
本系统实现以下的具体功能:
1.通讯录中联系人的编辑;
2.联系人信息的添加;
3.联系人信息的查看,修改,保存;
4.联系人快速查找;
关键词:
通讯录;
联系人;
信息修改;
序言
随着中国信息化与工业化建设的飞速发展,我国在信息领域也取得了一些举世瞩目的成就,如40GB/sSDH光纤通信系统,80×
40GB/s密集波复用系统,大容量超长距离传输系统和光纤到户等高水准通信系统设备的研制成功。
未来是一个更加信息化,智能化,和谐化的社会。
现代人的生活节奏日益加快,人与人之间的交往也更加密切,现代化的通信方式使得人与人间的交往变得更加快捷,方便。
这就需要一种通讯工具让我们统一管理所有人的联系方式,为此,本系统为用户提供了一种方便快捷的管理联系人方式。
经过测试,该程序能正常运行,基本实现了通讯录联系人的添加,修改,删除,查找;
系统分析与设计
1.1系统需求分析
1.要求利用面向对象的方法以及Java的编程思想来完成系统的设计;
2.要求在设计的过程中,建立清晰的类层次;
3.在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;
4.在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。
5.在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。
1.2系统设计
系统类结构图如图1:
图1
详细设计
2.1系统中的各个类
主类TongXunLu继承了Frame类,实现接口ActionListener;
主类里有3个方法,构造函数TongXunlu()实现各个对象的初始化;
在发生操作事件时,调用对象的actionPerformed方法;
WindowCloser()继承接收窗口事件的抽象适配器类WindowAdapter,当通过打开、关闭、激活或停用、图标化或取消图标化而改变了窗口状态时,将调用该侦听器对象中的相关方法,并将WindowEvent传递给该方法。
类EditDialog继承Dialog类并实现接口ActionListener;
该类实现对话框窗体,并对窗体中的各个组件实现时件的监听处理;
类ConfirmDialog继承Dialog类,并实现接口ActionListener,对窗体中的确定,取消按钮和标签进行事件的监听处理;
类Info中定义联系人的姓名,地址,邮箱,电话;
2.2系统主类的部分代码如下
publicclassTongXunLuextendsFrameimplementsActionListener
{
privateMenuItemnoteAdd=newMenuItem("
添加"
);
privateMenuItemnoteDel=newMenuItem("
删除"
privateMenuItemnoteEdit=newMenuItem("
修改"
privateMenuItemnoteSearch=newMenuItem("
查找"
privateMenuItemnoteExit=newMenuItem("
退出"
privateListnoteList=newList();
privateString[][]message=newString[1000][4];
publicInfonotes=newInfo();
publicTongXunLu()
{
super("
zjl的小小通讯录"
Menunote=newMenu("
我的联系人"
note.add(noteAdd);
note.add(noteDel);
note.add(noteEdit);
note.add(noteSearch);
note.addSeparator();
note.add(noteExit);
MenuBarbar=newMenuBar();
bar.add(note);
setMenuBar(bar);
add(noteList);
noteAdd.addActionListener(this);
noteDel.addActionListener(this);
noteEdit.addActionListener(this);
noteExit.addActionListener(this);
noteSearch.addActionListener(this);
noteList.addActionListener(this);
addWindowListener(newWindowCloser());
setSize(400,400);
setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
if(e.getSource()==noteAdd)
{
notes.mail=null;
notes.name=null;
notes.address=null;
notes.telephone=null;
intindex=noteList.getItemCount();
EditDialogdlg=newEditDialog(this,"
notes,false);
if(dlg.isOk)
{
message[index][0]=dlg.textName.getText();
message[index][1]=dlg.textAddress.getText();
message[index][2]=dlg.textEmail.getText();
message[index][3]=dlg.textTelephone.getText();
if(message[index][0]!
=null)
{
Strings="
姓名:
"
+message[index][0]+"
地址:
+message[index][1]+"
E-mail:
+message[index][2]+"
电话:
+message[index][3];
noteList.add(s);
}
}
Filefile=newFile("
tongxunlu.txt"
FileWriterfw;
try
fw=newFileWriter(file);
BufferedWriterbw=newBufferedWriter(fw);
bw.write(message[index][0]);
bw.newLine();
bw.write(message[index][1]);
bw.write(message[index][2]);
bw.write(message[index][3]);
bw.close();
}catch(IOExceptione1)
//TODOAuto-generatedcatchblock
e1.printStackTrace();
dlg.dispose();
}elseif(e.getSource()==noteEdit||e.getSource()==noteList)
inti=noteList.getSelectedIndex();
if(i!
=-1)
notes.name=message[i][0];
notes.address=message[i][1];
notes.mail=message[i][2];
notes.telephone=message[i][3];
EditDialogdlg=newEditDialog(this,"
修改通讯录"
if(dlg.isOk)
message[i][0]=dlg.textName.getText();
message[i][1]=dlg.textAddress.getText();
message[i][2]=dlg.textEmail.getText();
message[i][3]=dlg.textTelephone.getText();
+message[i][0]+"
+message[i][1]+"
+message[i][2]+"
+message[i][3];
noteList.replaceItem(s,i);
dlg.dispose();
}elseif(e.getSource()==noteDel)
ConfirmDialogcd=newConfirmDialog(this,"
确认删除?
"
确认要删除这条通讯录信息吗?
if(cd.close)
intindex=noteList.getSelectedIndex();
for(inti=index;
i<
noteList.getItemCount()-1;
i++)
for(intj=0;
j<
4;
j++)
message[i][j]=message[i+1][j];
noteList.remove(index);
}elseif(e.getSource()==noteSearch)
查找通讯录"
notes,true);
for(inti=0;
noteList.getItemCount();
Stringthisname=noteList.getItem(i).toString().split("
"
)[0]
.split("
:
)[1];
Stringthistelephone=noteList.getItem(i).toString()
)[30].split("
if((dlg.name.equals(thisname)&
&
dlg.telephone
.equals(thistelephone))
||(dlg.name.equals(thisname)&
(dlg.telephone
.equals("
)))
||((dlg.name.equals("
))&
.equals(thistelephone)))
{
Stringshow="
查找成功!
信息为:
+noteList.getItem(i).toString();
JOptionPane.showMessageDialog(null,show);
return;
}
JOptionPane.showMessageDialog(null,"
无此人信息!
}elseif(e.getSource()==noteExit)
System.exit(0);
}
privateclassWindowCloserextendsWindowAdapter
publicvoidwindowClosing(WindowEventwe)
publicstaticvoidmain(String[]args)
newTongXunLu();
}
系统测试
3.1主窗体界面如图2
图3
3.2联系人添加界面如图3
3.3联系人添加界面如图4
图4
3.4联系人信息修改界面如图5
图5
3.5联系人信息修改界面如图6
图6
软件使用说明
系统主界面如下图:
点击我的联系人按钮,就会弹出一个下拉列表菜单,有添加,删除,修改,查找,退出5个按钮,点击各个按钮就会弹出相应的窗体界面,就可以实现联系人信息的添加;
联系人信息的查看,修改,保存;
联系人快速查找;
设计总结
在经过一学期的学习之后,或者说当学习告一段落的时候,我们需要了解自己的所学应当如何应用在实践之中,因为任何知识都源于实践,归于实践,所以,要将所学付诸实践,来检验所学的知识与技能,这是很有必要的。
在这一学期的学习中,Java语言理论知识学起来不是太难,因为先前有学过C++,但是将课堂所学的与实际的编程处理问题上还有一些的困难。
这次课程设计使我对图形化界面有了充分的了解,以前上课的时候对知识的掌握只是理论性的,没有通过自己动手实践,当真正的自己动手操作的时候才会感觉到理论的知识太片面。
通过实践,我也解决了很多困惑我很久的问题,以前看似很难理解的问题,在实践的过程中都有了充分的理解和认识,我发现了自己很多的缺点和错误,并且改正了不好的习惯,养成了遇事要认真的态度,使我认识到无论做什么事都要持之以恒,只要自己努力就会成功!
通过这次课程设计使我懂得了理论与实际相结合是很重要的。
在设计的过程中遇到问题,我学会了自己进行独立的思考和解决。
通过课程设计之后,把以前所学过的知识重新温故。
这次java课设计顺利完成了,在设计中遇到了很多的问题,也学到了很多的东西,比如团队合作等等。
这次课设让我受益匪浅!
使我充分的认识到了动手的重要性和自己在java学习方面的优缺点!
最后对于给过我帮助的老师和同学表示衷心的感谢!
参考文献
[1]曲朝阳,杨杰明等.Java程序设计.北京:
清华大学出版社
[2]耿祥以,张跃平.Java大学生实用教程.北京:
电子工业出版社
[3]明日科技.Java经典编程.北京:
清华大学出版社
[4]李尊朝,苏军.Java语言程序设计.北京:
中国铁道出版社
[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司
[6]赵付清,高峰.Java面向对象程序设计.国防工业出版社
致谢
此次设计的完成主要感谢指导老师的指导和同学的帮助,是他们以严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我,让我能够利的时间完成编程,在程序测试阶段他们给予了我很多指导,同时启发我如何更好的改进和完善程序中的错误。
在编写程序的过程中,同学积极帮助我调试程序,给了我一些很好的建议。
同时,大家也很认真地配合与给出自己的意见。
课程设计对我们以后的专业课的学习作用,同时也增强了对Java学习的趣,加深了对这门课程的了解。