1、java课程设计通讯录系统第一章设计分析1.1需求分析现在各大手机都有自己的、各种通讯录程序,但是这些公司都有自己的,我们也不可能得到这些源代码!而且这些公司的程序也相当复杂,仅从日常应用方面来说,对于初学java的我们也无法理解,就需要我们开发一个简单易懂的查询系统程序。1.2功能设计本程序的构建参照了手机通讯录,其功能是:有录入,修改,增加,删除,按查询,按查询,按部门查询,按部门显示,显示所有信息,打印等功能。第二章概要设计2.1程序设计在本程序设计过程中用到了父类JFrame、JTable、JPanel、JMenuBar、JMenuItem、JButton。JMenuBar用来创建主菜
2、单JMenuItem创建子菜单JFrame创建框架JTable创建表格部分JScorollPane向文本框添加滚动条JMenuItem创建功能键JButton添加触发按钮。编写BufferReader()方法实现待分析文件中数据的读取。编写readLine()方法实现数据的读取。编写Select()法实现查询。编写rankVector()方法实现排序编写addNumber()方法实现新建编写removeNumber()方法实现删除编写modifyPhoneNumber()方法实现修改利用actionPerformed ()方法做为事件监听器。编写J_fenxi()实现构造。2.2 功能设计主页
3、面以分组形式显示的详细信息,满足了用户浏览通讯录时分组查看的要求,同时提供、分组、QQ、Email的详细查询及模糊查询功能,方便用户快速查找相关的信息。具体要求如下:(1)新增功能:点击菜单栏中的编辑选项,选择新增功能,可添加详细信息(2)删除功能:选息,点击菜单栏中的编辑选项,选择删除功能(3)修改功能:选息,点击菜单栏中的编辑选项,选择修改功能,点击要修改的单元格所在的行即可修改(4)查询功能:主页面搜索栏可根据、分组等进行搜索(5)退出程序:点击菜单栏中的文件选项,选择关闭功能图2-1 功能结构图第三章软件环境介绍3. 1 开发环境本次项目的软件环境基于开源软件的使用基础上开发的,所以使
4、用的开发环境是:前台使用JSP+CSS开发,后台使用JSP + MySQL做为基础,使用 JavaBean 对数据进行存取。如图3-1所示:图3-1前台与后台关系3. 2 开发工具集成开发环境:MyEclipse 2014;服务器:Apache Tomcat 7.0;数据库:MySQL 5.6;数据库管理系统:Navicat MySQL 8.0;JavaBean开发使用:JDK 7.03. 3 MySql数据设计表3-1 数据表字段名称数据类型说明NumberVarcharNameVarcharPartitionVarchar分组QQnumberVarcharQQEmailVarchar电子第
5、四章测试运行4.1 程序运行界面查询系统一共分为3部分,分别是菜单栏、查询栏、显示框。菜单栏由“文件”、“编辑”、“视图”组成,“文件”菜单有关闭功能键,“编辑”菜单有新建、删除、修改功能键,“视图”菜单有顺序显示和分类显示。如图4-1所示图4-1 运行界面4.2 新建功能选择编辑新建功能,填写信息后点击确定后即可保存。图4-2 新增页面4.3 修改功能点击要修改的单元格所在的行,然后点击编辑修改键开始修改信息,点击确定后即可保存。图4-3 修改页面4.4 顺序显示手机按从小到大的顺序排列显示。图4-4 顺序显示页面4.5 分组显示按分组的类别显示,同分组的元素在一起。图4-5 分组显示页面4
6、.6 搜索功能可以按照手机,、分组等进行搜索。图4-6 搜索页面第五章总结与分析通过完成一个小程序,不仅发现了自己在java知识中的不足,对java更加了解,还能够增加自己的变成经验,增强对逻辑思维的运用能力。在本次课程设计的过程中,详细阐述了整个的设计思路,并对各部分设计周期进行了详尽的分析,最终达成了一个完整的设计方案;在文章的最后,还根据数据库系统的调试结果,提出了可以进一步改进的部分,以便在以后的学习工作中得到更好的完善。以及在投入实际应用后可以更加稳定可靠的工作。通过这段时间的课程设计,完成了“查询系统”的设计,更重要的是又复习了一遍JSP知识,看了许多关于JSP的书,不仅丰富了知识
7、,而且从中学到了编程思想,相信通过这次课程设计,对以后的学习和程序设计会有很大的帮助。第七章参考文献1 志峰等,JSP程序设计实训与案例教程,清华大学.20132 荣钦科技,JSP动态开发与实例,清华大学.20123 黄梯云,管理信息系统,高等教育. 20134 曾凡奇等:基于 Internet的管理信息系统,中国财政经济,2011 5 易荣华:管理信息系统,高等教育, 2014 6 靖:管理信息系统,高等教育, 2013 7国锋:管理信息系统,机械工业,2012 第八章程序源代码8.1 类PhoneNumberpublicclassPhoneNumber private String Num
8、ber; private String Name; private String Partition; private String QQNumber; private String Email; publicPhoneNumber() public String getNumber() returnNumber; public String getName() returnName; public String getPartition() returnPartition; public String getQQNumber() returnQQNumber; public String g
9、etEmail() returnEmail; public String getPretreatment( int Style ) String Key = null; switch ( Style ) case 1: Key = getNumber(); break; case 2: Key = getName(); break; case 3: Key = getPartition(); break; return Key; classNumberExceptionextends Exception public String warningString() return不符合编码规则!;
10、 publicbooleanisNumeric( String str ) Pattern pattern = Ppile(0-9*); returnpattern.matcher(str).matches(); publicbooleansetNumber( String number ) number.trim(); String Str = number.substring( 0, 3 ); try if( !isNumeric( number ) ) thrownewNumberException(); catch ( NumberException e ) JOptionPane.s
11、howMessageDialog( null, e.warningString()+为:+number ); returnfalse; try if ( number.length() != 11 ) thrownewNumberException(); catch ( NumberException e ) JOptionPane.showMessageDialog( null, e.warningString()+为:+number ); returnfalse; try intnum = Integer.parseInt( Str ); if ( num 139 ) num /= 10;
12、 if(num != 15 | num != 18 ) thrownewNumberException(); Number = number; returntrue; catch ( NumberException e ) JOptionPane.showMessageDialog( null, e.warningString()+为:+number ); returnfalse; publicbooleansetName( String name ) name.trim(); Name = name; returntrue; publicbooleansetPartition( String
13、 Str ) Str.trim(); Partition = Str; returntrue; publicbooleansetQQNumber( String qqnumber ) qqnumber.trim(); QQNumber = qqnumber; returntrue; classEmailExceptionextends Exception public String warningString() return电子格式错误!; publicbooleansetEmail( String email ) email.trim(); String Str = email.subst
14、ring(email.length()-4 ); try if ( !Str.equals(.) ) thrownewEmailException(); if ( email.indexOf() 1 ) thrownewEmailException(); Email = email; returntrue; catch ( EmailException e ) JOptionPane.showMessageDialog(null, e.warningString() ); returnfalse; /* * paramargs */ publicstaticvoid main(String a
15、rgs) / TODO Auto-generated method stub 8.2类Operationpublicclass Operation extendsPhoneNumber public VectorPhoneNumberList; public Operation() PhoneNumberList = new Vector(); public VectorgetPhoneNumberList() returnPhoneNumberList; classOperatingExceptionextends Exception public String warningString(
16、) return操作失败!; public Vector Select( String KeyStr, int Style ) String Key = KeyStr.trim(); VectortempPhoneNumberList = new Vector(); for ( intpt = 0; ptPhoneNumberList.size(); pt+ ) String preKey = PhoneNumberList.elementAt(pt).getPretreatment(Style); if ( preKey.equals(Key) ) tempPhoneNumberList.a
17、ddElement(PhoneNumberList.elementAt(pt) ); returntempPhoneNumberList; publicbooleanaddNumber( PhoneNumberphoneNumber, int Index ) try if ( PhoneNumberList.contains(phoneNumber) ) thrownewOperatingException(); catch ( OperatingException e ) JOptionPane.showMessageDialog(null, e.warningString() ); ret
18、urnfalse; try for ( intpt = 0; pt= PhoneNumberList.size() ) Index = PhoneNumberList.size(); PhoneNumberList.insertElementAt(phoneNumber, Index ); returntrue; catch ( OperatingException e ) JOptionPane.showMessageDialog(null, e.warningString() ); returnfalse; publicbooleanremoveNumber( String phoneNu
19、mber ) try int Index = 0; for ( intpt = 0; pt= PhoneNumberList.size() ) thrownewOperatingException(); PhoneNumberList.removeElementAt(Index); returntrue; catch ( OperatingException e ) JOptionPane.showMessageDialog(null, e.warningString() ); returnfalse; publicbooleanmodifyPhoneNumber( PhoneNumberph
20、oneNumber ) try if ( PhoneNumberList.contains(phoneNumber) ) thrownewOperatingException(); intIndex = 0; for ( intpt = 0; ptPhoneNumberList.size(); pt+ ) if ( PhoneNumberList.elementAt(pt).getNumber().equals(phoneNumber.getNumber() ) PhoneNumberList.removeElementAt(pt); PhoneNumberList.addElement(ph
21、oneNumber ); catch ( OperatingException e ) JOptionPane.showMessageDialog(null, e.warningString() ); returnfalse; try if ( !PhoneNumberList.contains(phoneNumber) ) thrownewOperatingException(); returntrue; catch ( OperatingException e ) JOptionPane.showMessageDialog(null, e.warningString() ); return
22、false; public VectorsortPhoneNumber( VectorphoneNumberList, String KeyStr ) VectortempPhoneNumberList = new Vector( 10, 3 ); for ( int Index = 0; Index phoneNumberList.size(); Index+ ) if ( phoneNumberList.elementAt(Index).getPartition().equals(KeyStr) ) tempPhoneNumberList.addElement(phoneNumberLis
23、t.elementAt(Index) ); returntempPhoneNumberList; public VectorrankVector( VectorphoneNumberList ) VectortempPhoneNumberList = new Vector(); tempPhoneNumberList.addElement(phoneNumberList.elementAt(0); for ( int Index = 0; Index phoneNumberList.size(); Index+ ) intpt; boolean flag = true; for ( pt =
24、0; pttempPhoneNumberList.size(); pt+ ) if ( phoneNumberList.elementAt(Index).getNumber().compareTo(tempPhoneNumberList.elementAt(pt).getNumber() 0 ) break; for ( inti = 0; itempPhoneNumberList.size(); i+ ) if ( tempPhoneNumberList.elementAt(i).getNumber().equals(phoneNumberList.elementAt(Index).getN
25、umber() ) flag = false; if ( flag ) tempPhoneNumberList.insertElementAt(phoneNumberList.elementAt(Index), pt ); returntempPhoneNumberList; publicstaticvoid main(String args) / TODO Auto-generated method stub 8.3类SearcherpublicclassSearcherextendsJFrame publicDefaultTableModelData; publicJTableView;
26、publicJButtonbutton; publicJComboBoxcombobox; publicJFrameapp; public Operation operation; publicJMenuBarMenuBar; publicJTextFieldtextField; publicJMenuItem MenuItem = newJMenuItem(关闭(C) , newJMenuItem(新建(N), newJMenuItem(删除(D), newJMenuItem(修改(M) , newJMenuItem(顺序显示(O), newJMenuItem(分类显示(S) ; public Searcher() super(Searcher); operation = new Operation(); MenuBar = newJMenuBar(); setJMenuBar(MenuBar); Container c = getContentPane(); c.setLayout(newFlowLayout(); Data = newDefaultTableMod
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1