敏感詞匯Java課程設計報告.doc_第1頁
敏感詞匯Java課程設計報告.doc_第2頁
敏感詞匯Java課程設計報告.doc_第3頁
敏感詞匯Java課程設計報告.doc_第4頁
敏感詞匯Java課程設計報告.doc_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Java課程設計報告 題 目:敏感詞匯分析 年級專業:計科2102 學 號: * 學生姓名: * 指導老師: 完成時間:2010年 6月 20 日目 錄摘要1前言21需求分析21.1需求分析21.2功能設計32.概要設計32.1程序設計思路32.2程序運行界面32.3模塊說明圖42.4程序流程圖52.5程序相關說明63.程序詳細設計與分析63.1.初始化組件63.2.構建菜單欄及其下拉菜單63.3.“文件”菜單的事件監聽73.4.“編輯”菜單的事件監聽83.5.異常處理94測試分析105源程序清單136課程設計總結17參考文獻17 敏感詞匯分析程序的設計摘要 該報告中的程序是使用Java程序編寫, 21世紀是信息爆炸的時代,信息技術,網絡技術等飛速發展。因而出現許多網絡用詞,當然也包括不文明的用語,這就需要開發一個軟件來檢索出分析網絡用語,用來屏蔽一些不文明敏感的詞匯。給我們大家營造一個安全文明的網絡環境!關鍵字:敏感詞匯分析程序;Java語言;Jcreator前言Java的前身是Oak,它一開始只是被應用于消費性電子產品中。后來它的開發者們發現它還可以被用于更大范圍的Internet上。1995年,Java語言的名字從Oak編程了Java。1997年J2SE1.1發布。1998年J2SE1.2發布,標志Java2的誕生。十多年來,Java編程語言及平臺成功地運用在網絡計算及移動等各個領域。Java的體系結構由Java語言、Java class、Java API、Java虛擬機組成。它具有簡單、面向對象、健壯、安全、結構中立、可移植和高效能等眾多優點。Java支持多線程編程,Java運行時系統在多線程同步方面具有成熟的解決方案。Java的平臺標準有Java ME,Java SE和Java EE。Java發展到今天,它的卓越成就及在業界的地位毋庸置疑。目前在眾多的支持Java的開發工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡稱JDK是大多開發工具的基礎。以上的每種開發工具都有優缺點,對于開發者來說,重要的是要根據自己的開發規模、開發內容和軟硬件環境等因素來選擇一種合適的開發工具。在本程序設計中,因為需要開發的是敏感詞匯分析程序,規模較小,內容較少,所以選擇了適合初學者使用的JCreator開發工具。1需求分析1.1需求分析現在各大軟件公司都有自己的、各種高級敏感詞匯的程序,但是這些公司都有自己的版權,我們也不可能得到這些源代碼!而且這些公司的程序也相當復雜,僅從日常應用方面來說,對于初學java的我們也無法理解,就需要我們開發一個簡單易懂的敏感詞匯分析程序。1.2功能設計本程序要構建的文本編輯器程序參照了Windows操作系統的文本編輯器工具,其功能有以下幾個方面:(1).菜單中有“文件”,“分析”,“幫助”三個主菜單。(2)“文件”有“新建”“打開”二個子菜單:分別用于新 建文件,打開文件。 (3)“分析”中有“確定”“取消”二個子菜單:用于開始分析文本中的敏感詞匯,取消分析文件中含有的敏感詞匯。 (4)“幫助”菜單中有關于敏感詞匯分析程序的相關介紹。2.概要設計2.1程序設計思路在本程序中,設計了一個菜單欄和文本編輯區。設計過程中用到了FileReader,JMenu,JTextPane,JFileChooser等。JMenu用來制作菜單,菜單包括“文件”“分析”“幫助”。JTextPane主要用來輸入文本。2.2程序運行界面2.5程序相關說明整個敏感詞匯分析器分為2快:菜單欄和內容輸入區。本程序中由Mingan1、TextJMenu、Fenx三個類共同組成分別實現部分程序功能。 3.程序詳細設計與分析3.1類Mingan1是輸入含有敏感詞匯的文本文件并保存在sensitive.txt文件中public class Mingan1 public static void main(String args) Frame f1=new Frame(敏感詞分析程序); f1.setBounds(500, 100, 300, 200); f1.setBackground(Color.lightGray); f1.setLayout(new GridLayout(3,1); Panel p1=new Panel(); f1.add(p1); Panel p2=new Panel(); f1.add(p2); Panel p3=new Panel(); f1.add(p3); f1.setVisible(true); Label l1=new Label(請點擊輸入含有敏感詞的文本文件:); p3.add(l1); Button b1=new Button(確定); p3.add(b1); b1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) TestJMenu jmFrame=new TestJMenu(); ); Label l2=new Label(敏感詞匯保存在sensitive.txt文件中); p1.add(l2); p2.add(new Label(請查看sensitive.txt文件); 3.2.類TextJMenu繼承JFrame實現動作監聽(ActionListener)ublic class TestJMenu extends JFrame implements ActionListener3.3構建菜單欄及其下拉菜單TestJMenu() this.setSize(400,300); JMenuBar jmb=new JMenuBar(); JMenu jmFile=new JMenu(文件); JMenuItem jmiNew=new JMenuItem(新建); JMenuItem jmiOpen=new JMenuItem(打開); jmiOpen.addActionListener(this); jmFile.add(jmiNew); jmFile.add(jmiOpen); JMenu jmFenxi=new JMenu(分析); JMenuItem jmiQue=new JMenuItem(確定); JMenuItem jmiQu=new JMenuItem(取消); jmFenxi.add(jmiQue); jmFenxi.add(jmiQu);3.3.“文件”菜單的事件監聽jmiQue.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String filterText = jta.getText(); try jta.setText(Fenx.getFilterText(filterText); catch(Exception exx) exx.printStackTrace(); );public void actionPerformed(ActionEvent e) JFileChooser jc=new JFileChooser(); jc.showOpenDialog(this); try File file=jc.getSelectedFile(); FileInputStream fis=new FileInputStream(file); byte buf=new byte10*1024; int len=fis.read(buf); jta.append(new String(buf,0,len); catch(Exception ex) ex.printStackTrace(); 4測試分析圖4:點擊“文件”運行情況 圖5:“文件”菜單中的“打開”對話框圖7:“關于”對話框圖8:編輯菜單中顏色對話框5源程序清單import java.awt.*;import java.awt.event.*;public class Mingan1 /類一 public static void main(String args) Frame f1=new Frame(敏感詞分析程序); f1.setBounds(500, 100, 300, 200); f1.setBackground(Color.lightGray);/背景色 f1.setLayout(new GridLayout(3,1); Panel p1=new Panel(); f1.add(p1); Panel p2=new Panel(); f1.add(p2); Panel p3=new Panel(); f1.add(p3); f1.setVisible(true); Label l1=new Label(請點擊輸入含有敏感詞的文本文件:); p3.add(l1); Button b1=new Button(確定);/定義“確定”按鈕 p3.add(b1); b1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) TestJMenu jmFrame=new TestJMenu(); ); Label l2=new Label(敏感詞匯保存在sensitive.txt文件中); p1.add(l2); p2.add(new Label(請查看sensitive.txt文件); import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import java.io.File;import java.io.FileInputStream;public class TestJMenu extends JFrame implements ActionListener JTextArea jta=new JTextArea(); TestJMenu()/構造方法 this.setSize(400,300);/對話框的尺寸 JMenuBar jmb=new JMenuBar();/創建菜單欄 /菜單欄的各個菜單項 JMenu jmFile=new JMenu(文件);/“文件”菜單項的二個下拉菜單 JMenuItem jmiNew=new JMenuItem(新建); JMenuItem jmiOpen=new JMenuItem(打開); jmiOpen.addActionListener(this); jmFile.add(jmiNew); jmFile.add(jmiOpen); JMenu jmFenxi=new JMenu(分析);/“分析”菜單的二個下拉菜單 JMenuItem jmiQue=new JMenuItem(確定); JMenuItem jmiQu=new JMenuItem(取消); jmFenxi.add(jmiQue); jmFenxi.add(jmiQu); jmiQue.addActionListener(new ActionListener() /添加事件監聽 public void actionPerformed(ActionEvent e)/監聽方法 String filterText = jta.getText(); try jta.setText(Fenx.getFilterText(filterText); catch(Exception exx) exx.printStackTrace(); ); JMenu jmHelp=new JMenu(幫助); jmb.add(jmFile); jmb.add(jmFenxi); jmb.add(jmHelp); this.setJMenuBar(jmb); this.getContentPane().add(jta); this.setVisible(true); public void actionPerformed(ActionEvent e) JFileChooser jc=new JFileChooser(); jc.showOpenDialog(this); try File file=jc.getSelectedFile(); FileInputStream fis=new FileInputStream(file); byte buf=new byte10*1024; int len=fis.read(buf); jta.append(new String(buf,0,len); catch(Exception ex) ex.printStackTrace(); public static void main(String args) TestJMenu jmFrame=new TestJMenu(); jmFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); import java.io.BufferedReader;import java.io.FileReader;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Fenx public static void main(String args) throws Exception String filterText = new String(); System.out.println(getFilterText(filterText); public static String getFilterText(String filterText) throws Exception List listWord = new ArrayList(); FileReader reader = new FileReader(d:/sensitive.txt); BufferedReader br = new BufferedReader(reader); String s = null; while (s = br.readLine()!= null) listWord.add(s.trim(); br.close(); reader.close(); Matcher m = null; String str1=new String(); for (int i = 0; i listWord.size(); i+) int num=0; Pattern p=Ppile(listWord.get(i).toString(),Pattern.CASE_INSENSITIVE); StringBuffer sb = new StringBuffer(); m = p.matcher(filterText); while (m.find() m.appendReplacement(sb, 口); num+; str1=n+敏感詞 +p.toString()+ 出現:+num+次; /System.out.println(n+敏感詞 +p.toString()+ 出現:+num+次); m.appendTail(sb); filterText = sb.toString(); filterText+=str1; return filterText; 6課程設計總結經過差不多兩個星期的努力,基本上完成我的Java課程設計敏感詞匯分析程序,也基本上實現了我在需求分析時所預期的功能。通過這次的課程設計,使將我從書本上學習到的理論知識用到了實踐上,從而進一步鞏固和豐富了我所學過的知識,讓我更深層次地認識到Java及其強大的功能。同時,做這門課程設計也進一步加強了我的動手能力。為了完成好這次課程設計,我提前做了較多的準備,一邊上網查找相關資料,另一方面查閱相關書籍。在這過程中也無形中鍛煉了我的思維分析、遇到問題及想方設法通過各種途徑解決問題的能力。但是,設計過程中也存在一些問題,本來一開始想給這個敏感詞匯分析程序加上一張背景圖片,以及添加字體設置功能,但是由于本人知識淺陋以及各種其他原因,使得這些想法沒有實現,這是這次課程設計的一點遺憾。參考文獻1.孫全黨 王吳迪 趙楓朝,Java程序設計應用教程,電子工業出版社,2006.22.雷之宇,Java項目開發實踐網絡篇,中國鐵道出版社,2005.53.趙玉陽,Java從入門到精通,清華大學出版社,2006.84.李蘢怡,Java編程實例講解,高等教育出版社,2005.11完整代碼:import java.awt.*;import java.awt.event.*;public class Mingan1 public static void main(String args) Frame f1=new Frame(敏感詞分析程序); f1.setBounds(500, 100, 300, 200); f1.setBackground(Color.lightGray); f1.setLayout(new GridLayout(3,1); Panel p1=new Panel(); f1.add(p1); Panel p2=new Panel(); f1.add(p2); Panel p3=new Panel(); f1.add(p3); f1.setVisible(true); Label l1=new Label(請點擊輸入含有敏感詞的文本文件:); p3.add(l1); Button b1=new Button(確定); p3.add(b1); b1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) TestJMenu jmFrame=new TestJMenu(); ); Label l2=new Label(敏感詞匯保存在sensitive.txt文件中); p1.add(l2); p2.add(new Label(請查看sensitive.txt文件); import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import java.io.File;import java.io.FileInputStream;public class TestJMenu extends JFrame implements ActionListener JTextArea jta=new JTextArea(); TestJMenu() this.setSize(400,300); JMenuBar jmb=new JMenuBar(); JMenu jmFile=new JMenu(文件); JMenuItem jmiNew=new JMenuItem(新建); JMenuItem jmiOpen=new JMenuItem(打開); jmiOpen.addActionListener(this); jmFile.add(jmiNew); jmFile.add(jmiOpen); JMenu jmFenxi=new JMenu(分析); JMenuItem jmiQue=new JMenuItem(確定); JMenuItem jmiQu=new JMenuItem(取消); jmFenxi.add(jmiQue); jmFenxi.add(jmiQu); jmiQue.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String filterText = jta.getText(); try jta.setText(Fenx.getFilterText(filterText); catch(Exception exx) exx.printStackTrace(); ); JMenu jmHelp=new JMenu(幫助); jmb.add(jmFile); jmb.add(jmFenxi); jmb.add(jmHelp); this.setJMenuBar(jmb); this.getContentPane().add(jta); this.setVisible(true); public void actionPerformed(ActionEvent e) JFileChooser jc=new JFileChooser(); jc.showOpenDialog(this); try File file=jc.getSelectedFile(); FileInputStream fis=new FileInputStream(file); byte buf=new byte10*1024; int len=fis.read(buf); jta.append(new String(buf,0,len); catch(Exception ex) ex.printStackTrace(); public static void main(String args) TestJMenu jmFrame=new TestJMenu(); jmFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); import java.io.BufferedReader;import java.io.FileReader

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論