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

下載本文檔

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

文檔簡介

Java課程設(shè)計報告 題 目:敏感詞匯分析 年級專業(yè):計科2102 學(xué) 號: * 學(xué)生姓名: * 指導(dǎo)老師: 完成時間:2010年 6月 20 日目 錄摘要1前言21需求分析21.1需求分析21.2功能設(shè)計32.概要設(shè)計32.1程序設(shè)計思路32.2程序運行界面32.3模塊說明圖42.4程序流程圖52.5程序相關(guān)說明63.程序詳細設(shè)計與分析63.1.初始化組件63.2.構(gòu)建菜單欄及其下拉菜單63.3.“文件”菜單的事件監(jiān)聽73.4.“編輯”菜單的事件監(jiān)聽83.5.異常處理94測試分析105源程序清單136課程設(shè)計總結(jié)17參考文獻17 敏感詞匯分析程序的設(shè)計摘要 該報告中的程序是使用Java程序編寫, 21世紀(jì)是信息爆炸的時代,信息技術(shù),網(wǎng)絡(luò)技術(shù)等飛速發(fā)展。因而出現(xiàn)許多網(wǎng)絡(luò)用詞,當(dāng)然也包括不文明的用語,這就需要開發(fā)一個軟件來檢索出分析網(wǎng)絡(luò)用語,用來屏蔽一些不文明敏感的詞匯。給我們大家營造一個安全文明的網(wǎng)絡(luò)環(huán)境!關(guān)鍵字:敏感詞匯分析程序;Java語言;Jcreator前言Java的前身是Oak,它一開始只是被應(yīng)用于消費性電子產(chǎn)品中。后來它的開發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的Internet上。1995年,Java語言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來,Java編程語言及平臺成功地運用在網(wǎng)絡(luò)計算及移動等各個領(lǐng)域。Java的體系結(jié)構(gòu)由Java語言、Java class、Java API、Java虛擬機組成。它具有簡單、面向?qū)ο蟆⒔?、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點。Java支持多線程編程,Java運行時系統(tǒng)在多線程同步方面具有成熟的解決方案。Java的平臺標(biāo)準(zhǔn)有Java ME,Java SE和Java EE。Java發(fā)展到今天,它的卓越成就及在業(yè)界的地位毋庸置疑。目前在眾多的支持Java的開發(fā)工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡稱JDK是大多開發(fā)工具的基礎(chǔ)。以上的每種開發(fā)工具都有優(yōu)缺點,對于開發(fā)者來說,重要的是要根據(jù)自己的開發(fā)規(guī)模、開發(fā)內(nèi)容和軟硬件環(huán)境等因素來選擇一種合適的開發(fā)工具。在本程序設(shè)計中,因為需要開發(fā)的是敏感詞匯分析程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的JCreator開發(fā)工具。1需求分析1.1需求分析現(xiàn)在各大軟件公司都有自己的、各種高級敏感詞匯的程序,但是這些公司都有自己的版權(quán),我們也不可能得到這些源代碼!而且這些公司的程序也相當(dāng)復(fù)雜,僅從日常應(yīng)用方面來說,對于初學(xué)java的我們也無法理解,就需要我們開發(fā)一個簡單易懂的敏感詞匯分析程序。1.2功能設(shè)計本程序要構(gòu)建的文本編輯器程序參照了Windows操作系統(tǒng)的文本編輯器工具,其功能有以下幾個方面:(1).菜單中有“文件”,“分析”,“幫助”三個主菜單。(2)“文件”有“新建”“打開”二個子菜單:分別用于新 建文件,打開文件。 (3)“分析”中有“確定”“取消”二個子菜單:用于開始分析文本中的敏感詞匯,取消分析文件中含有的敏感詞匯。 (4)“幫助”菜單中有關(guān)于敏感詞匯分析程序的相關(guān)介紹。2.概要設(shè)計2.1程序設(shè)計思路在本程序中,設(shè)計了一個菜單欄和文本編輯區(qū)。設(shè)計過程中用到了FileReader,JMenu,JTextPane,JFileChooser等。JMenu用來制作菜單,菜單包括“文件”“分析”“幫助”。JTextPane主要用來輸入文本。2.2程序運行界面2.5程序相關(guān)說明整個敏感詞匯分析器分為2快:菜單欄和內(nèi)容輸入?yún)^(qū)。本程序中由Mingan1、TextJMenu、Fenx三個類共同組成分別實現(xiàn)部分程序功能。 3.程序詳細設(shè)計與分析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實現(xiàn)動作監(jiān)聽(ActionListener)ublic class TestJMenu extends JFrame implements ActionListener3.3構(gòu)建菜單欄及其下拉菜單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.“文件”菜單的事件監(jiān)聽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:“關(guān)于”對話框圖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()/構(gòu)造方法 this.setSize(400,300);/對話框的尺寸 JMenuBar jmb=new JMenuBar();/創(chuàng)建菜單欄 /菜單欄的各個菜單項 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() /添加事件監(jiān)聽 public void actionPerformed(ActionEvent e)/監(jiān)聽方法 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()+ 出現(xiàn):+num+次; /System.out.println(n+敏感詞 +p.toString()+ 出現(xiàn):+num+次); m.appendTail(sb); filterText = sb.toString(); filterText+=str1; return filterText; 6課程設(shè)計總結(jié)經(jīng)過差不多兩個星期的努力,基本上完成我的Java課程設(shè)計敏感詞匯分析程序,也基本上實現(xiàn)了我在需求分析時所預(yù)期的功能。通過這次的課程設(shè)計,使將我從書本上學(xué)習(xí)到的理論知識用到了實踐上,從而進一步鞏固和豐富了我所學(xué)過的知識,讓我更深層次地認識到Java及其強大的功能。同時,做這門課程設(shè)計也進一步加強了我的動手能力。為了完成好這次課程設(shè)計,我提前做了較多的準(zhǔn)備,一邊上網(wǎng)查找相關(guān)資料,另一方面查閱相關(guān)書籍。在這過程中也無形中鍛煉了我的思維分析、遇到問題及想方設(shè)法通過各種途徑解決問題的能力。但是,設(shè)計過程中也存在一些問題,本來一開始想給這個敏感詞匯分析程序加上一張背景圖片,以及添加字體設(shè)置功能,但是由于本人知識淺陋以及各種其他原因,使得這些想法沒有實現(xiàn),這是這次課程設(shè)計的一點遺憾。參考文獻1.孫全黨 王吳迪 趙楓朝,Java程序設(shè)計應(yīng)用教程,電子工業(yè)出版社,2006.22.雷之宇,Java項目開發(fā)實踐網(wǎng)絡(luò)篇,中國鐵道出版社,2005.53.趙玉陽,Java從入門到精通,清華大學(xué)出版社,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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論