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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

JAVA版班级通讯录含代码.docx

1、JAVA版班级通讯录含代码工商学院Java程序设计课程设计项目名称: 班级通讯录程序设计 学生: 伟 学 号: 14404036 班 级: 14计科数据处理实验班 指导教师: 喻晓 2015年 12月 13 日1选题背景1.1国外选题现状通讯录在当今的日常生活工作中是十分普及的,每个人都拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯信息。随着时代的发展,人们的联系方式及信息变得复杂多样,通讯录信息大量增加,导致管理这些信息资料就成了问题。直接操作来查找,添加,修改,删除这些信息,由于数据多,工作量十分巨大,查找,编辑,都很困难,而且极易出错,容易造成资料里的混乱与丢失。所以,运

2、用文件或数据处库技术建立一个通讯录资料系统十分必要,使通讯录资料管理工作规化,程序化,避免资料管理中的混乱。提高信息处理速度和准确性,能够及时准确有效的查询和修改通讯录。1.2开发技术简介1.2.1GUI技术简介GUI,用户与程序之间可以方便地进行交互。Java包含了许多支持GUI设计的类,如按钮,菜单,列表,文本框等组件类,同时要包含窗口,面板等容器类。Java1.0刚出现时,包含一个用于基本GUI编程的类库,Sun把它叫做抽象窗体工具箱(Abstract Window Toolkit,AWT).AWT库处理用户界面元素的方法是把这些元素的创建及其行为委托给每个目标平台(Window,Sol

3、aris,Macintosh等)的本地GUI工具进行处理。不同平台的AWT用户界面而存在着不同的bug。程序员们必须在每一个平台上测试他们的应用程序,他们因此嘲笑AWT是“一次编写,到处调试”。1.2.2输入输出流简介输入/输出时,数据在通信通道中流动。所谓“数据流(stream)”指的是所有数据通信通道之中,数据的起点和终点。信息的通道就是一个数据流。只要是数据从一个地方“流”到另外一个地方,这种数据流动的通道都可以称为数据流。输入/输出是相对于程序来说的。程序在使用数据时所扮演的角色有两个:一个是源,一个是目的。若程序是数据流的源,即数据的提供者,这个数据流对程序来说就是一个“输出数据流”

4、(数据从程序流出)。若程序是数据流的终点,这个数据流对程序而言就是一个“输入数据流”(数据从程序外流向程序)。1.3系统测试环境a被测试软件系统的名称课程设计项目班级通讯录程序设计b系统任务提出者喻晓老师c系统开发者14计科数据处理实验班:伟d系统用户及安装此软件的计算中心1-708机房、1-710机房、1-710机房、3-106机房。e测试环境与实际运行环境之间的差异以及这些差异对测试结果的影响测试环境: Windows2000/ XP、Windows10、JDK1.7、NetBeans。本系统运用的开发工具主要是Eclipse。Eclipse是一个开放源代码的、基于Java的可扩展开发平台

5、。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。该系统的设计还运用到文件的相关知识。Java使用File类创建的对象来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件读写权限等,文件对象并不涉及对文

6、件的读写操作。1.4功能模块及系统流程分析1.4.1功能模块 班级通讯录的功能模块有: (1)提供登录界面,保护班级成员个人信息; (2)添加:可以添加联系人到班级通讯录,依次输入学号、家庭住址、等,用户可以随时继续添加; (3)查询:可以通过学号查询班级成员; (4)修改:输入要修改的学号后,再依次输入学号、家庭住址、等即可完成修改; (5)删除:可以通过删除学号直接删除某个联系人的信息。1.4.2系统流程分析图1-1 登录界面流程图为了保证班级通讯录中同学的私人信息不被泄露,设计了此功能,此流程图是用户在进入通讯录之前所设的,使系统更加严密,只有用户输入正确的用户名和密码才能进入。保证了系

7、统的严密性和实用性,达到功能的完善。 图1-2主菜单流程图该流程图是主界面的总体功能图,即上面所显示的模块:添加模块、查找模块、删除模块、修改模块等。图1-3 添加功能流程图该流程图是为了实现添加班级成员功能的,在菜单选项中点击“录入学生基本信息”菜单项,便会进入信息录入界面,输入用户即将添加的人信息,包括:联系人、学号、手机号、地址,点击“录入”按钮,在此前,各项信息被写入到文件中保存,添加完成。 图1-4 删除功能流程图该流程图是为了实现删除功能的,点击主窗体中的“删除学生基本信息”菜单,即可输入联系人的学号,此过程中还需将读取文件写到数组中,之后删除该文件中的所有容。图1-5 查找流程图

8、该流程是为了实现查找功能而设计的,当用户需要查找某一个人的信息的时候,输入该学生的学号,点击查询,即可显示该生的所有信息。2功能设计2.1从技术角度分析实现的功能(1)图形用户界面设计中的功能表2-1 功能测试概要表序号功能容控件对象名备注1.添加学生JMenuItemStudentSituation子菜单(添加人)2.删除联系人JMenuItemDelete子菜单(删除人)3.修改联系人JMenuItemModifySituation子菜单(修改人)4.查找联系人JMenuItemInquest子菜单(查找人)5.修改联系人JButtonB1确定修改按钮6.修改联系人JButtonb2取消修

9、改按钮表2-2 文件测试概要表序号文件容类名类对象名备注1文件读ObjectInputStreamfile2创文件输出流FileOutputStreamout3文件写ObjectOutputStreamfile4创文件输入流FileInputStreamin2.2从系统角度分析实现的功能 个人通讯录管理系统设计的总体框图如下:图2-1 功能模块图 该个人通讯录管理系统总体功能主要包括以上几类:(1)添加联系人;(2)删除联系人;(3)修改联系人;(4)查找联系人。在图形用户界面中,用户可以根据自己的需要,点击界面上的菜单或按钮进行某一功能的选择,一旦选定了某个模块,便进入到下一个窗体界面,进而

10、实现你所要实现的功能操作。图2-2 菜单栏图 菜单栏中控件分布如上图所示,菜单栏:(编辑、操作)、编辑:(添加组名、添加联系人、删除联系人)、操作:(修改联系人、查找联系人)。3详细设计3.1界面设计图3-1 用户登录界面图为了保证班级通讯录中同学的私人信息不被泄露,设计了此功能,此流程图是用户在进入通讯录之前所设的,使系统更加严密,只有用户输入正确的用户名和密码才能进入。保证了系统的严密性和实用性,达到功能的完善。如果正确,则有如下界面图:图3-2 主界面图此界面是登录进去后的欢迎界面,右上角的“菜单选项”为主菜单,除了退出功能外,在进入其他功能是随时都可以点击菜单选项用来进入不同的功能。首

11、先我们来进入录入界面,录入界面如下图: 图3-3 录入界面图图3-4 录入界面提示图 进入录入界面后,依次输入学号、选择性别、专业、住址、。然后点击录入,将信息保存到文件中,如果学号输入重复,则会提示:“该生基本信息已存在,请到修改页面修改”。图3-5 信息修改图 在修改界面中首先输入要修改的学号,接着输入新的,选择性别、专业、住址、等, 如果大面积的输错,则可以点击右下方的重置按钮,以上错误信息便会清空,重新输入正确信息。 图3-6 查询界面图 在查询界面中,只需要输入学号,点击“查询”即可显示该同学的所有信息。图3-7 删除功能界面图图3-8 删除功能界面图该界面图是删除功能的输入界面图,

12、在输入框中输入要删除的学号,点击“删除”后,会提示是否删除该同学的信息,同时该同学的信息会显示出来以便于确认信息。3.2关键代码说明(1)主类StudentManager.java 1)成员变量表3-1 主要成员变量表成员变量描述变量类型变量名称基本信息录入界面基本信息修改界面基本信息查询界面基本信息删除界面菜单选项 存基本信息的散列表存放散列表的文件StudentSituationModifySituationInquestDeleteJMenuItemHashtableFile基本信息录入基本信息修改基本信息查询基本信息删除录入,修改,查询,删除基本信息file 2)方法表3-2 主要方法

13、表名称功能备注StudentManageractionPerformedmain创建程序主窗口 处理ActionEvent事件程序开始运行构造方法接口方法(2)学生对象 1)成员变量表3-3 主要成员变量表描述变量类型变量名称学号所学专业家庭住址出生性别StringStringStringStringStringStringNumberNameDisciplingGradeBorthSex 2). 方法表3-4 主要方法表名称功能SetnumberSetnumberSetnameSetnamesetDiscipingsetDiscipingsetGradesetGradesetBorthset

14、BorthsetSexsetSex设置学号获取学号设置获取设置所学专业获取所学专业设置家庭住址获取家庭住址设置获取设置性别获取性别public class StudentManager extends JFrame implements ActionListener StudentSituation 基本信息录入=null; /先把基本信息设置为空 ModifySituation 基本信息修改=null; Inquest 基本信息查询=null; Delete 基本信息删除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,查询,删除,退出

15、; /设置窗口的标签 Container con=null;/容器置为空 Hashtable 基本信息=null; /散列表置为空 File file=null;/文件置为空 CardLayout card=null;/布局管理置为空 JLabel label; JPanel pCenter; public StudentManager()/成员变量 setTitle(欢迎进入班级管理系统); 录入=new JMenuItem(录入学生基本信息); 修改=new JMenuItem(修改学生基本信息); 查询=new JMenuItem(查询学生基本信息); 删除=new JMenuItem(

16、删除学生基本信息); 退出=new JMenuItem(退出本系统);/标签设置 退出.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) System.exit(0);/退出系统 ); bar=new JMenuBar(); fileMenu=new JMenu(菜单选项);/设置主菜单 fileMenu.add(录入); fileMenu.addSeparator(); fileMenu.add(修改); fileMenu.addSeparator(); fileMenu

17、.add(查询); fileMenu.addSeparator(); fileMenu.add(删除); fileMenu.addSeparator(); fileMenu.addSeparator(); fileMenu.add(退出); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel(欢迎进入班级管理系统!,label.CENTER);/设置主页面的欢迎语句 label.setFont(new Font(隶书,Font.BOLD,30);/设置字体以及字的大小 label.setForeground(Color.blue);/设置

18、字体颜色 基本信息=new Hashtable();/新建一个散列表 录入.addActionListener(this); 修改.addActionListener(this); 查询.addActionListener(this); 删除.addActionListener(this); card=new CardLayout();/新的布局管理 con=getContentPane();/定义容器 pCenter=new JPanel(); pCenter.setLayout(card); file=new File(学生基本信息.txt);/新建一个文件 if(!file.exists

19、()/判断指定位置的文件是否存在 try FileOutputStream out=new FileOutputStream(file);/创建一个文件输出流 ObjectOutputStreamobjectOut=new ObjectOutputStream(out);/写入文件 objectOut.writeObject(基本信息);/对象为“基本信息” objectOut.close();/关闭文件 out.close(); catch(IOException e)/捕获IO(输入输出)异常 基本信息录入=new StudentSituation(file); 基本信息修改=new Mo

20、difySituation(file); 基本信息查询=new Inquest(this,file); 基本信息删除=new Delete(file); pCenter.add(欢迎语界面,label); pCenter.add(录入界面,基本信息录入); pCenter.add(修改界面,基本信息修改); pCenter.add(删除界面,基本信息删除); con.add(pCenter,BorderLayout.CENTER);/将pCenter 加入到容器中 采用边界布局方式 将pCenter 居中 con.validate(); addWindowListener(new Window

21、Adapter()/给窗口注册一个事件监听器 public void windowClosing(WindowEvent e) System.exit(0); ); setVisible(true);/将图形界面设置为可见的 setBounds(100,50,420,380);/设置窗口的大小 validate(); 以上是使用对象流读写文件的部分代码,ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。通过在流中使用文件可以实现对象的持久存储。如果流是网络套接字流,则可以在

22、另一台主机上或另一个进程中重构对象。 只能将支持 java.io.Serializable 接口的对象写入流中。每个 serializable 对象的类都被编码,编码容包括类名和类签名、对象的字段值和数组值,以及从初始对象中引用的其他所有对象的闭包。4测试系统在登录时,若用户名或密码中有一项与之所设不同时,即会弹出提示输入错误的窗体,提示错误的窗体如下图所示: 图4-1 错误提示界面图 此界面是提示界面,即之前登录输入错误时显示,此界面的设计使系统更加优化,因为用户的输入必定存在与用户名或密码不相同的情况,此界面的设计在现实中合情合理,也使用户瞬间知道自己输入的是对是错。在实现录入功能时,如若

23、用户输入的同学学号之前录入过时,则有下图提示:图4-2 录入功能提示界面图在实现查找、删除、修改功能时,倘若需查找、删除、修改的联系人在通讯录中不存在,则系统会提示:“该学号不存在”的提示话语,如下图:图4-3 错误提示界面图总结经过十多天的努力终于把课程设计给做完了,总算是完成了这么些天的任务了。在刚做课程设计的时候,真的是什么都不懂,看着题目有点无从下手的感觉,这时才真切的感受到和别人是差距,平时不努力到了关键时刻就不知所措了。接着,就从书上找例子,仿照书上的方法一步一步的,慢慢的知道了一些重点。但是,在课程设计过程中很多功能都不能实现,按钮不能响应相应的功能,就去图书馆找书,同时问问同学

24、老师,就这样一点一点的做,终于在他们的帮助下功能一点一点的实现了。在课程设计过程中,看着那些一团糟的代码真的很想不做,很想放弃,但是后来还是坚持了下来。所以真的应了那句话:没有做不到,只有不想做。参考文献1基温.Java程序开发教程M.:华大学,20042跃平.Java信息管理系统开发实例导航M.:人民邮电,20053毕广吉.Java程序设计实例教程M. :冶金工业,20074王保罗.Java面向对象程序设计M. :清华大学,2003 5高林,周海燕.Jsp网上书店系统与案例分析M. :人民邮电,20046新,管磊.Java编程实战宝典M.:清华大学,2014:238-274.7PaulGra

25、ham.黑客与画家M.:人民邮电,2004:59-278.8 严蔚敏.数据结构(C语言版)M.:清华大学,2010:98-76.9 云清,庆红,揭安全.数据结构(C语言版第三版)M.:人民邮电,2014:169-172.10云舟工作室.Python编程指南M.:国水利水电,2002附录:package Kn;/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and

26、open the template in the editor. */import javax.swing.JOptionPane;/* * * author Administrator */public class asd extends javax.swing.JFrame /* * Creates new form asd */ public asd() initComponents(); /* * This method is called from within the constructor to initialize the form. * WARNING: Do NOT mod

27、ify this code. The content of this method is always * regenerated by the Form Editor. */ SuppressWarnings(unchecked) / private void initComponents() setTitle(欢迎进入实验班班级通讯录系统); jTabbedPane1 = new javax.swing.JTabbedPane(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3

28、 = new javax.swing.JLabel(); id = new javax.swing.JTextField(); password = new javax.swing.JPasswordField(); dl = new javax.swing.JButton(); close = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText(实验班班级通讯录); jLabel2.setText(用户名); jLabel

29、3.setText(密码); dl.setText(登录); dl.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) dlActionPerformed(evt); ); close.setText(关闭); close.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) closeActionPerformed(evt); ); javax.swing.GroupLayout layout = new javax.swing.GroupLa

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

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