Java課程設(shè)計敏感詞匯分析程序_第1頁
Java課程設(shè)計敏感詞匯分析程序_第2頁
Java課程設(shè)計敏感詞匯分析程序_第3頁
Java課程設(shè)計敏感詞匯分析程序_第4頁
Java課程設(shè)計敏感詞匯分析程序_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

軟件學(xué)院課程設(shè)計報告書課程名稱面向?qū)ο蟪绦蛟O(shè)計設(shè)計題目敏感詞匯分析程序?qū)I(yè)班級學(xué)號姓名指導(dǎo)教師2012年6月目錄1設(shè)計時間 22設(shè)計目的 23設(shè)計任務(wù) 24設(shè)計內(nèi)容 24.1需求分析 24.1.1問題描述 24.1.2基本要求 24.2總體設(shè)計 24.2.1包的描述 34.2.2類的描述 44.2.3類之間的關(guān)系 64.3詳細(xì)設(shè)計 64.3.1類圖 64.4測試與分析 84.5程序代碼 125總結(jié)與展望 18參考文獻(xiàn) 19課程設(shè)計成績評定 19importjava.io.FileReader;//用來讀取字符文件的便捷類。importjava.io.IOException;//當(dāng)發(fā)生某種I/O異常時,拋出此異常。importjavax.swing.JFrame;//java.awt.Frame的擴(kuò)展版本。importjavax.swing.JTextArea;//一個顯示純文本的多行區(qū)域。測試菜單程序:TestJMenu.javaimportjava.awt.event.ActionEvent;//用于激活組件。importjava.awt.event.ActionListener;//時間監(jiān)聽器。importjava.io.File;//文件和目錄路徑名的抽象表示形式。importjava.io.FileInputStream;//FilterInputStream包含其他一些輸入流,它將這些流用作其基本數(shù)據(jù)源,它可以直接傳輸數(shù)據(jù)或提供一些額外的功能。importjavax.swing.JFileChooser;//為用戶選擇文件提供了一種簡單的機(jī)制。importjavax.swing.JFrame;//java.awt.Frame的擴(kuò)展版本,該版本添加了對JFC/Swing組件架構(gòu)的支持。importjavax.swing.JMenu;//菜單的該實現(xiàn)是一個包含JMenuItem的彈出窗口,用戶選擇JMenuBar上的項時會顯示該JMenuItem。importjavax.swing.JMenuBar;//菜單欄的實現(xiàn)。importjavax.swing.JMenuItem;//菜單中的項的實現(xiàn)。importjavax.swing.JTextArea;//JTextArea是一個顯示純文本的多行區(qū)域。4.2.21、MinGanCiHui(1)類名:MinGanCiHui作用:主類(2)主要成員變量說明:Buttonb1=newButton("我要查看");//點擊可以查看敏感詞匯文件Buttonb2=newButton("確定");//點擊輸入文本,進(jìn)行敏感詞匯分析(3)主要成員方法說明:b1.addActionListener();//對“我要查看”按鈕進(jìn)行事件監(jiān)聽b2.addActionListener();//對“確定”按鈕進(jìn)行事件監(jiān)聽2、Fenx(1)類名:Fenx作用:對輸入的文本進(jìn)行敏感詞匯分析,或者對打開的文本文件進(jìn)行詞匯分析。(2)異常處理:處理文件讀取異常。(3)主要成員變量說明:StringfilterText=newString();//創(chuàng)建一個字符串BufferedReaderbr=newBufferedReader(reader);//以字符形式獲取打開文件的內(nèi)容ListlistWord=newArrayList();//設(shè)為敏感詞匯數(shù)組,匹配使用(4)主要成員方法說明:Ppile(regex,flags)//進(jìn)行匹配3、Shows(1)類名:Shows作用:通過JFrame顯示敏感詞匯文本繼承的父類:JFrame(2)異常處理:文件讀取異常處理(3)主要成員變量說明:staticJTextAreass;//文本顯示(4)主要成員方法說明:publicstaticStringfilein()//獲取文件中的字符4、TestJMenu(1)類名:TestJMenu作用:分析文本或者文本文件中敏感詞匯出現(xiàn)的次數(shù)繼承的父類:JFrame(2)實現(xiàn)的接口:ActionListener(3)主要成員變量說明:JTextAreajta=newJTextArea();//多行的純文本區(qū)域JMenuItemjmiOpen=newJMenuItem("打開");//打開已存在的文本文件JMenujmFenxi=newJMenu("分析");//分析當(dāng)前的文本中敏感詞匯的出現(xiàn)(4)主要成員方法說明:jmiSure.addActionListener(newActionListener())//對分析按鈕進(jìn)行事件監(jiān)聽publicvoidactionPerformed(ActionEvente)//對打開按鈕進(jìn)行事件監(jiān)聽4.2.3類之間的關(guān)系MinGanCiHuiMinGanCiHuiShowsFenxTestJMenuShowsFenxTestJMenu4.3詳細(xì)設(shè)計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)點擊主面板的確定,進(jìn)入分析主程序圖4.4-3(4)在文本框中輸入文本圖4.4-4(5)點擊分析中的確定按鈕圖4.4-5(6)顯示分析結(jié)果圖4.4-6(7)從文件中選擇以存在的文本文件進(jìn)行分析圖4.4-7(8)顯示打開的文本文件圖4.4-8(9)進(jìn)行分析圖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("請輸入含有敏感詞的文本文件,點確定進(jìn)入:"); 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("分析程序"); //創(chuàng)建菜單欄 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); //設(shè)置事件監(jiān)聽,如果點擊了分析中的確定,表明要進(jìn)行分析測試 jmiSure.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ StringfilterText=jta.getText(); try{ jta.setText(Fenx.getFilterText(filterText)); }catch(Exceptione1){ e1.printStackTrace(); } } }); } //對打開按鈕進(jìn)行事件監(jiān)聽 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()+"出現(xiàn):"+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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論