Java课程设计-通讯录管理系统_第1页
Java课程设计-通讯录管理系统_第2页
Java课程设计-通讯录管理系统_第3页
Java课程设计-通讯录管理系统_第4页
Java课程设计-通讯录管理系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计——基于JDK1.7.0和NetBeans6.9.1实现Java程序设计《通讯录管理系统》PAGE2PAGE1《Java程序设计》课程设计专业班级:2013级计算机科学与技术一班目录摘要 1一、概述 21.需求分析 22.任务分析 3二、总体设计 31.设计要求 32.设计任务 33.设计思路 4三、程序类 41.类AddressListSystem 41.1继承与JFrame类 41.2定义组件 41.3ArrayList 52.Note类 52.1实现Serializable接口 52.2定义类 5四、程序的功能 51.录入联系人信息 51.1联系人信息表 51.2实现添加联系人方法 62.查询联系人 62.1查询的方法 62.2实现查询联系人方法 63.删除指定的联系人信息 63.1删除的方法 63.2实现删除联系人方法 64.退出通讯录管理系统 7五、程序运行坏境 7六、系统测试 71.通讯录管理系统运行图形用户界面 72.联系人信息添加 82.联系人信息查找 93.删除指定联系人的信息 104.退出通讯录管理系统 12七、结论 121.结束语 122.致谢 133.参考文献 13附: 14程序源代码: 14摘要随着当今世界经济的快速发展,通讯技术日益成熟,个人间的联系增加,个人对自己联系人信息的管理成为一个重要的环节。与此同时,通讯录便产生了。形形色色的关于通讯录对的越来越方便着人们的生活。通讯录管理软件使用于同学、朋友等日常生活的联系人进行的相关的信息的编辑功能,便于用户随时查找所需要的联系人的所有信息。该通讯录管理系统十分便捷,用户可以通过它方便地进行添加、查找、修改、删除等基本通讯录管理所需的功能。软件操作窗口平时可以隐藏于屏幕边缘,用户鼠标移至该处及显示操作界面,用只需输入关键词(联系人姓名)即可方便地查找所需的通讯录信息。关键词Java通讯录管理简易快捷一、概述1.需求分析随着计算机科学技术的发达、全世界经济的快速发展,人们的日益繁多的交往使得我们之间的通讯更加频繁,每个人的联系方式会时常的更改,与之联系的家人、朋友、同事等大量的通讯信息,通讯录能够为我们带来所需要的相关信息。随着科学技术的发展,计算机领域不断取得新的研究成果。计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在高校的信息化建设中也越来越离不开计算机。通过计算机这个途径,开发一个通讯录管理系统,用户可以方便的自己电脑的通讯录管理系统,来随时查阅所需要的信息,而摆脱传统式笔记本或者电话簿等繁琐不快捷的方式。 通讯录管理系统主要是实现方便的管理通讯录管理,可以很好的进行存储用户联系方式以及一些简单的个人信息的实用管理系统,大大减少了时间用于查找和处理等一些操作的过程。2.任务分析通讯录管理系统将会为个人信息联系的现代化管理提供一个良好的平台,它也是针对人们之间大量信息处理工作而开发的管理软件,每个人的个人信息的统计和录入功能,随着人与人之间的交往更加频繁,利用JDK1.7.0和NetBeans6.9.1软件,设计并实现图形用户界面,其中管理自己联系人信息管理,以提高我们办事效率为目的,经过多方面的思考与查询,设计出通讯录管理系统相应的功能。通讯录管理包含对联系人信息输入、查询、维护和输出等功能。二、总体设计1.设计要求通讯录中包括一般通讯录中的基本信息,也需要实现普通的检索功能,通过将联系人写入文件,程序执行时,需要从文件中导入数据,程序退出后再将数据文件保存到文件中。2.设计任务录入联系人信息查询联系人删除指定的联系人信息退出通讯录管理系统3.设计思路一个程序的主类是进入系统,进行图形交互的界面设计;通过建立使用ArrayList动态数组、结合文件输入与输出流的操作方式,进行添加、查找、删除等;通过按钮添加、查找、删除、退出的addActionListener()方法实现事件响应。通过FileDescriptor在标准输入流上建立文件输入流,然后通过键盘的输入读取数据,并把读取的数据到指定的文件“readfromkeyboard.txt”中,然后再建立文件的输入流,通过FileDescriptor在标准输出流上建立的文件输出流,将文件中的数据显示在屏幕上。三、程序类1.类AddressListSystem1.1继承与JFrame类 通过导入javax.swing.*,然后才能使用JFrame类,主类继承使用1.2定义组件JLabeltitle=newJLabel("通讯录管理"); JLabelname=newJLabel("姓名"); JLabelzip=newJLabel("邮政编码"); JLabeladdress=newJLabel("通信地址"); JLabeltelephone=newJLabel("电话号码"); JLabelmobile=newJLabel("手机号码"); JLabelemail=newJLabel("email"); JTextFieldjtxtname=newJTextField(); JTextFieldjtxtzip=newJTextField(); JTextFieldjtxtaddr=newJTextField(); JTextFieldjtxttel=newJTextField(); JTextFieldjtxtmob=newJTextField(); JTextFieldjtxtemail=newJTextField(); Fontfont=newFont("TimersRoman",Font.BOLD,40); JButtonjbtadd=newJButton("添加"); JButtonjbtfind=newJButton("查找"); JButtonjbtclear=newJButton("清空"); JButtonjbtexit=newJButton("退出"); ArrayListal=newArrayList();1.3ArrayList 动态数组ArrayList,能够进行动态的增加和减少元素和灵活设置数组的大小,它本身实现了IOCollection和Ilist接口。 ArrayListal=newArrayList();声明的同时创建了动态数组al,后来程序中的添加、查找、删除、修改等都是通过对al操作来实现的。2.Note类2.1实现Serializable接口 为需要被序列化对象就是以类Note建立的对象实现Serializable接口,该接口没有要实现的方法,implementsSerializable只是为了标注该对象是可被系列化的,然后使用一个输出流来构造一个对象,接着使用ObjectOutputStream对象的writeObject(Objectobj)方法就可以将参数为obj的对象写出,要恢复的话则用输入流。2.2定义类 publicStringname; //姓名 publicStringzip; //邮政编码 publicStringaddress; //通信地址 publicStringtelephone; //电话号码 publicStringmobile; //手机号码 publicStringemail; //email publicNote(){} //默认的构造函数四、程序的功能1.录入联系人信息1.1联系人信息表表1联系人的信息表姓名邮政编码通信地址电话号码手机号码email李永兰223532安徽省蚌埠龙子湖区677689188956222121910924543@孙乃香300171天津市河东区12345618895685078118418861@李萍萍200030上海市徐汇区23456718895601887879790571@陈臣050000河北省石家庄市34567818895684770632748498@黄智超231200安徽省合肥市肥西县456789188956067162418968369@刘姣210000江苏省南京市345980132855265501948180943@叶晔100010北京市东城区678905188956374581491641068@进入程序运行界面后,单击按钮“添加”,依次将上表1中的联系人添加进入文件“note.dat”。1.2实现添加联系人方法 jbtadd.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){} });2.查询联系人2.1查询的方法在姓名标签里输入“XXX”,单击下按钮查询,就在图形用户界面上显示出相应的信息。2.2实现查询联系人方法jbtfind.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){}});3.删除指定的联系人信息3.1删除的方法先在姓名标签中写入“XXX”(需要删除人的姓名),单击按钮“查询”后,显示出的信息,然后单击按钮“清除”,将XXX联系人的信息删除。3.2实现删除联系人方法 jbtclear.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){} });4.退出通讯录管理系统 jbtexit.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){} });五、程序运行坏境 Windows7操作系统、JavaJDK1.7.0_0.02和NetBeans6.9.1集成开发环境六、系统测试1.通讯录管理系统运行图形用户界面 2.联系人信息添加 添加完每个联系人的信息后,按钮“添加”是被激活状态的,若该联系人已经添加过了,将会出现“错误提示”对话框,内容为“已经存在此记录”单击确定后,通讯录管理系统界面各个标签后的内容将自动清空。 若不小心忘记添加姓名标签内容,则会弹出“错误提示”对话框,内容为“无法添加名字为空的记录”。 2.联系人信息查找若制定查找姓名为“李永兰”的联系人信息,在姓名标签文本里输入“李永兰”,单击按钮“查找”按钮,就出现如下界面: 若输入的姓名“XXX”,文件中不含有的话,系统会弹出一个“温馨提示”对话框,内容为“无此记录哦”。单击“确定”按钮或者关闭,将返回图形用户界面。 出现以下界面: 3.删除指定联系人的信息若删除联系人“李萍萍”的通讯录信息,首先在姓名标签文本里输入“李萍萍”,按下按钮“查找”按钮,显示李萍萍联系人的信息;如下图图形用户界面: 然后鼠标单击“清空”按钮,就完成删除“李萍萍”联系人的功能。完成此步骤后,“清空”按钮被激活。如下图图形用户界面所示: 4.退出通讯录管理系统鼠标单击按钮“退出”,将关闭图形用户界面,并且退出系统。七、结论1.结束语通过这次通讯录管理系统的设计,我了解了更多关于软件开发的基础知识,了解了开发一项软件的难度,但是此次的课程设计时间有限,而且本人才疏学浅,有待更加进行学习和提高。通讯录管理软件开发项目的实施执行过程中遇到了很多的难题,但总的说来还算成功,该软件的各种功能性能都能满足设计规格需求的要求,也能够基本满足用户的需求。而事实上,该软件产品并不十分完美。没有能够实现:对输入内容进行判别,检查出错误或是不合理规则的输入,并进行对异常进行处理;对联系人信息保存到数据文件,并可以在下一次执行程序时继续使用;还可以给文件添加索引;还有一些创新的功能,比如为通讯录管理系统添加登录界面,连接数据文件进行登录验证等。

本通讯录管理系统软件需要进一步改进和提高开发技术,完善系统功能。2.致谢在本次课程设计过程中,从马程老师给的课程设计题目,我有认真的完成此次任务,但是其中出现了很多的问题,老师您也有细心地细心指导,使我对计算机编程有了更深刻的了解和认识,学到了在此表示衷心地感谢。在整个过程中,我在图书馆图书室中查阅了大量的有关书籍,并借阅管理系统的资料和网站,在自己的努力和朋友、同学的鼓励下,终于完成了本次课程设计。在此也感谢朋友与同学的支持。在为期两周的课程设计过程中,使我熟悉了Java编程语言,但也充分展现自己的不足方面还很多,希望在以后的学习生活当中努力学习,积极参与实践,提高编程的水平,为成为计算机人才打好基础。3.参考文献[1]宋波.Java程序设计——基于JDK6和NetBeans实现.北京:清华大学出版社,2013[2]宋波.Java应用开发教程.北京:电子工业出版社,2002[3]宋波,董晓梅.Java应用设计.北京:人民邮电出版社,2002[4]PatrickKeegan,LudovicChampenois等著,吴玉亮(译).NetBeansIDE中文版用户指南。北京:机械工业出版社,2006[5]朗波.Java语言程序设计.北京:清华大学出版社,2005附:程序源代码:importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.util.*;classNoteimplementsSerializable{publicStringname;publicStringzip;publicStringaddress;publicStringtelephone;publicStringmobile;publicStringemail;publicNote(){}}publicclassAddressListSystemextendsJFrame{JLabeltitle=newJLabel("通讯录管理"); JLabelname=newJLabel("姓名"); JLabelzip=newJLabel("邮政编码"); JLabeladdress=newJLabel("通信地址"); JLabeltelephone=newJLabel("电话号码"); JLabelmobile=newJLabel("手机号码"); JLabelemail=newJLabel("email"); JTextFieldjtxtname=newJTextField(); JTextFieldjtxtzip=newJTextField(); JTextFieldjtxtaddr=newJTextField(); JTextFieldjtxttel=newJTextField(); JTextFieldjtxtmob=newJTextField(); JTextFieldjtxtemail=newJTextField(); Fontfont=newFont("TimersRoman",Font.BOLD,40); JButtonjbtadd=newJButton("添加"); JButtonjbtfind=newJButton("查找"); JButtonjbtclear=newJButton("清空"); JButtonjbtexit=newJButton("退出"); ArrayListal=newArrayList(); AddressListSystem(Strings){ super(s); Containercp=getContentPane();cp.setBackground(Color.PINK); cp.setLayout(null); title.setFont(font);title.setForeground(Color.cyan); title.setBounds(130,20,300,60); name.setBounds(50,100,75,25); zip.setBounds(50,150,75,25); address.setBounds(50,200,75,25); telephone.setBounds(50,250,75,25); mobile.setBounds(50,300,75,25); email.setBounds(50,350,75,25); jtxtname.setBounds(150,100,100,25); jtxtzip.setBounds(150,150,100,25); jtxtaddr.setBounds(150,200,250,25); jtxttel.setBounds(150,250,150,25); jtxtmob.setBounds(150,300,150,25); jtxtemail.setBounds(150,350,250,25); jbtadd.setBounds(50,400,75,25); jbtfind.setBounds(150,400,75,25); jbtclear.setBounds(250,400,75,25); jbtexit.setBounds(350,400,75,25); jbtadd.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ if(jtxtname.getText().equalsIgnoreCase("")){ JOptionPane.showMessageDialog(null,"无法添加名字为空的记录","错误提示",JOptionPane.INFORMATION_MESSAGE); jtxtname.setText(""); jtxtzip.setText(""); jtxtaddr.setText(""); jtxttel.setText(""); jtxtmob.setText(""); jtxtemail.setText(""); return;}Notenote=newNote();=jtxtname.getText();note.zip=jtxtzip.getText();note.address=jtxtaddr.getText();note.telephone=jtxttel.getText();note.mobile=jtxtmob.getText();note.email=jtxtemail.getText();try{ObjectInputStreamin=newObjectInputStream(newFileInputStream("note.dat"));al=(ArrayList)in.readObject();in.close();}catch(Exceptionex){System.out.println("添加信息时文件输入有误哦");}try{ObjectOutputStreamout=newObjectOutputStream(newFileOutputStream("note.dat",true));Notetemp=newNote();inti;for(i=0;i<al.size();i++){ temp=(Note)al.get(i); if(.equalsIgnoreCase(jtxtname.getText()))break;}if(!al.isEmpty()&&i!=al.size()){ JOptionPane.showMessageDialog(null,"已经存在此记录","错误提示",JOptionPane.INFORMATION_MESSAGE);}else{al.add(note);out.writeObject(al);}out.close();}catch(Exceptionex){System.out.println("添加信息时文件输出有误哦");}jtxtname.setText("");jtxtzip.setText("");jtxtaddr.setText("");jtxttel.setText("");jtxtmob.setText("");jtxtemail.setText("");}});jbtfind.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ try{ObjectInputStreamin=newObjectInputStream(newFileInputStream("note.dat"));al=(ArrayList)in.readObject();in.close();}catch(Exceptionex){System.out.println("查询时文件打开有误哦");}Notetemp=newNote();inti;for(i=0;i<al.size();i++){temp=(Note)al.get(i);if(.equalsIgnoreCase(jtxtname.getText()))break;}if(!al.isEmpty()&&i!=al.size()){jtxtzip.setText(temp.zip);jtxtaddr.setText(temp.address);jtxttel.setText(temp.telephone);jtxtmob.setText(temp.mobile);jtxtemail.setText(temp.email);}else{jtxtname.setText("");jtxtzip.setText("");jtxtaddr.setText("");jtxttel.setText("");jtxtmob.setText("");jtxtemail.setText("");JOptionPane.showMessageDialog(null,"无此记录哦","温馨提示",JOptionPane.INFORMATION_MESSAGE);}}});jbtclear.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){try{ObjectOutputStreamout=newObjectOutputStream(newFileOutputStream("note.dat"));al.clear();out.close();}catch(Exceptionex){System.out.println("清除文件时有误哦");}jtxt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论