课程设计通讯录管理系统的设计与实现.docx

上传人:b****6 文档编号:4819661 上传时间:2022-12-09 格式:DOCX 页数:55 大小:2.19MB
下载 相关 举报
课程设计通讯录管理系统的设计与实现.docx_第1页
第1页 / 共55页
课程设计通讯录管理系统的设计与实现.docx_第2页
第2页 / 共55页
课程设计通讯录管理系统的设计与实现.docx_第3页
第3页 / 共55页
课程设计通讯录管理系统的设计与实现.docx_第4页
第4页 / 共55页
课程设计通讯录管理系统的设计与实现.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

课程设计通讯录管理系统的设计与实现.docx

《课程设计通讯录管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《课程设计通讯录管理系统的设计与实现.docx(55页珍藏版)》请在冰豆网上搜索。

课程设计通讯录管理系统的设计与实现.docx

课程设计通讯录管理系统的设计与实现

课程设计--通讯录管理系统的设计与实现

课程设计(论文)任务书

一、课程设计(论文)题目 通讯录管理设计

二、课程设计(论文)工作自2013年9月23日起至2013年10月13日止。

三、课程设计(论文)地点:

信息科学技术学院

四、课程设计(论文)内容要求:

1.本课程设计的目的

(1)掌握java语言的程序设计方法;

(2)理论联系实际,进一步提高学生的软件开发技术;

(3)培养学生分析、解决问题的能力;

(4)提高学生实践论文撰写能力。

2.课程设计的任务及要求

1)课程设计任务:

(1)设一个通信录由以下几项数据信息构成:

数据项类型

姓名字符串

地址字符串

邮政编码字符串

电话号码字符串

(2)1.主要功能:

(1) 能建立、查询、修改和增删学生通讯录

(2) 能够按多种方式进行查询

(3)界面友好,易于操作

 

2)课程设计论文编写要求

(1)课程设计任务及要求

(2)设计思路--工作原理、功能规划

(3)详细设计---数据分析、算法思路、类设计、功能实现(含程序流程图、主要代

码及注释)、界面等。

(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。

(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,

巩固了哪些知识,有哪些提高。

(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)

(7)报告按规定排版打印,要求装订平整,否则要求返工;

(8)课设报告的装订顺序如下:

封面---任务书---中文摘要---目录----正文---附录

(代码及相关图片)

(9)严禁抄袭,如有发现,按不及格处理。

4)参考文献:

(1)《java面向对象程序设计》董晓国清华大学出版社

(2)《java程序设计教程》迟丽华清华大学出版社

学生签名:

陈万洲

2013年12月24日

 

通讯录管理系统的设计与实现 

  

 

【中文摘要】  这个基于java编写的个人通讯录管理系统含有添加、删除、查找等基本功能,采用的是JDBC-ODBC桥实现数据库的连接,ODBC数据源名称chengwz.mbd。

本课程设计主要解决通讯录应用的管理问题, 设计开发一个简单的通讯录系统 ,实现新建联系人,不同方式查找信息,删除信息,修改信息,联系人头像,退出系统等功能。

在课程设计中,程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在通讯录应用的管理中,解决实际问题。

 

关键词 :

通讯录、java、通讯录应用、个人通讯录管理系统、添加、删除、查找,数据库。

 

课程设计评语

对课程设计的评语:

平时成绩:

课程设计成绩:

总成绩:

评阅人签名:

注:

1、无评阅人签名成绩无效;

2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;

3、如有平时成绩,必须在上面评分表中标出,并计算入总成

 

正文

 

 

1.课程设计题目:

java通讯录设计

【要求】

(1)设一个通信录由以下几项数据信息构成:

数据项类型

姓名字符串

地址字符串

邮政编码字符串

电话号码字符串

(2)1.主要功能:

(1) 能建立、查询、修改和增删学生通讯录

(2) 能够按多种方式进行查询

(3)界面友好,易于操作

2.程序设计思路

各界面设计

主界面:

菜单JMeun组件构成菜单,列表JList组件显示好友部分信息。

删除好友界面:

利用文本框类JTexField提供的文本区JTexArea组件输入好友信息,按钮JButton组件,事件处理,标签类JLabel提示输入的对象。

修改界面:

输入要修改的联系人姓名,是否找到该联系人,如果找到记录,调用修改方法,对该联系人的信息进行修改;如果没有找到,弹出提示框,查无此联系人。

在寻找的过程中用了字符串的比较方法。

查询界面:

询问用户想要选择的搜索方式,分两种类型查询(好友姓名,好友电话号码),再利用标签类在窗口中显示联系人信息。

好友信息界面:

显示好友的联系方式。

查询不到好友界面:

提示无此联系人信息。

采用的是JDBC-ODBC桥实现数据库的连接通过操作数据库来管理信息

3.功能模块图

(1)登录界面----->通讯录主界面

(2)修改好友

(3)新建好友

选中菜单中的新增

 

 

(4)查询好友

 

选择想要的查询方式

4.数据结构设计

该程序共有11个类,2种接口动作事件类ActionListener,鼠标事件类MouseListener,2种继承JFrame框架JPanel,但只创建了3个java源程序文件,以下按照类的名字先后解释(在设计软件Eclipse工程中也是如此),另外在此只是简要介绍相关源程序所实现的功能,程序截图参见调试,源程序参见附录1:

listd类:

主界面的功能。

Searchfriend类:

按名字查询好友界面,提供按名字搜索,有一个文字输入框,和两个控制按钮——“查询”和“退出”。

Search2类:

按电话查询好友界面,提供按电话搜索,有一个文字输入框,和两个控制按钮——“查询”和“退出”。

Addfriend类:

编辑,新增好友界面,输入需要增加的姓名,电话,手机,住址,QQ,邮编之后,两个控制按钮——“增加”和“退出”。

ReviseFriend类:

修改好友界面。

两个控制按钮——“修改”和“退出”。

ReviseFriendname类:

:

修改好友姓名搜索界面,有一个文字输入框提供输入好友姓名,两个控制按钮——“搜索”和“退出”。

Deletefriend类:

删除好友搜索姓名界面,输入了完整姓名,两个控制按钮——“打开”和“退出”。

delete类:

好友信息界面,“删除”和“返回”两个按钮。

none类:

查无联系人界面。

about类:

关于界面。

mypan类:

中间面板。

这些类都对应自己的构造方法。

Stringstr1[]=newString[20];//姓名

Stringstr2[]=newString[20];//电话

Stringstr3[]=newString[20];//QQ

Stringstr4[]=newString[20];//地址

Stringstr5[]=newString[20];//邮编

利用java提供的列表JListl类,使通讯录的界面更友好,我们只要双击列表就可以查看好友的联系信息。

利用数组下表操作实现好友准确查看,删除,编辑功能。

采用的是JDBC-ODBC桥实现数据库的连接,实现对数据库数据表的读取,新增,修改,删除,修改,查询。

为了优化程序,本程序还采了数组来存取打开驱动读出数据表的数据,减少对数据表的直接操作

 

5.算法设计

 

 

 

 

6.程序代码

见附录1

7.程序运行结果

(1)登录界面(输入用户名和密码正确后等待进度条加载完成进入主界面)

(2)主界面

关于

(3)新增好友

 

(4)删除界面

 

(5)查询界面

按姓名查询

 

按电话查询

查询结果

 

好友不存在

 

(6)修改好友

修改后

 

(7)数据库数据表

8.编程中遇到的困难及解决方法

数据库的打开、新增、修改、删除、查询

解决方法:

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序

Stringurl="jdbc:

odbc:

chengwz";//URL指向要访问的数据库名test

Stringuser="";//MySQL配置时的用户名

Stringpassword="";//MySQL配置时的密码

Connectionconnection=DriverManager.getConnection(url,user,password);//连续数据库

if(!

connection.isClosed())

System.out.println("SucceededconnectingtotheDatabase!

");

Statementstatement=connection.createStatement();//statement用来执行SQL语句

Stringsql="select*fromcwz";

ResultSetrs=statement.executeQuery(sql);//执行SQL语句并返回结果集

System.out.println("姓名"+"\t"+"电话"+"\t\t"+"QQ"+"\t\t"+"邮编");

Stringname=null;

Stringphone=null;

StringQQ=null;

Stringyoubian=null;

while(rs.next()){

name=rs.getString("name");//选择sname这列数据

phone=rs.getString("phone");

QQ=rs.getString("QQ");

youbian=rs.getString("postcard");

System.out.println(name+"\t"+phone+"\t"+QQ+"\t"+youbian);//输出结果

}

rs.close();//关闭结果集

connection.close();//关闭连接

}catch(ClassNotFoundExceptione){

System.out.println("Sorry,can`tfindtheDriver!

");

e.printStackTrace();

}catch(SQLExceptione){

e.printStackTrace();

}catch(Exceptione){

e.printStackTrace();

}

}

9.总结及建议

这次课程设计使我了解到java语言的重要性,之前接触到的java语言内容都是理论上的,理论知识知道的比较多,但是没怎么用到实际操作当中。

这次设计给了我一次真正认识计算机语言的机会,刚开始我一脸的迷茫,不知道从哪里开始动手,觉得java语言是一种很深奥的东西,对于刚开始接触这门课程的我来说非常的不适应。

很多东西都是第一次:

第一次真正认真的投入java语言当中,第一次用自己在课堂上学习的东西逐步的去解决实际问题,去完成这次是java通讯录的设计。

经过这次实习,我知道自己的计算机知识还是相当有限的,在这次的程序编译过程中遇到了很多自己无法解决的问题,可是通过老师的指导,上网查看资料,问高年级的学长学姐等方法,最终问题都基本解决了。

这次java语言课程设计给我的帮助是很大的。

虽然到现在我还掌握得不好。

所以在以后的学习生活中我会更加注重这方面的实际操作,提高自己的实际动手操作能力,解决实际问题的能力以及提升自己的计算机水平。

 

10.致谢

java语言课程设计是一门非常重要的计算机基础课,学得好与否对我们以后都很重要。

真诚的感谢老师在这次课程设计中给予的种种帮助,是我从对该课程的懵懂一步步到了解以及深入的学习。

为以后的学习打下良好的基础。

虽然只有短短的这几天,但我收获很多,而且让我慢慢的对计算机产生了兴趣。

参考文献

[1]java面向对象程序设计董小园编著清华大学出版社

[2]java程序设计教程迟丽华清华大学出版社

[3]java核心技术卷2:

高级特性CayS.Horstmann机械工业出版社

 

附录1

完整源代码:

//myframe.java

packagekkh;

importjava.awt.*;

importjava.awt.Event.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjava.sql.*;

importjava.util.*;

 

publicclassmyframeextendsJFrameimplementsActionListener,MouseListener{

JListlt;

privateJMenuBarmb;

privateJMenumu1,mu2,mu3,mu4;

privateJMenuItemmi1,mi2,mi3,mi4,mi5,mi6,mi7;

DefaultListModeldm=newDefaultListModel();

JLabellb=newJLabel("业精于勤荒于嬉,行成于思毁于随!

");

publicintj=0;

publicintm=0;

publicintt=0;

publicintd=0,f=0,h=0,cag=0,del=0;

Stringstr1[]=newString[20];//姓名

Stringstr2[]=newString[20];//电话

Stringstr3[]=newString[20];//QQ

Stringstr4[]=newString[20];//地址

Stringstr5[]=newString[20];//邮编

//中间面板

classmypanextendsJPanelimplementsActionListener{

JLabelName,Tel,QQq,Address,youb,lb2,lb3,lb4,lb5,lb6;

JButtonbtn1,btn2,btn3;

mypan(intindex){

intx=index;

setLayout(null);

setBackground(Color.white);

Name=newJLabel(str1[x]+"的联系方式");

Tel=newJLabel("电话:

");lb2=newJLabel(str2[x]);

QQq=newJLabel("QQ:

");lb3=newJLabel(str3[x]);

Address=newJLabel("地址:

");lb4=newJLabel(str4[x]);

youb=newJLabel("邮编");lb5=newJLabel(str5[x]);

ImageIconimg6=newImageIcon("D:

\\workspace\\image\\2.jpg");

if(x==1)img6=newImageIcon("D:

\\workspace\\image\\3.jpg");

if(x==2)img6=newImageIcon("D:

\\workspace\\image\\4.jpg");

if(x==3)img6=newImageIcon("D:

\\workspace\\image\\5.jpg");

if(x==4)img6=newImageIcon("D:

\\workspace\\image\\6.jpg");

if(x==5)img6=newImageIcon("D:

\\workspace\\image\\7.jpg");

if(x==6)img6=newImageIcon("D:

\\workspace\\image\\8.jpg");

if(x==7)img6=newImageIcon("D:

\\workspace\\image\\8.jpg");

if(x==8)img6=newImageIcon("D:

\\workspace\\image\\9.jpg");

if(x==9)img6=newImageIcon("D:

\\workspace\\image\\10.jpg");

lb6=newJLabel("",img6,SwingConstants.LEADING);

btn1=newJButton("删除");

btn2=newJButton("退出");

btn3=newJButton("修改");

Name.setBounds(340,30,200,30);Name.setForeground(Color.blue);

Tel.setBounds(330,80,60,30);

QQq.setBounds(330,130,60,30);

Address.setBounds(330,180,60,30);

youb.setBounds(330,230,60,30);

lb2.setBounds(370,80,180,30);lb2.setForeground(Color.red);

lb3.setBounds(370,130,180,30);lb3.setForeground(Color.red);

lb4.setBounds(370,180,180,30);lb4.setForeground(Color.red);

lb5.setBounds(370,230,180,30);lb5.setForeground(Color.red);

lb6.setBounds(100,50,200,200);

btn1.setBounds(250,300,60,30);

btn2.setBounds(350,300,60,30);

btn3.setBounds(150,300,60,30);

this.add(btn1);

this.add(btn2);

this.add(btn3);

this.add(Name);

this.add(Tel);

this.add(QQq);

this.add(Address);

this.add(youb);

this.add(lb2);

this.add(lb3);

this.add(lb4);

this.add(lb5);

this.add(lb6);

btn1.addActionListener(this);

btn2.addActionListener(this);

btn3.addActionListener(this);

}

/*publicvoidpaint(Graphicsg){

super.paint(g);

ImageIconimg=newImageIcon("D:

\\1.jpg");

g.drawImage(img.getImage(),200,100,800,300,this);

}*/

@Override

publicvoidactionPerformed(ActionEvente){

//TODO自动生成的方法存根

if(e.getSource()==btn1){

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序

Stringurl="jdbc:

odbc:

chengwz";//URL指向要访问的数据库名test

Stringuser="";//MySQL配置时的用户名

Stringpassword="";//MySQL配置时的密码

ResultSetrs=null;

Connectionconnection=DriverManager.getConnection(url,user,password);//连续数据库

if(!

connection.isClosed())

System.out.println("SucceededconnectingtotheDatabase!

");

Statementstatement=connection.createStatement();//statement用来执行SQL语句

PreparedStatementpre=null;

Stringstr2=str1[f];

Stringsq2="delete*fromcwzwherename=?

";

pre=connection.prepareStatement(sq2);//要执行的SQL

pre.setString(1,str2);

pre.executeUpdate();

pre.close();

connection.close();

}catch(Exceptionee){

ee.printStackTrace();

System.out.println("============删除时:

抛出异常===========");

}

dm.removeElementAt(f);

for(intd=f;d

str1[d]=str1[d+1];

str2[d]=str2[d+1];

str3[d]=str3[d+1];

str4[d]=str4[d+1];

str5[d]=str5[d+1];

}

j--;

f--;

JOptionPane.showMessageDialog(null,"数据删除成功!

");

}

elseif(e.getSource()==btn2){

dispose();

System.exit(0);

}

elseif(e.getSource()==btn3){

new

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

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1