




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件学院课程设计报告书课程名称面向对象程序设计设计题目敏感词汇分析程序专业班级学号姓名指导教师2012年6月目录1设计时间 22设计目的 23设计任务 24设计内容 24.1需求分析 24.1.1问题描述 24.1.2基本要求 24.2总体设计 24.2.1包的描述 34.2.2类的描述 44.2.3类之间的关系 64.3详细设计 64.3.1类图 64.4测试与分析 84.5程序代码 125总结与展望 18参考文献 19课程设计成绩评定 19importjava.io.FileReader;//用来读取字符文件的便捷类。importjava.io.IOException;//当发生某种I/O异常时,抛出此异常。importjavax.swing.JFrame;//java.awt.Frame的扩展版本。importjavax.swing.JTextArea;//一个显示纯文本的多行区域。测试菜单程序:TestJMenu.javaimportjava.awt.event.ActionEvent;//用于激活组件。importjava.awt.event.ActionListener;//时间监听器。importjava.io.File;//文件和目录路径名的抽象表示形式。importjava.io.FileInputStream;//FilterInputStream包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。importjavax.swing.JFileChooser;//为用户选择文件提供了一种简单的机制。importjavax.swing.JFrame;//java.awt.Frame的扩展版本,该版本添加了对JFC/Swing组件架构的支持。importjavax.swing.JMenu;//菜单的该实现是一个包含JMenuItem的弹出窗口,用户选择JMenuBar上的项时会显示该JMenuItem。importjavax.swing.JMenuBar;//菜单栏的实现。importjavax.swing.JMenuItem;//菜单中的项的实现。importjavax.swing.JTextArea;//JTextArea是一个显示纯文本的多行区域。4.2.21、MinGanCiHui(1)类名:MinGanCiHui作用:主类(2)主要成员变量说明:Buttonb1=newButton("我要查看");//点击可以查看敏感词汇文件Buttonb2=newButton("确定");//点击输入文本,进行敏感词汇分析(3)主要成员方法说明:b1.addActionListener();//对“我要查看”按钮进行事件监听b2.addActionListener();//对“确定”按钮进行事件监听2、Fenx(1)类名:Fenx作用:对输入的文本进行敏感词汇分析,或者对打开的文本文件进行词汇分析。(2)异常处理:处理文件读取异常。(3)主要成员变量说明:StringfilterText=newString();//创建一个字符串BufferedReaderbr=newBufferedReader(reader);//以字符形式获取打开文件的内容ListlistWord=newArrayList();//设为敏感词汇数组,匹配使用(4)主要成员方法说明:Ppile(regex,flags)//进行匹配3、Shows(1)类名:Shows作用:通过JFrame显示敏感词汇文本继承的父类:JFrame(2)异常处理:文件读取异常处理(3)主要成员变量说明:staticJTextAreass;//文本显示(4)主要成员方法说明:publicstaticStringfilein()//获取文件中的字符4、TestJMenu(1)类名:TestJMenu作用:分析文本或者文本文件中敏感词汇出现的次数继承的父类:JFrame(2)实现的接口:ActionListener(3)主要成员变量说明:JTextAreajta=newJTextArea();//多行的纯文本区域JMenuItemjmiOpen=newJMenuItem("打开");//打开已存在的文本文件JMenujmFenxi=newJMenu("分析");//分析当前的文本中敏感词汇的出现(4)主要成员方法说明:jmiSure.addActionListener(newActionListener())//对分析按钮进行事件监听publicvoidactionPerformed(ActionEvente)//对打开按钮进行事件监听4.2.3类之间的关系MinGanCiHuiMinGanCiHuiShowsFenxTestJMenuShowsFenxTestJMenu4.3详细设计4.3.1类图(1)主类MinGanCiHui图4.3.1-1(2)TestJMenu图4.3.1-2(3)Fenx图4.3.1-3(4)Shows图4.3.1-44.4测试与分析(1)主程序面板图4.4-1(2)点击我要查看,查看敏感词汇图4.4-2(3)点击主面板的确定,进入分析主程序图4.4-3(4)在文本框中输入文本图4.4-4(5)点击分析中的确定按钮图4.4-5(6)显示分析结果图4.4-6(7)从文件中选择以存在的文本文件进行分析图4.4-7(8)显示打开的文本文件图4.4-8(9)进行分析图4.4-94.5程序代码importjava.awt.Button;importjava.awt.Color;importjava.awt.GridLayout;importjava.awt.Label;importjava.awt.Panel;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JFrame;publicclassMinGanCiHui{ publicstaticvoidmain(Stringargs[]){ JFramef1=newJFrame("敏感词分析程序"); f1.setBounds(100,100,500,400); f1.setBackground(Color.lightGray); f1.setLayout(newGridLayout(2,1)); Panelp1=newPanel(); f1.add(p1); Panelp2=newPanel(); f1.add(p2); f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Labell2=newLabel("敏感词汇保存在sensitive.txt文件中,查看敏感词汇请点击:"); p1.add(l2); Buttonb1=newButton("我要查看"); p1.add(b1); b1.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Showss=newShows(); } }); Labell1=newLabel("请输入含有敏感词的文本文件,点确定进入:"); p2.add(l1); Buttonb2=newButton("确定"); p2.add(b2); b2.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ TestJMenujmFrame=newTestJMenu(); } }); f1.setVisible(true); }}importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.File;importjava.io.FileInputStream;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JTextArea;publicclassTestJMenuextendsJFrameimplementsActionListener{ JTextAreajta=newJTextArea(); TestJMenu(){ this.setSize(400,300); JMenuBarjmb=newJMenuBar(); this.setTitle("分析程序"); //创建菜单栏 JMenujmFile=newJMenu("文件"); JMenuItemjmiNew=newJMenuItem("新建"); JMenuItemjmiOpen=newJMenuItem("打开"); jmiOpen.addActionListener(this); jmFile.add(jmiNew); jmFile.add(jmiOpen); JMenujmFenxi=newJMenu("分析"); JMenuItemjmiSure=newJMenuItem("确定"); JMenuItemjmiCancel=newJMenuItem("取消"); jmFenxi.add(jmiSure); jmFenxi.add(jmiCancel); JMenujmHelp=newJMenu("帮助"); jmb.add(jmFile); jmb.add(jmFenxi); jmb.add(jmHelp); this.setJMenuBar(jmb); this.getContentPane().add(jta); this.setVisible(true); //设置事件监听,如果点击了分析中的确定,表明要进行分析测试 jmiSure.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ StringfilterText=jta.getText(); try{ jta.setText(Fenx.getFilterText(filterText)); }catch(Exceptione1){ e1.printStackTrace(); } } }); } //对打开按钮进行事件监听 publicvoidactionPerformed(ActionEvente){ JFileChooserjc=newJFileChooser(); if(jc.showOpenDialog(this)!=1){ try{ Filefile=jc.getSelectedFile(); FileInputStreamfis=newFileInputStream(file); byte[]buf=newbyte[10*1024]; intlen=fis.read(buf); jta.append(newString(buf,0,len)); }catch(Exceptionex){ ex.printStackTrace(); } } } publicstaticvoidmain(String[]args){ MinGanCiHuim=newMinGanCiHui(); TestJMenujmFrame=newTestJMenu(); //jmFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}importjava.io.BufferedReader;importjava.io.FileReader;importjava.util.ArrayList;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassFenx{ publicstaticvoidmain(String[]args)throwsException{ StringfilterText=newString(); System.out.println(getFilterText(filterText)); } publicstaticStringgetFilterText(StringfilterText)throwsException{ ListlistWord=newArrayList(); FileReaderreader=newFileReader("d:/sensitive.txt"); BufferedReaderbr=newBufferedReader(reader); Strings=null; while((s=br.readLine())!=null){ listWord.add(s.trim()); } br.close(); reader.close(); Matcherm=null; Stringstr1=newString(); for(inti=0;i<listWord.size();i++){ intnum=0; Patternp=Ppile(listWord.get(i).toString(), Pattern.CASE_INSENSITIVE); StringBuffersb=newStringBuffer(); m=p.matcher(filterText); while(m.find()){ m.appendReplacement(sb,"*"); num++; } str1='\n'+"敏感词"+p.toString()+"出现:"+num+"次"; m.appendTail(sb); filterText=sb.toString(); filterText+=str1; } returnfilterText; }}importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importjavax.swing.JFrame;importjavax.swing.JTextArea;publicclassShowsextendsJFrame{ staticJTextAreass; JFramej1; Shows(){ ss=newJTextArea(); j1=newJFrame("敏感词汇文本显示窗口"); Stringss1=filein(); j1.add(ss); j1.setSize(500,400); j1.setVisible(true); } publicstaticStringfilein(){ Stringf="
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿教师面试试题及答案
- Module 5 Unit1 She goes to school on Mondays (教学设计)-2023-2024学年外研版(三起)英语三年级下册
- 美容师服务创新能力测试试题及答案
- 高中信息技术 第一章 第二节 计算机的基础知识教学设计 浙教版
- 第三单元第9课四、《简单的数据处理》教学设计设计 2023-2024学年人教版初中信息技术七年级上册
- 科学备考CPBA考试的试题及答案
- 九年级化学下册 第八单元 金属和金属材料 8.2 金属的化学性质 8.2.2 金属活动性顺序教学设计 (新版)新人教版
- 宠物日常营养需求分析试题及答案
- 统计学变量分析常见题型试题及答案
- 广东省肇庆市高中数学 第二章 推理与证明 2.1.2 演绎推理教学设计 理 新人教A版选修2-2
- 大型集团公司信息安全整体规划方案相关两份资料
- 【双减作业论文】双减背景下初中数学分层作业的设计与实施(共八篇)
- 2024年安徽龙亢控股集团限公司公开招聘人员13人(高频重点提升专题训练)共500题附带答案详解
- 从古至今话廉洁-大学生廉洁素养教育智慧树知到期末考试答案章节答案2024年吉林大学
- 人音版 (五线谱)四年级下册音乐-5 《小溪流水响叮咚》教案
- 2023-2024学年上海交大附中高三上英语10月周练卷及答案
- 病理生理学病例分析报告
- 三D打印公开课
- 补铁剂中铁元素的检验-应用配合物进行物质检验高二化学鲁科版(2019)选择性必修2
- 给水管网改造工程施工组织设计概述
- 营业收入的预测分析报告
评论
0/150
提交评论