ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:295.81KB ,
资源ID:3282607      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3282607.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java课程设计通讯录管理系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java课程设计通讯录管理系统.docx

1、Java课程设计通讯录管理系统 摘要 随着社会的发展,人际关系变来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理系统。 通讯录管理系统是一个基于C/S模式的个人通讯录管理系统,它是将自己的联系人的具体信息集中处理,成为一个方便人们使用的小软件。在开发过程中应用java,JDK,MYSQL,SWING等技术,由于开发工具与数据库之间的良好使用,可以为开发带来方便,使之成为可视性的系统。 通过采用相关技术,将系统设计的功能全部实现。功能包括:用户登录,添加联系人信息,修改联系人信息,删

2、除联系人信息,查询联系人信息,可以浏览全部通讯录联系人,可以根据数据表的歌字段来查询你要找的联系人等功能。关键字:C/S架构,联系信息,通讯录,数据库一、需求分析2二、系统总体规划2三、程序流程2四、设计步骤5 1数据库表的设计5 2详细设计5五、设计总结9六、结束语10六、参考文献11七、程序清单12一需求分析通讯录在当今的日常生活工作中的应用是十分普及的,每个人都拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯录信息。但随着时代的发展,人们的联系方式及信息变得复杂多样,通讯录信息大量增加,导致管理这些信息资料就成了问题。直接操作来查找,添加,修改,删除这些信息,由于数据多,工

3、作量十分巨大,查找,编辑都很困难,而且极易出错,容易造成资料的混乱或丢失。在各种手机,上午通内设的电话簿尽管携带方便却又存在“记录量少,界面小,浏览不方便,记录信息不全面”的缺点。有人利用Excel或Word编制通讯录,虽然数据比较全面,信息比较充分,可是查找及其不便,维护起来也麻烦,所以运用文件或数据库技术建立一个通讯录管资料理系统十分必要,使通讯录资料管理工作规范化,系统化,程序化,避免资料管理中的混乱。提高信息处理速度和准确性,能够及时,准确,有效的查询和修改通讯录的情况。二系统总体规划在明确了系统与数据库结构的前提下,设计该系统主要功能:系统登录,数据的输入与修改,数据的删除,联系人和

4、群管理等。主要功能包括: (1)用户的登录,注册,删除功能;(2)联系人信息的增加,删除,修改,查询的功能;(3)联系人分组的增加,删除的功能;三程序流程a分流程示意图1系统登录:姓名设计流程图2用户界面流程图: 未注册 消息不正确 3用户增加联系人流程: 4用户修改流程图: 输入不合法 输入不合法 输入不合法 信息已存在或不合法 5用户修查询程: 6用户删除流程: 入 查找失败 查找失败 信息不存在 信息不 存在 四设计步骤【1】数据库设计(1)表1 普通用户数据表列名数据类型长度是否为空usernamevarchar50否passwordvarchar50否(2)记录信息数据表,如表2表2

5、 记录信息数据表名类型长度是否空idint50否namevarchar50否telvarchar50否phonevarchar50否qqvarchar50否emailvarchar50否categoryvarchar50否workvarchar50否aaressvarchar50否【2】详细设计 LoginAction类,封装的信息由密码和账户名,以及登录失败时抛出的异常方法。String execute()函数继承了Exception类,如果登录密码不匹配,则会抛出异常,提示Error登录失败。在登录模块中有管理员用户和普通用户,管理员可以对系统中的信息添加,修改,删除等功能,普通用户只进行

6、查找操.用户添加: LoginAction类继承ActionSuporrt类,封装有name,sex,birthday,email,tel属性,封装有成员函数set_name(),set_sex(),set_birthday(),set_email(),set_tel()用来添加各个属性值,提示操作失败信息用String execute()函数抛出异常。用询查询:FindAction类继承ActionSuporrt类的属性及方法,setInput()方法将输入的信息传递给FindAction类内的相应属性,getInput()方法用于返回输入值,封装的成员函数包括getlist()用于返回查询

7、到的元组列表。图5显示可以通过姓名,性别,出生日期,email地址对联系人进行查询。用户修改: ModAction类继承ActionListenerde同名方法,完成MyFirstFrame中类的所有方法进行修改直到成功,并且将修改后的信息通过ModAction String()导入数据库。用户删除: DeleAction类继承ActionSuporrt类,get_name()方法用于得到所要删除的信息的主码。封装的数据成员包括name,封装有isSuccess()函数,用于判断删除成功与否。删除模块中,用户可以根据某一关键字或多个关键字进行删除,删除信息后会自动提示。用户导出: 根据Acti

8、onlistenrWindows窗口提示,联系人已经成功导出。其结构体经初始化后已经完成,导出的数据将成功存入数据库中,此时数据库可以随时进行查询等一切可行性操作。五 设计总结通过这次课程设计我加深了对于java语言应用与实践之间的连接,能更好的使用java语言! 在张永老师及同学们的引导下配合下,我完成了题目。只有通过合作,才能更高效率的完成任务。 实践非常的重要。很多东西在理论层面是行的通的,但到实际中就行不通了。所以要多实践,在不断的修改调试过程中巩固知识。程序设计基本符合了我预期的要求,运行效果良好,无明显的大的bug。在完成作业的过程中,我遇到了不少困难,其中有的是经过自己苦思冥想想

9、出来的,也有的是询问比较厉害的同学得以解决的,还剩下的一些疑难问题当然就是求助网络了。譬如说照片上传管理预览功能的实现,以及最小化到系统托盘的功能实现等。其实不光是在网络上查询解决问题的方法,我也从网络上得到了不少编程的灵感和好的思想。比如说我的程序中并没有运用网络编程,基本是一个单机版的程序,这其中基本上没有能够应用到多线程的地方。但是经过我在网络上的查询,有人建议我可以在相片加载预览时候运用多线程,从而提高速度。于是我就这样做了,从而使我的程序更完善了。善于利用网络,对于我们的学习是大有裨益的。 五、结束语 通过两周的努力,我顺利的完成了通讯录系统的开发。基于基本设计要求,我查阅了相关自资

10、料,进行了需求分析,概要设计,详细设计,编码,调试运行等软件开发步骤 。无论在理论上还是在实践上都有较大幅度的提高,独立分析问题解决问题和他人交流的能力明显提高。 通过这次课程设设计,我对JAVA语言有了基本的认识。JAVA 是完全面向对象的语言,使用方便,界面友好,编译较难,能极大的节约运行时间,提高响应速度。其次软件工程的思想有了深入了解:完善需求,最大的满足客户需求,充分做好风险分析。为了保证项目的速度,定期对项目进行评估工作。本次项目随小,我却悟出了个简单的道理:学习就像软件开发,拿到一本书后看看,提出自己未知的问题,进而分析问题,解决问题。 通过课程设计,我深刻的认识到在当今激烈的社

11、会竞争中只有学到本领才能有立足之地,同时也感到软件开发的幸苦。首先要有耐心,要忍着密密麻麻的代码,无数遍的修改,无数遍的调试,但是当你调试成功时,你会感到努力的结果!谢谢老师,谢谢同学!我们风雨无阻,一路向前。六、参考文献l其庆Java模块设计实例经典M冶金工业出版社,2004 62甲耀Core Java高级应用程序设计教程电子工业出版社,2006.33 James GoslingJava语言规范M机械工业出版社,2006.54吴斯特曼,java核心技术,机械工业出版社,2008.55曹静,软件丌发生命周期与统一建模语言UML,水利水电出版社,2008 27Java 语法及网络应用设计,徐迎晓

12、编著,清华大学出版社2002.108Thinking in JAVA(Third Edition),Bruce Eckel,机械工业出版社2010.5.79Java2参考大全(第四版),美Herbert Schildt著,张玉清、吴浦峰、尚勇等译,清华大学出版社2009.6.7 七、源代码1package tongxun;public class UseSystem /* * param args */ public static void main(String args) new MySystem().validate(); 2package tongxun;import java.awt

13、.*;import java.awt.*;import java.awt.event.*;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.*;import javax.swing.*;public class MySystem extends JFrame implements ActionListener, ItemListener UserService uService = new UserServ

14、ice(); User u = new User(); Choice choice = new Choice(); JTextField t1 = new JTextField(15); JButton b1 = new JButton(查询); java.awt.List list = new java.awt.List(6, true); JButton b2 = new JButton(增加); JButton b3 = new JButton(删除); JButton b4 = new JButton(修改); JButton b5 = new JButton(导出); Contain

15、er con = getContentPane(); java.util.List uList = new ArrayList(); / static Vector uv = new Vector(100); int flag = 0; MySystem() super(通讯录管理程序); setSize(400, 400); con.setLayout(new BorderLayout(); choice.add(姓名); choice.add(类别); choice.add(手机号码); choice.add(查询全部记录); choice.add(qq); Panel p1 = new

16、Panel(); / Panel p2=new Panel(); Panel p3 = new Panel(); 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.ad

17、d(b5); con.add(North, p1); con.add(Center, list); con.add(South, p3); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) setVisible(false); System.exit(0); ); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this);

18、 b4.addActionListener(this); b5.addActionListener(this); list.addItemListener(this); public void actionPerformed(ActionEvent e) if (e.getSource() = b2) / 通过产生外部窗体,来实现添加功能 final JFrame newf = new JFrame(添加联系人); newf.setSize(400, 400); newf.setVisible(false); newf.setLayout(new GridLayout(10, 2); JLab

19、el jb1 = new JLabel(联系人姓名:); final JTextField jtf1 = new JTextField(15); Panel pp1 = new Panel(); pp1.add(jb1); pp1.add(jtf1); newf.getContentPane().add(pp1); JLabel jb2 = new JLabel(联系人电话:); final JTextField jtf2 = new JTextField(15); Panel pp2 = new Panel(); pp2.add(jb2); pp2.add(jtf2); newf.getCo

20、ntentPane().add(pp2); JLabel jb3 = new JLabel(固 定 电 话:); final JTextField jtf3 = new JTextField(15); Panel pp3 = new Panel(); pp3.add(jb3); pp3.add(jtf3); newf.getContentPane().add(pp3); JLabel jb4 = new JLabel(联系人QQ :); final JTextField jtf4 = new JTextField(15); Panel pp4 = new Panel(); pp4.add(jb

21、4); pp4.add(jtf4); newf.getContentPane().add(pp4); JLabel jb7 = new JLabel(联系人email:); final JTextField jtf7 = new JTextField(15); Panel pp7 = new Panel(); pp7.add(jb7); pp7.add(jtf7); newf.getContentPane().add(pp7); JLabel jb8 = new JLabel(联系类别 :); final JTextField jtf8 = new JTextField(15); Panel

22、pp8 = new Panel(); pp8.add(jb8); pp8.add(jtf8); newf.getContentPane().add(pp8); JLabel jb5 = new JLabel(联系人工作:); final JTextField jtf5 = new JTextField(15); Panel pp5 = new Panel(); pp5.add(jb5); pp5.add(jtf5); newf.getContentPane().add(pp5); JLabel jb6 = new JLabel(现居住地地址:); final JTextField jtf6 =

23、 new JTextField(15); Panel pp6 = new Panel(); pp6.add(jb6); pp6.add(jtf6); newf.getContentPane().add(pp6); JButton bb1 = new JButton(提交); JButton bb2 = new JButton(关闭); Panel pp9 = new Panel(); pp9.add(bb1); pp9.add(bb2); newf.getContentPane().add(pp9); / JTextArea jta=new JTextArea();Panel pp10=new

24、 / Panel();pp10.add(jta);newf.getContentPane().add(); bb1.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent ee) User u = new User(); u.setName(jtf1.getText(); u.setTel(jtf2.getText(); u.setPhone(jtf3.getText(); u.setQq(jtf4.getText(); u.setWork(jtf5.getText(); u.setAddress(jtf6

25、.getText(); u.setEmail(jtf7.getText(); u.setCategory(jtf8.getText(); if (uService.add(u) JOptionPane.showMessageDialog(null, 添加成功); else JOptionPane.showMessageDialog(null, 添加失败); ); bb2.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent ee) newf.setVisible(true); ); newf.setVis

26、ible(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() JOptionPane.showMessageDialog(null, 删除成功!); u

27、List.remove(flag - 1); list.removeAll(); list.add(编号 + + 姓名 + + 电话); for (User u1 : uList) list.add(u1.getId() + : + u1.getName() + + u1.getTel(); else JOptionPane.showMessageDialog(null, 删除失败!); if (b4 = e.getSource() / 通过获得联系人在list中的索引号,同弹出一个外部窗体其中 / 有联系人的信息,用户可以修改.并在将其存入数据库 if (flag = 0) JOptionPane.showMessageDialog(null, 不能修改首行!); return; u = uList.get(flag - 1); final JFrame newf = new JFrame(添加联系人); newf.setSize(400, 400); newf.setVisible(true); newf.setLayout(new GridLayout(10, 2); JLabel jb1 = new JLabel(联系人姓名:); fi

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

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