《Java程序设计》课程设计报告-Java手机通讯录系统.doc_第1页
《Java程序设计》课程设计报告-Java手机通讯录系统.doc_第2页
《Java程序设计》课程设计报告-Java手机通讯录系统.doc_第3页
《Java程序设计》课程设计报告-Java手机通讯录系统.doc_第4页
《Java程序设计》课程设计报告-Java手机通讯录系统.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

武武汉汉工工商商学学院院 项目名称: Java 手机通讯录系统 学生姓名: 学 号: 班 级: 12 计科本 1 指导教师: 20142014 年年 5 5 月月 2727 日日 Java 程序设计课程设计 目录 1.1. 选题的背景选题的背景 .1 1.1国内外选题现状.1 1.2开发技术概述.1 1.3系统流程分析.2 2 2 功能设计功能设计 .3 2.1从技术角度分析实现的功能.3 2.2从系统角度分析实现的功能.4 3.3. 详细设计详细设计 .4 3.1 界面设计.4 3.2 关键代码说明.9 4.4.系统测试系统测试.18 总结总结 .19 参考文献参考文献 .20 Java 程序设计课程设计 1 1.1. 选题的背景选题的背景 1.11.1国内外选题现状国内外选题现状 随着计算机科学技术的飞速发展,人们的通讯方式也发生了翻天覆地的变化。以前的 烽火台,信鸽,骑马等通信方式完全退出了历史舞台,手机通讯成为了现代人通信的主要 方式,因此,设计一个好的手机通讯录软件能够及时更新和管理自己的联系人资料。目前 国内外在这方面外做的比较好的主要有谷歌,360,搜狗。我选择手机通讯录这个课题主要 是为了锻炼自己的实践动手能力,加上自己对手机软件的浓厚兴趣。我的这个系统可以实 现一个简易的手机通讯录功能,优点包括:在编辑状态下含有添加,查询,修改,删除, 排序功能;在信息显示的状态下可以按照分组(包括同学,亲人,朋友,同事,全部)显 示;但也还有待完善的地方:如果输入两个联系人的姓名相同,在添加第二个联系人时不 会弹出“已有该联系人”的提示,而是直接按照两个不一样的联系人处理;在查找、修改、 删除联系人的时候只能通过姓名来实现,方式比较单一。 1.21.2开发技术概述开发技术概述 1 本系统使用的技术概述 (1)图形用户界面 本系统用到了图形用户界面的知识,包括 java 中 AWT 包和 Swing 包中的相关知识: 主要用到了窗口,面板,对话框,按钮,标签,菜单,文本框,文本区,密码框,容器, 布局管理,事件处理器(监听器)以及颜色字体的设置和系统自带方法等,使得界面比较 整齐。 (2)输入输出流简介 在该系统中必须要不断管理联系人的资料,因此必定会用到文件中的字符读写 (Filewriter 和 FileReader),文件缓存(BufferReader,BufferedWriter)以及文件的关闭等知识。 (3)其他知识 在该系统还用到了以下知识:try-catch 异常处理,if 条件分支语句,字符串的处理, 数组排序等。 Java 程序设计课程设计 2 2系统测试环境 a被测试软件系统的名称 课程设计项目Java 手机通讯录 b 系统任务提出者 喻晓、陈涛老师 c系统开发者 12801 班:向栋才 d 系统用户及安装此软件的计算中心 3-104 机房、1-710 机房、1-709 机房 e测试环境与实际运行环境之间的差异以及这些差异对测试结果的影响 测试环境: Windows XP、Windows 7、 Windows 8、 Windows 8.1、.、.7。 Java 程序设计课程设计 3 1.3 系统流程分析系统流程分析 手机通讯录用户界面 联系人信息显示联系人信息编辑 信息保存 退出系统 图 1-1 系统流程图 该系统流程图包括整个系统总体流程,当用户进入界面后,可以直接选择 相应的功能选项进行相应的操作。 2 2 功能设计功能设计 2.1从技术角度分析实现的功能从技术角度分析实现的功能 (1)图形用户界面设计中的功能 表 2-1 控件对象表 序号序号功能内容功能内容控件控件对象名对象名备注备注 1. InputJMenuItem Edit1录入 Java 程序设计课程设计 4 2. ResearchJMenuItem Edit2查找 3. reviseJMenuItem Edit4修改 4.delete JMenuItem Edit3删除 5.sort JMenuItem Edit5排序 (2)文件操作设计中的功能 表 2-2 文件对象表 序号序号文件内容文件内容类名类名类对象名类对象名备注备注 1文件读 FileReader file 2读缓冲流 BufferedReader in 3文件写 FileWriter fileWriter 4写缓冲流 BufferedWriter out 2.2从系统角度分析实现的功能从系统角度分析实现的功能 图 2-1 系统功能图 该图是手机通讯录系统的总体功能图,主要功能有编辑和显示两个模块,其中编辑下 拉菜单中包括添加、查找、修改、删除、排序功能,信息显示部分包括分组显示信息。用 户可以直接在“edit”菜单中选择相应的功能编辑,编辑完成可以继续选择其他功能编辑也 可以选在“show”菜单中的选项进行信息显示浏览。 Java 程序设计课程设计 5 3.3. 详细设计详细设计 3.13.1 界面设计界面设计 图 3-1 用户进入界面首图 这是用户进入系统界面的窗口显示图。 图 3-2 添加联系人界面 当用户点击用户界面的添加下拉菜单的时候就会显示该信息框,用户即可填写相应的 信息,添加完成,点击按钮“OK”即可保存。 Java 程序设计课程设计 6 图 3-3 查找联系人界面 该界面是联系人查找的界面,当选择下拉菜单的“search” 选项时就会显示该界面, 然后在文本框中输入你要查找的联系人。 图 3-4 修改联系人界面 该界面是联系人修改的界面,当选择下拉菜单的“revise” 选项时就会显示该界面, 然后在文本框中输入你要修改的联系人。 Java 程序设计课程设计 7 图 3-5 删除联系人界面 该界面是联系人删除的界面,当选择下拉菜单的“delete” 选项时就会显示该界面, 然后在文本框中输入你要删除的联系人。 图 3-6 全体人员信息显示界面 该界面是全体人员信息显示的界面,但选择下拉菜单的“all”选项时就会显示该信息 显示界面。 Java 程序设计课程设计 8 图 3-7 按照同学分组信息显示界面 该界面是按照同学分组的信息显示的界面,但选择下拉菜单的“student”选项时就会 显示该信息显示界面。 图 3-8 按照同事分组信息显示界面 该界面是按照同事分组的信息显示的界面,但选择下拉菜单的“colleague”选项时就 会显示该信息显示界面。 Java 程序设计课程设计 9 图 3-9 按照朋友分组信息显示界面 该界面是按照朋友组别的信息显示的界面,但选择下拉菜单的“friend”选项时就会显 示该信息显示界面。 3.23.2 关键代码说明关键代码说明 /监听同学 show1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) new Print(student,1); ); /监听同事 show2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) Java 程序设计课程设计 10 new Print(colleague,1); ); /监听朋友 show3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) new Print(friend,1); ); /监听亲戚 show4.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) new Print(relative,1); ); /监听全体人员 show5.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) new Print(all,0); Java 程序设计课程设计 11 ); /排序 if(n=2) try int i,j,k; String all; all=new String1000; BufferedReader read=new BufferedReader(new FileReader(D:AddressBook.txt); area.append(Name+t+Group+t+Birthday+t+Phone+t+Email+t+ Other+n); int z=1,count=0; while(z=1) for(i=0;i1000;i+) String str=read.readLine(); if(str!=null) alli=str;count+; else z=0; String bll; bll=new Stringcount; for(i=0;icount;i+) blli=alli; getSortOfChinese(bll); for (i = 0; i count; i+) Java 程序设计课程设计 12 area.append(blli+n); read.close(); catch (FileNotFoundException e1) e1.printStackTrace(); catch (IOException e2) e2.printStackTrace(); /删除代码 if(n=3) certain.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) try File file=new File(D:AddressBook.txt); Scanner find=new Scanner(file); FileWriter file1=new FileWriter(D:AddressBook.txt,true); PrintWriter write=new PrintWriter(file1); while(find.hasNext() String s=find.next(); if(!(s.equals(Tname.getText() write.print(s+t); write.print(find.next()+t); write.print(find.next()+ ); write.print(find.next()+ ); Java 程序设计课程设计 13 write.print(find.next()+t); write.print(find.next()+t); write.print(find.next()+t); write.println(find.next(); else find.next();find.next();find.next();find.next(); find.next();find.next();find.next(); /file.close(); find.close(); file.delete(); write.close(); file1.close(); File file2=new File(D:AddressBook1.txt); file2.renameTo(new File( D:AddressBook.txt); JOptionPane.showMessageDialog(null,delete success, the result of delete,JOptionPane.INFORMATION_MESSAGE); catch (FileNotFoundException e1) / TODO Auto-generated catch block /e1.printStackTrace(); JOptionPane.showMessageDialog(null, The file was not found); Java 程序设计课程设计 14 catch (IOException e2) / TODO Auto-generated catch block /e2.printStackTrace(); System.out.print(The people was not found); ); /给按钮OK设置监听器 certain.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) /用匿 名内部类实现监听器 if(Tname.getText().equals()/姓名录入为空 JOptionPane.showMessageDialog(null,Failure of the input, name must fill out!,/使用一个弹出窗口信息提示框 the results of input,JOptionPane.INFORMATION_MESSAGE); else try FileWriter AddressBook=new FileWriter(k:MobileAddressBook.txt,true);/写入字符位置 PrintWriter add=new PrintWriter(AddressBook);/直接转换为系统默 认编码下对应的字符输出 String s1,s2,s3,s4; /定义 group 和 birthday 的默认显示为“无” if(Tname.getText().equals()s1=无;else s1=Tname.getText(); if(Tphone.getText().equals()s2=无;else s2=Tphone.getText(); Java 程序设计课程设计 15 if(Temail.getText().equals()s3=无;else s3=Temail.getText(); if(Tother.getText().equals()s4=无;else s4=Tother.getText(); /添加默认显示“无” add.println(s1+t+Cgroup.getSelectedItem()+t+Cbirthyear.getSelectedIte m()+ +Cbirthmonth.getSelectedItem()+ +Cbirthday.getSelectedItem()+ t+s2+t+s3+t+s4); add.close(); AddressBook.close();/关闭通讯录 z=1;/设置以为标志位 catch (IOException e1) e1.printStackTrace();/输出异常信息 if(y=0) JOptionPane.showMessageDialog(null,input success, the result of input,JOptionPane.INFORMATION_MESSAGE); else JOptionPane.showMessageDialog(null,revise succes, the result of revise,JOptionPane.INFORMATION_MESSAGE); /文本框为空 Tname.setText(); Tphone.setText(); Temail.setText(); Tother.setText(); Java 程序设计课程设计 16 ); /给按钮“cannel”设置监听器 cancel.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) /用匿 名内部类实现监听器 frame.dispose(); z=0; ); /录入 class Typein implements ActionListener public static int z=2; public static int y=0; /设置标签 public JLabel Lname,Lgroup,Lbirthday,Lphone,Lemail,Lother,Lnote; public JTextField Tname=new JTextField(10),Tphone=new JTextField(15), Temail=new JTextField(15),Tother=new JTextField(15); public Choice Cgroup=new Choice(),Cbirthyear=new Choice(),Cbirthmonth=new Choice(), Cbirthday=new Choice(); public JButton certain,cancel; public JFrame frame=new JFrame(Enter the contact information); public Typein() /添加组别的下拉选项 Java 程序设计课程设计 17 Cgroup.addItem(none); Cgroup.addItem(student); Cgroup.addItem(colleague); Cgroup.addItem(friend); Cgroup.addItem(relative); /信息录入方法 public void typein()Container c=frame.getContentPane(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500,300); frame.setLayout(new GridLayout(5,1,5,5); frame.setVisible(true); /录入面板的信息设置 Lname=new JLabel(Name:); Lgroup=new JLabel(Group:); Lbirthday=new JLabel(Birthday:); Lphone=new JLabel( Phone:); Lemail=new JLabel(Email:); Lother=new JLabel(Other:); Lnote=new JLabel(Tip:”other“Can input information you deem important); certain=new JButton(OK); cancel=new JButton(Cancel); JPanel pane1=new JPanel(); JPanel pane2=new JPanel(); JPanel pane3=new JPanel(); JPanel pane4=new JPanel(); JPanel pane5=new JPanel(); /添加信息显示面板 c.add(pane1); Java 程序设计课程设计 18 c.add(pane2); c.add(pane3); c.add(pane4); c.add(pane5); /标签和对应的文本框放置 pane1.add(Lname); pane1.add(Tname); pane1.add(Lgroup); pane1.add(Cgroup); pane2.add(Lbirthday); pane2.add(Cbirthyear); pane2.add(Cbirthmonth); pane2.add(Cbirthday); pane2.add(Lphone); pane2.add(Tphone); pane3.add(Lemail); pane3.add(Temail); pane3.add(Lother); pane3.add(Tother); pane4.add(Lnote); 4.4.系统测试系统测试 本系统在每完成一个功能后,都会有一个弹出对话框给出信息提示,如果操作正确会 弹出“操作成功”弹出框提示,如果操作不当,系统不会进入下一步,会让你选择重新输 入。输入完毕,可以直接关闭窗口或者点击“取消”按钮返回。同时,该系统也进行了修 改前和修改后的对比测试,修改前程序不完整,占用内存大,修改后程序很快,结果正确。 Java 程序设计课程设计 19 图 4-1 信息录入成功界面 联系人信息录入成功,弹出该

温馨提示

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

评论

0/150

提交评论