通讯录管理Word格式文档下载.docx

上传人:聆听****声音 文档编号:811053 上传时间:2023-04-29 格式:DOCX 页数:29 大小:262.89KB
下载 相关 举报
通讯录管理Word格式文档下载.docx_第1页
第1页 / 共29页
通讯录管理Word格式文档下载.docx_第2页
第2页 / 共29页
通讯录管理Word格式文档下载.docx_第3页
第3页 / 共29页
通讯录管理Word格式文档下载.docx_第4页
第4页 / 共29页
通讯录管理Word格式文档下载.docx_第5页
第5页 / 共29页
通讯录管理Word格式文档下载.docx_第6页
第6页 / 共29页
通讯录管理Word格式文档下载.docx_第7页
第7页 / 共29页
通讯录管理Word格式文档下载.docx_第8页
第8页 / 共29页
通讯录管理Word格式文档下载.docx_第9页
第9页 / 共29页
通讯录管理Word格式文档下载.docx_第10页
第10页 / 共29页
通讯录管理Word格式文档下载.docx_第11页
第11页 / 共29页
通讯录管理Word格式文档下载.docx_第12页
第12页 / 共29页
通讯录管理Word格式文档下载.docx_第13页
第13页 / 共29页
通讯录管理Word格式文档下载.docx_第14页
第14页 / 共29页
通讯录管理Word格式文档下载.docx_第15页
第15页 / 共29页
通讯录管理Word格式文档下载.docx_第16页
第16页 / 共29页
通讯录管理Word格式文档下载.docx_第17页
第17页 / 共29页
通讯录管理Word格式文档下载.docx_第18页
第18页 / 共29页
通讯录管理Word格式文档下载.docx_第19页
第19页 / 共29页
通讯录管理Word格式文档下载.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

通讯录管理Word格式文档下载.docx

《通讯录管理Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《通讯录管理Word格式文档下载.docx(29页珍藏版)》请在冰点文库上搜索。

通讯录管理Word格式文档下载.docx

基本数据量要求:

(1)用户数不少于3人(采用数据库预置用户名和登录密码方式初始化);

(2)平均每个用户的通信录记录数不少于10条(至少有一个用户的通信录记录数不少于20条)。

开发平台与技术要求:

(1)数据库采用SQL-Server或MySQL;

(2)采用HTML/JavaScript/JSP;

(3)可选用Ajax/Struts2/Hibernate。

2.1总体设计

在明确了系统与数据库结构的前提下,设计该系统主要功能:

系统登录,数据的输入与修改,数据的删除,联系人和群管理等。

主要功能包括:

(1)用户登录及退出登录;

(2)登录用户编辑个人通信录(增、删、改);

(3)登录用户查询通信录(输入姓名或姓名的单字拼音首字母查询)。

分流程示意图

1.系统登录:

2.2数据库设计

(1)表1普通用户数据表

列名

数据类型

长度

是否为空

username

varchar

50

password

(2)记录信息数据表,如表2

表2记录信息数据表

类型

是否空

id

int

name

tel

phone

qq

email

category

work

aaress

2.3详细设计

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窗口提示,联系人已经成功导出。

其结构体经初始化后已经完成,

导出的数据将成功存入数据库中,此时数据库可以随时进行查询等一切可行性操作。

3.测试报告

通过这次课程设计我加深了对于java语言应用与实践之间的连接,能更好的使用java语言!

在老师及同学们的引导下配合下,我完成了题目。

只有通过合作,才能更高效率的完成任务。

实践非常的重要。

很多东西在理论层面是行的通的,但到实际中就行不通了。

所以要多实践,在不断的修改调试过程中巩固知识。

程序设计基本符合了我预期的要求,运行效果良好,无明显的大的bug。

在完成作业的过程中,我遇到了不少困难,其中有的是经过自己苦思冥想想出来的,也有的是询问比较厉害的同学得以解决的,还剩下的一些疑难问题当然就是求助网络了。

譬如说照片上传管理预览功能的实现,以及最小化到系统托盘的功能实现等。

其实不光是在网络上查询解决问题的方法,我也从网络上得到了不少编程的灵感和好的思想。

比如说我的程序中并没有运用网络编程,基本是一个单机版的程序,这其中基本上没有能够应用到多线程的地方。

但是经过我在网络上的查询,有人建议我可以在相片加载预览时候运用多线程,从而提高速度。

于是我就这样做了,从而使我的程序更完善了。

善于利用网络,对于我们的学习是大有裨益的。

4.结论

通过两周的努力,我顺利的完成了通讯录系统的开发。

基于基本设计要求,我查阅了相关自资料,进行了需求分析,概要设计,详细设计,编码,调试运行等软件开发步骤。

无论在理论上还是在实践上都有较大幅度的提高,独立分析问题解决问题和他人交流的能力明显提高。

通过这次课程设设计,我对JAVA语言有了基本的认识。

JAVA是完全面向对象的语言,使用方便,界面友好,编译较难,能极大的节约运行时间,提高响应速度。

其次软件工程的思想有了深入了解:

完善需求,最大的满足客户需求,充分做好风险分析。

为了保证项目的速度,定期对项目进行评估工作。

本次项目随小,我却悟出了个简单的道理:

学习就像软件开发,拿到一本书后看看,提出自己未知的问题,进而分析问题,解决问题。

通过课程设计,我深刻的认识到在当今激烈的社会竞争中只有学到本领才能有立足之地,同时也感到软件开发的辛苦。

首先要有耐心,要忍着密密麻麻的代码,无数遍的修改,无数遍的调试,但是当你调试成功时,你会感受到努力的幸福。

5.源程序

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;

finalJTextFieldjtf1=newJTextField(u.getName(),15);

finalJTextFieldjtf2=newJTextField(u.getTel(),15);

finalJTextFieldjtf3=newJTextField(u.getPhone(),15);

finalJTextFieldjtf4=newJTextField(u.getQq(),15);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2