欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    java个人通讯录课程设计报告.doc

    • 资源ID:2386809       资源大小:1.13MB        全文页数:30页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java个人通讯录课程设计报告.doc

    别山东交通学院面向对象课程设计个人通信录管理信息系统的设计与实现院(系)别 信息科学与电气工程学院 班 级 学 号 姓 名 指导教师 时 间 2014-08-252014-09-5 课 程 设 计 任 务 书 题 目 个人通讯录管理系统 院 (部) 信息科学与电气工程学院 专 业 计算机科学与技术 班 级 学生姓名 学 号 08 月 25 日至 09 月 5 日 共 2 周指导教师(签字) 院 长(签字) 年 月 日一、 设计内容及要求目的:通过本题目的设计,加深对面向对象程序设计技术的理解,掌握利用数据库编写小型程序的基本过程和方法。 任务:1) 利用面向对象编程技术,完成个人信息的存储管理;2) 选择系统开发平台(JAVA或.NET)和软件架构(C/S、单机版);3) 要求系统能够对联系人的系统进行录入、查询、编辑、导入和导出等。二、 设计原始资料三、设计完成后提交的文件和图表2图纸部分:程序流程图程序开始菜单界面面登陆界面功能界面增加界面查找界面修改界面程序结束进入功能总体功能数据功能显示功能四、进程安排8月258月26,程序流程图,程序设计总框图8月278月28,数据库连接,删除部分代码8月29,登陆界面代码9月19月4添加、修改、查找、导出数据库部分代码9月5号 答辩。五、主要参考资料1 java语言及其应用 董佑平,夏冰冰 清华大学出版社 2012成 绩 评 定 表作品成绩报告成绩口试(答辩)成绩总评成绩目 录1课程设计概述11.1个人通讯录功能概述11.2开发环境概述12个人通讯录系统总体设计12.1个人通讯录总体设计思想12.2总体设计流程图23个人通讯录系统详细设计24程序测试34.1登陆界面34.2删除界面44.3添加界面54.4查找实现6设计体会及今后的改进意见10课程设计概述本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力2本次课程设计主要目的及要求:设计一个通讯录管理软件,要求如下:增加记录、删除记录、显示所有记录、查询记录、文件备份、退出。通讯录记录信息包括:姓名,电话,email等。(1)通讯录的每一条信息包括姓名,单位,电话!(可用数组或数据库);(2)输入功能:可以一次完成若干条信息的输入;(3)显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示);(4)查找功能:完成按姓名查找通讯信息;(5)删除功能:完成按姓名删除通讯信息;(6)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。3.设计思想:个人通讯录件的功能模块有:(1)提供登陆界面,方便用户进入,满足需求;(2)添加:可以添加通讯录记录,依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司地址、E-Mail地址、家庭住址、组别、备注后,会提示是否继续添加;(3)显示:可以以表格形式输出所有通讯录里的记录;(4)查询:可以用姓名查询;(5)修改:输入欲修改的那个人的名字后,再依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司地址、E-Mail地址、家庭住址、组别、备注即可完成修改;(6)删除:可以直接删除多余的通讯录记录;(7)帮助:可以在帮助里面修改用户密码;(8)导出数据库:可以将数据库以文本txt格式导出。程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。1.1 总体设计流程图程序开始菜单界面面累加统计重新统计清屏界面帮助界面退出界面程序结束累加功能重记功能清屏功能帮助功能图2-1 总体设计流程2 程序测试2.1 登陆界面图4-1 登陆界面相关代码:public Loginframe() login = new JDialog(Myaddress.myFrame, "个人通讯录登入界面", true);login.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);login.setLocationRelativeTo(null);login.setLayout(new GridLayout(3, 0);username = new TextField(10);password = new TextField(10);username.setText("");password.setText("");certain = new JButton("certain");cancel = new JButton("cancel");certain.addActionListener(new LoginIn();cancel.addActionListener(new LoginIn();JLabel lb1 = new JLabel("用户名 :");JLabel lb2 = new JLabel("密 码 :");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();p1.add(lb1);p1.add(username);p2.add(lb2);p2.add(password);password.setEchoChar('*');p3.add(certain);p3.add(cancel);login.setSize(300, 200);login.add(p1);login.add(p2);login.add(p3);login.setVisible(true);login.pack();public static void main(String args) new Loginframe();点击“certain”,登录成功,点击确定,进入个人通讯录管理系统, 个人通讯录管理系统界面相关代码:public Loginframe() login = new JDialog(Myaddress.myFrame, "个人通讯录登入界面", true);login.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);login.setLocationRelativeTo(null);login.setLayout(new GridLayout(3, 0);username = new TextField(10);password = new TextField(10);username.setText("");password.setText("");certain = new JButton("certain");cancel = new JButton("cancel");certain.addActionListener(new LoginIn();cancel.addActionListener(new LoginIn();JLabel lb1 = new JLabel("用户名 :");JLabel lb2 = new JLabel("密 码 :");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();p1.add(lb1);p1.add(username);p2.add(lb2);p2.add(password);password.setEchoChar('*');p3.add(certain);p3.add(cancel);login.setSize(300, 200);login.add(p1);login.add(p2);login.add(p3);login.setVisible(true);login.pack();public static void main(String args) new Loginframe();2.点击左上角的“文件导出数据库”,public Fdkeep() fdsave = new JDialog(Myaddress.myFrame, "导出数据", true);fdsave.setLocationRelativeTo(null);fdsave.setLayout(new GridLayout(2, 0);JLabel labelSave = new JLabel("输入保存的完整的路径:");JLabel labele1 = new JLabel("例如:D:" + "" + "w.text");saveok = new JButton("save");savegp = new JButton("give up");lbSave = new TextField(10);saveok.addActionListener(new FileExportDBAction();savegp.addActionListener(new FileExportDBAction();JPanel p9 = new JPanel();JPanel p10 = new JPanel();p9.add(labelSave);p9.add(lbSave);p9.add(labele1);p10.add(saveok);p10.add(savegp);fdsave.add(p9);fdsave.add(p10);fdsave.pack();fdsave.setVisible(true);2.2 添加界面点击“保存”将新加的信息加入数据库,系统会告知“添加成功”。相关代码:public class Panelframeaction implements ActionListener String sql1;Connection con;Statement stmt;public void actionPerformed(ActionEvent e) if (JButton) e.getSource().getText().equals("保存") String nname, sx, bday, mphone, phone, compay, email, home, group, note, msnqq;nname = Panelframe.lbName.getText();sx = Panelframe.sex.getSelectedItem();bday = Panelframe.BirthdayYear.getSelectedItem() + "-"+ Panelframe.BirthdayMonth.getSelectedItem() + "-"+ Panelframe.BirthdayDay.getSelectedItem();mphone = Panelframe.lbMobilephone.getText();phone = Panelframe.lbTelephone.getText();compay = Panelframe.lbCompany.getText();email = Panelframe.lbMail.getText();home = Panelframe.lbaddress.getText();group = Panelframe.Group.getSelectedItem();note = Panelframe.lbNote.getText();msnqq = Panelframe.lbMail.getText();try con = new Connect().getConnection();stmt = con.createStatement();sql1 = "INSERT INTO address " + "VALUES('" + nname + "','"+ sx + "'," + bday + ",'" + mphone + "','" + phone+ "','" + compay + "','" + email + "','" + home+ "','" + group + "','" + note + "','" + msnqq+ "')"stmt.executeUpdate(sql1);JOptionPane.showMessageDialog(null, "添加成功");Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(new Image();Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true);stmt.close();con.close(); catch (Exception ex) ex.printStackTrace();if (JButton) e.getSource().getText().equals("取消") Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(new Image();Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true);if (JButton) e.getSource().getText().equals("退出查询界面") Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(new Image();Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true);if (JButton) e.getSource().getText().equals("保存修改") String sx, bday, mphone, phone, compay, email, home, group, note, msnqq;sx = Panelframe.sex.getSelectedItem();bday = Panelframe.BirthdayYear.getSelectedItem() + "-"+ Panelframe.BirthdayMonth.getSelectedItem() + "-"+ Panelframe.BirthdayDay.getSelectedItem();mphone = Panelframe.lbMobilephone.getText();phone = Panelframe.lbTelephone.getText();compay = Panelframe.lbCompany.getText();email = Panelframe.lbMail.getText();home = Panelframe.lbaddress.getText();group = Panelframe.Group.getSelectedItem();note = Panelframe.lbNote.getText();msnqq = Panelframe.lbMail.getText();try con = new Connect().getConnection();stmt = con.createStatement();sql1 = "update address set 性别='" + sx + "' , 生日= " + bday+ " , 移动电话='" + mphone + "' , 固定电话='" + phone+ "'" + " , 公司地址='" + compay + "' , EMail='"+ email + "' , 家庭地址='" + home + "' , 组别= '"+ group + "' , 备注='" + note + "' , MSNQQ='"+ msnqq + "' where 姓名='" + QueryFrame.n + "'"int aa = stmt.executeUpdate(sql1);stmt.hashCode();System.out.print(QueryFrame.n);if (aa > 0) JOptionPane.showMessageDialog(null, "修改成功");Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(new Image();Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true); else JOptionPane.showMessageDialog(null, "修改失败");stmt.close();con.close(); catch (Exception ex) ex.printStackTrace();选择“编辑删除”,按照提示输入删除的用户名点击“删除”后,则系统会提示“删除成功”相关代码:public class deleteFrameaction implements ActionListener String sql;Connection con;Statement stmt;public void actionPerformed(ActionEvent e) deleteFrame.delFrame.setVisible(false);/删除界面不可见if (JButton) e.getSource().getText().equals("删除") String nn = deleteFrame.lbDel.getText();/try con = new Connect().getConnection();stmt = con.createStatement();sql = "delete from address where 姓名=" + "'" + nn.trim() + "'"stmt.executeUpdate(sql);JOptionPane.showMessageDialog(null, "删除成功");stmt.close();con.close();/结束连接 catch (Exception ex) System.out.println("Exception:" + ex.getMessage();deleteFrame.lbDel.setText("");if (JButton) e.getSource().getText().equals("放弃") deleteFrame.delFrame.setVisible(false);点击“文件按姓名查找”,输入所需要查找的用户名图4-13 查找记录点击“查询”,系统会对数据库进行查找,并提示“查找结束”相关代码:public QueryFrame() findFrame = new JDialog(Myaddress.myFrame, "查找记录", true);/查找可见findFrame.setLocationRelativeTo(null);/查找地址不为空findFrame.setLayout(new GridLayout(2, 0);/网格大小JLabel labelFind = new JLabel("输入所要查询的用户名:");findok = new JButton("查询");findgp = new JButton("撤消");lbFind = new TextField(10);findok.addActionListener(new QueryAction();findgp.addActionListener(new QueryAction();JPanel p4 = new JPanel();/容器JPanel p6 = new JPanel();p4.add(labelFind);p4.add(lbFind);p6.add(findok);p6.add(findgp);findFrame.add(p4);findFrame.add(p6);findFrame.pack();findFrame.setVisible(true);以上通过了正确查找和错误两方面充分论证了查找功能的正常运行。点击文件“编辑查找全部”,则会弹出一个空白的查找结果界面,这是因为在程序设计中默认的是不显示所得的信息图4-18 查找全部界面然后点击“显示查询结果”,即可显示出全部查询结果。public class QueryAllAction implements ActionListener String sql;Connection con;Statement stmt;public void actionPerformed(ActionEvent e) if (JButton) e.getSource().getText().equals("显示查询结果") String nm, sx, mp, ph, em, ca, ha, nb, gp, lbMQ, all;boolean bdr;Date bd;try con = new Connect().getConnection();stmt = con.createStatement();sql = "SELECT*FROM address"ResultSet ws = stmt.executeQuery(sql);while (ws.next() nm = ws.getString(1);sx = ws.getString(2);bd = ws.getDate(3);mp = ws.getString(4);ph = ws.getString(5);ca = ws.getString(6);em = ws.getString(7);ha = ws.getString(8);gp = ws.getString(9);nb = ws.getString(10);lbMQ = ws.getString(11);all = "姓名" + nm + " 性别" + sx + " 生日" + bd+ " 移动电话" + mp + " 固定电话" + ph + " MSN/QQ"+ lbMQ + " 公司地址" + ca + " EMail" + em+ " 家庭地址" + ha + " 组别" + gp + " 备注" + nb+ "n"QueryAllFrame.lbdem.append(all);stmt.close();con.close(); catch (Exception ex)System.out.println("Exception:" + ex.getMessage();if (JButton) e.getSource().getText().equals("退出全部查询") QueryAllFrame.lbdem.setText("");QueryAllFrame.demFrame.setVisible(false);数据库建表:密码修改功能无法实现至此,个人通讯录管理系统的调试运行全部完成。设计体会及今后的改进意见在此次Java开发过程中,有很多东西值得我们思考并总结。开发过程大体可分为以下几个步骤:思考总体设计方案:总体结构和模块外部设计,功能分配。思考要实现整个程序大体需要的几个模块画出总体设计方案流程图:用流程图的形式展现你的基本编程思想。最后修饰:程序可以正确运行之后,再不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化增强程序的新意与可行性。通过这次课程设计,使我们更加熟悉的掌握了Java语言的运用。帮助我们熟悉了更多Java语言的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对Java的操作有了进一步的掌握,还了解到了程序设计的书写风格。

    注意事项

    本文(java个人通讯录课程设计报告.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开