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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

通讯录管理系统Java课程设计Word文件下载.docx

1、总体设计1天详细设计1.5天编制源程序实现3.5天测试与修改1天撰写课设报告2天六、主要参考资料1 张广彬. Java课程设计案例精编(第二版).北京:清华大学出版社, 2011. 2 耿祥义. Java课程设计(第二版).北京:清华大学出版社, 2008.3 耿祥义JAVA大学实用教程北京:4 邹林达陈国君 Java2程序设计基础北京:清华大学出版社,20105 邹林达Java2程序设计基础实验指导北京:清华大学,2010指导教师(签名): 20 年 月 日1需求与总体设计11.1需求分析11.2本系统总体功能11.3系统流程图21.4本系统E-R图52详细设计82.1用户登录模块功能82.

2、2用户提示功能实现82.3帐户修改功能实现82.4主窗体功能82.5文件读取与新增模块功能93编码实现93.1用户登录模块代码93.2登陆按钮触发事件代码113.3主窗体代码123.4新增与文件读取模块代码194系统测试30总结331需求与总体设计1.1需求分析随着社会的发展,现代人的交际圈越来越大,接触的人也越来越多。面对着没完没了的通讯记录,过去的老式人为存储已远远满足不了需求,如果想查询,则需一个一个的翻阅,却怎么都找不到自己的需要的号码。所设计的通讯录系统正是在这种需求之下应运而生的,通讯录管理系统是一个非常通用的管理系统。很多地方都需要拥有自己的通讯录管理系统,以便对自己的同学、同事

3、、朋友等信息资料的管理及使用。所以在这两周的实训中,通讯录作为一种实用行的工具,有着不可估量的市场前景。1.2本系统总体功能模块图图1.1 系统总体功能模块图1.3系统流程图 系统数据流程图1.4本系统的E-R图普通用户实体E-R图 普通用户实体E-R图记录信息实体E-R图 记录信息实体E-R图多图之间的E-R图 多图之间的E-R图数据库表的设计 普通用户数据表列名数据类型长度是否为空用户名(主键)varchar20否密码char10是记录信息数据表 记录信息数据表姓名(主键)性别出生日期datetime8电子邮箱电话2详细设计2系统功能实现2.1用户登录模块功能登陆界面是进入系统的基础也是程

4、序最先开始的部分,而且在界面的搭配及程序的安全性上要有保证,第一个出现的界面要给人清爽的感觉,给用户一个好心情来操作。本模块用的图形界面类swing来做主要的支撑,其中对按钮和文本框的设计按通用的样式给出,这是为了便于用户理解和上手考虑。在安全性和易用性考虑上,通讯录也属于隐私范畴,必需要有保密措施,而欢迎界面又有太大的影响易用性,在易用性方面,该界面充份发挥了作用。输入用户名和密码后点击登陆即可。初始用户名和密码分别为admin和123456。2.2用户提示功能实现为了适时提醒用户,有必要设计提示框界面。提示框界面主要用于提示用户操作错误或下一步应该怎么做。因此用Jframe提供的类及接口能

5、很快的建立起一个简洁明了的提示框。由于提示框可在很多的地方用到,因此有必要在提示框上的Jlabel标签做空项,图中的Jlabel1标签本来是空的,现在为了要显示他的存在而加的。当调用该提示框的时候,将提示信息作为实参写入调用该提示框的方法中。达到一个程序多处用。该提示框的大部分代码与登陆界面的代码原理及方法用法相同,不多做说明。2.3帐户修改功能实现该模块采用在界面上依然用Jframe。在数据的输入输出上,用数据流的方式将数据快速输出到文件或调入内存中。在用户数量上控制在1个人,因为本程序以个人为中心,所以在用户上只能有1个用户,但可以修改用户名和密码。将用户数据存储在“CONFIG/ADMI

6、N.DAT”中。该模块增加了重置及对密码的校验功能。2.4主窗体功能主窗体作为GUI主界面,其功能是提供用户交互,实现通讯录功能。该界面采用可视化设计,在这里我主要做的是将界面组件的交互事件与实现逻辑功能的类连接起来,并在相关的事件处理程序中调用管理通讯录的一些方法。在该模块设计中主要是对窗体中显示出来的按钮进行设计,使各个按钮能够完成相应的功能,还包括了用户信息、登录时间、浏览等功能的实现。时间显示功能,当用户登录到系统中时,便可看到系统中当前显示的时间信息。此时间的显示代码是用线程实现的。首先定义了timeinfo为字符字段用来存放时间的信息,然后定义Run方法用来启动线程,其中包括对时、

7、分、秒的获得。最后用txttime.setText(timeInfo)语句格式化输出系统当前的时间。面板定义,本人在系统界面中加入了面板,把不同的按钮功能放入了不同的区域中加以区分,让用户的操作易懂使用更方便。激活按钮,当用户按动每个按钮时必要经过此功能的调用,主窗体中还包括了,对各类的调用,显示等功能,其代码在下面有详细介绍。2.5文件读取与新增模块功能该模块的主要功能为:为用户提供一个输入新号码的渠道,由于随着时间的增加,面对不同的需求,联系号码是必不可少的联系方式,老式电话簿已被淘汰,所以当用户想将新号码添加到电话本中时,可以选择主页面下的新增功能。这样就大大的提高了电话本功能的可扩展性

8、,为用户在使用时提供方便。在此模块内,用户如果想使用此功能,只需直接点击添加按钮,这时会进入新增记录的界面,让用户输入想添加的电话信息,系统会自动为该记录编号,当输入相应的信息后,点击保存按钮,会出现“保存成功”的字样。若记录文件不存在,则需初始化记录文件。初始化后方可输入记录。其中主要成员变量包括:lstUsers、fileName定义的各个成员变量;主要方法包括:save(User user)为构造方法,保存用户输入的记录信息;与intRecord()为接口方法,处理记录文件不存在时产生异常的事件。3编码实现3.1用户登录模块代码 public Welcome() Container co

9、ntentPane=getContentPane(); contentPane.setBackground(Color.yellow); /背景色设置为黄色 contentPane.setLayout(null); pictureJLablel=new JLabel(); /加载图片标签 pictureJLablel.setIcon(newImageIcon(config/snapshot20070703214240.jpg); pictureJLablel.setBounds(50,120,500,250); pictureJLablel.setHorizontalAlignment(JLa

10、bel.CENTER); contentPane.add(pictureJLablel); user=new JTextField(); /用户名接收框 user.setBounds(150, 30, 80, 25); pictureJLablel.add(user); psw=new JPasswordField(); /密码接收框 psw.setBounds(150, 60, 80, 25); pictureJLablel.add(psw); btna=new JButton(登陆); /登陆按钮设置及触发事件 btna.setBounds(200, 380, 60, 25); conte

11、ntPane.add(btna); btna.addActionListener(this); btna.addActionListener(new ActionListener() public void actionPerformed( ActionEvent e) String a=,; try a=adminsave.get(); catch(Exception x) if( a0=user.getText()&a1=psw.toString() setVisible(false); new MainWindow(); else if(user.getText()=) new mess

12、ageb(用户名不能为空1 else if(psw.toString()=密码不能为空! else用户名或密码错误! ); btna1=new JButton(退出 /退出按钮及触发事件 btna1.setBounds(340, 380, 60, 25); contentPane.add(btna1); btna1.addActionListener(this); btna1.addActionListener(new ActionListener() setVisible(false);代码省略了对变量了设置、部分标签和按钮的设置代码以及JAVA包的导入代码。本代码中,密码用Jpasswor

13、dField文本框来接受数据,好达到保密的效果。对登陆容易出现的状况做了点保护措施,如用户名或密码不能为空等3.2登陆按钮触发事件代码:if(jTextField2.getText()!=jTextField3.getText() new messageb(两次密码输入相同请重新输入! else if(jTextField2.getText()=|jTextField3.getText()= 密码项不能为空! else if(jTextField1.getText()=用户名不能为空! else try adminsave.save(jTextField1.getText(),jTextFie

14、ld2.getText(); catch(Exception e) 重置按钮触发事件代码:jTextField1.setText(jTextField2.setText(jTextField3.setText(对于文件存储的完整代码:import java.io.*;public class adminsave public static final void save(String a,String b) throws IOException DataOutputStream out=null; out=new DataOutputStream(new BufferedOutputStrea

15、m(new FileOutputStream(config/admin.dat); out.writeUTF(a); out.writeUTF(b); finally out.close(); public static final String get() throws IOException DataInputStream in=null; String pp= in=new DataInputStream(new BufferedInputStream(new FileInputStream( pp0=in.readUTF(); pp1=in.readUTF(); in.close();

16、 return pp; 3.3主窗体代码/*浏览按钮与操作按钮*/ JButton btnFirst;/第一条 JButton btnPrevious;/上一条 JButton btnNext;/下一条 JButton btnLast;/最后一条 JButton btnAdd ;/增加 JButton btnSave;/保存 JButton btnExit ;/退出 JButton btnAbout ;/关于 JButton btnCx; /查寻 JButton btnEt; /帮助 JLabel lblSaved;/提示已保存的标签 JButton btnPhoto;/浏览图片的按钮 /*时

17、间*/ Thread clock; public String timeInfo=; public void start() /开始进程 if (clock=null) /如果进程为空值 clock=new Thread(this); /实例化进程 clock.start(); /开始进程 public void run() /运行进程 while (clock!=null) /调用paint方法重绘界面 try Calendar now=new GregorianCalendar(); /实例化日历对象 /输出信息 int hour=now.get(Calendar.HOUR_OF_DAY)

18、; /得到小时数 int minute=now.get(Calendar.MINUTE); /得到分数 int second=now.get(Calendar.SECOND); /得到秒数 if (hour=9) timeInfo+=0+hour+: /格式化输出 else timeInfo+=hour+ if (minute=9)+minute+ else timeInfo+=minute+ if (second+second; timeInfo+=second; txttime.setText(timeInfo);/输出时间 timeInfo= Thread.sleep(1000); /线

19、程暂停一秒(1000毫秒) catch (InterruptedException ex) ex.printStackTrace(); /输出出错信息 public void stop() /停止进程 clock=null; /*窗体方法的实现*/ public MainWindow() start(); this.setTitle(通讯录 this.setSize(350, 430); this.setLocationRelativeTo(null);/窗口居中 this.setResizable(false); this.setDefaultCloseOperation(JFrame.EX

20、IT_ON_CLOSE); bo = new AnNiu(); /面板 Container con = this.getContentPane(); con.setLayout(null); /设置此容器的布局管理 JLabel lblNum = new JLabel(用户编号: lblNum.setBounds(20, 20, 60, 25);/标签位置 con.add(lblNum); txtNum = new JTextField(); txtNum.setBounds(90, 20, 100, 25);/文本框位置 txtNum.setEditable(false);/用户编号文本框不

21、可变 con.add(txtNum); JLabel lblName = new JLabel(姓 名: lblName.setBounds(20, 55, 60, 25); con.add(lblName); txtName = new JTextField(); txtName.setBounds(90, 55, 100, 25); con.add(txtName); JLabel lblAge = new JLabel(年 龄: lblAge.setBounds(20, 90, 60, 25); con.add(lblAge); txtAge = new JTextField(); tx

22、tAge.setBounds(90, 90, 50, 25); con.add(txtAge); JLabel lblSex = new JLabel(性 别: lblSex.setBounds(20, 125, 60, 25); con.add(lblSex); rBtnMale = new JRadioButton(男 rBtnMale.setBounds(90, 125, 50, 25); rBtnMale.setSelected(true); con.add(rBtnMale); rBtnFemale = new JRadioButton(女 rBtnFemale.setBounds(

23、150, 125, 50, 25); con.add(rBtnFemale); ButtonGroup btnGroup = new ButtonGroup(); btnGroup.add(rBtnMale); btnGroup.add(rBtnFemale); JLabel lblTel = new JLabel(联系方式: lblTel.setBounds(20, 160, 60, 25); con.add(lblTel); txtTel = new JTextField(); txtTel.setBounds(90, 160, 150, 25); con.add(txtTel); JLabel lblPhoto = new JLabel(照片路径: lblPhoto.setBounds(20, 195, 60, 25); con.add(lblPhoto); txtPhotoAddr = new JTextField(); txtPhotoAddr.setBounds(90, 195, 150, 25); con.add(txtPhotoAddr); lblPhotoShow = new JLabel( 照片 lblPhotoShow.s

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

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