




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java課程設(shè)計(jì)報(bào)告 題 目:敏感詞匯分析 年級(jí)專業(yè):計(jì)科2102 學(xué) 號(hào): * 學(xué)生姓名: * 指導(dǎo)老師: 完成時(shí)間:2010年 6月 20 日目 錄摘要1前言21需求分析21.1需求分析21.2功能設(shè)計(jì)32.概要設(shè)計(jì)32.1程序設(shè)計(jì)思路32.2程序運(yùn)行界面32.3模塊說明圖42.4程序流程圖52.5程序相關(guān)說明63.程序詳細(xì)設(shè)計(jì)與分析63.1.初始化組件63.2.構(gòu)建菜單欄及其下拉菜單63.3.“文件”菜單的事件監(jiān)聽73.4.“編輯”菜單的事件監(jiān)聽83.5.異常處理94測(cè)試分析105源程序清單136課程設(shè)計(jì)總結(jié)17參考文獻(xiàn)17 敏感詞匯分析程序的設(shè)計(jì)摘要 該報(bào)告中的程序是使用Java程序編寫, 21世紀(jì)是信息爆炸的時(shí)代,信息技術(shù),網(wǎng)絡(luò)技術(shù)等飛速發(fā)展。因而出現(xiàn)許多網(wǎng)絡(luò)用詞,當(dāng)然也包括不文明的用語,這就需要開發(fā)一個(gè)軟件來檢索出分析網(wǎng)絡(luò)用語,用來屏蔽一些不文明敏感的詞匯。給我們大家營造一個(gè)安全文明的網(wǎng)絡(luò)環(huán)境!關(guān)鍵字:敏感詞匯分析程序;Java語言;Jcreator前言Java的前身是Oak,它一開始只是被應(yīng)用于消費(fèi)性電子產(chǎn)品中。后來它的開發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的Internet上。1995年,Java語言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來,Java編程語言及平臺(tái)成功地運(yùn)用在網(wǎng)絡(luò)計(jì)算及移動(dòng)等各個(gè)領(lǐng)域。Java的體系結(jié)構(gòu)由Java語言、Java class、Java API、Java虛擬機(jī)組成。它具有簡單、面向?qū)ο蟆⒔?、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點(diǎn)。Java支持多線程編程,Java運(yùn)行時(shí)系統(tǒng)在多線程同步方面具有成熟的解決方案。Java的平臺(tái)標(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)缺點(diǎn),對(duì)于開發(fā)者來說,重要的是要根據(jù)自己的開發(fā)規(guī)模、開發(fā)內(nèi)容和軟硬件環(huán)境等因素來選擇一種合適的開發(fā)工具。在本程序設(shè)計(jì)中,因?yàn)樾枰_發(fā)的是敏感詞匯分析程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的JCreator開發(fā)工具。1需求分析1.1需求分析現(xiàn)在各大軟件公司都有自己的、各種高級(jí)敏感詞匯的程序,但是這些公司都有自己的版權(quán),我們也不可能得到這些源代碼!而且這些公司的程序也相當(dāng)復(fù)雜,僅從日常應(yīng)用方面來說,對(duì)于初學(xué)java的我們也無法理解,就需要我們開發(fā)一個(gè)簡單易懂的敏感詞匯分析程序。1.2功能設(shè)計(jì)本程序要構(gòu)建的文本編輯器程序參照了Windows操作系統(tǒng)的文本編輯器工具,其功能有以下幾個(gè)方面:(1).菜單中有“文件”,“分析”,“幫助”三個(gè)主菜單。(2)“文件”有“新建”“打開”二個(gè)子菜單:分別用于新 建文件,打開文件。 (3)“分析”中有“確定”“取消”二個(gè)子菜單:用于開始分析文本中的敏感詞匯,取消分析文件中含有的敏感詞匯。 (4)“幫助”菜單中有關(guān)于敏感詞匯分析程序的相關(guān)介紹。2.概要設(shè)計(jì)2.1程序設(shè)計(jì)思路在本程序中,設(shè)計(jì)了一個(gè)菜單欄和文本編輯區(qū)。設(shè)計(jì)過程中用到了FileReader,JMenu,JTextPane,JFileChooser等。JMenu用來制作菜單,菜單包括“文件”“分析”“幫助”。JTextPane主要用來輸入文本。2.2程序運(yùn)行界面2.5程序相關(guān)說明整個(gè)敏感詞匯分析器分為2快:菜單欄和內(nèi)容輸入?yún)^(qū)。本程序中由Mingan1、TextJMenu、Fenx三個(gè)類共同組成分別實(shí)現(xiàn)部分程序功能。 3.程序詳細(xì)設(shè)計(jì)與分析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(請(qǐng)點(diǎn)擊輸入含有敏感詞的文本文件:); 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(請(qǐng)查看sensitive.txt文件); 3.2.類TextJMenu繼承JFrame實(shí)現(xiàn)動(dòng)作監(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測(cè)試分析圖4:點(diǎn)擊“文件”運(yùn)行情況 圖5:“文件”菜單中的“打開”對(duì)話框圖7:“關(guān)于”對(duì)話框圖8:編輯菜單中顏色對(duì)話框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(請(qǐng)點(diǎn)擊輸入含有敏感詞的文本文件:); 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(請(qǐng)查看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);/對(duì)話框的尺寸 JMenuBar jmb=new JMenuBar();/創(chuàng)建菜單欄 /菜單欄的各個(gè)菜單項(xiàng) JMenu jmFile=new JMenu(文件);/“文件”菜單項(xiàng)的二個(gè)下拉菜單 JMenuItem jmiNew=new JMenuItem(新建); JMenuItem jmiOpen=new JMenuItem(打開); jmiOpen.addActionListener(this); jmFile.add(jmiNew); jmFile.add(jmiOpen); JMenu jmFenxi=new JMenu(分析);/“分析”菜單的二個(gè)下拉菜單 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è)計(jì)總結(jié)經(jīng)過差不多兩個(gè)星期的努力,基本上完成我的Java課程設(shè)計(jì)敏感詞匯分析程序,也基本上實(shí)現(xiàn)了我在需求分析時(shí)所預(yù)期的功能。通過這次的課程設(shè)計(jì),使將我從書本上學(xué)習(xí)到的理論知識(shí)用到了實(shí)踐上,從而進(jìn)一步鞏固和豐富了我所學(xué)過的知識(shí),讓我更深層次地認(rèn)識(shí)到Java及其強(qiáng)大的功能。同時(shí),做這門課程設(shè)計(jì)也進(jìn)一步加強(qiáng)了我的動(dòng)手能力。為了完成好這次課程設(shè)計(jì),我提前做了較多的準(zhǔn)備,一邊上網(wǎng)查找相關(guān)資料,另一方面查閱相關(guān)書籍。在這過程中也無形中鍛煉了我的思維分析、遇到問題及想方設(shè)法通過各種途徑解決問題的能力。但是,設(shè)計(jì)過程中也存在一些問題,本來一開始想給這個(gè)敏感詞匯分析程序加上一張背景圖片,以及添加字體設(shè)置功能,但是由于本人知識(shí)淺陋以及各種其他原因,使得這些想法沒有實(shí)現(xiàn),這是這次課程設(shè)計(jì)的一點(diǎn)遺憾。參考文獻(xiàn)1.孫全黨 王吳迪 趙楓朝,Java程序設(shè)計(jì)應(yīng)用教程,電子工業(yè)出版社,2006.22.雷之宇,Java項(xiàng)目開發(fā)實(shí)踐網(wǎng)絡(luò)篇,中國鐵道出版社,2005.53.趙玉陽,Java從入門到精通,清華大學(xué)出版社,2006.84.李蘢怡,Java編程實(shí)例講解,高等教育出版社,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(請(qǐng)點(diǎn)擊輸入含有敏感詞的文本文件:); 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(請(qǐng)查看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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業(yè)心理健康課件
- 新生開學(xué)心理疏導(dǎo)調(diào)整課程
- 平面設(shè)計(jì)作品的創(chuàng)意思路發(fā)展試題及答案
- 助理廣告師考試品牌傳播的實(shí)踐與挑戰(zhàn)試題及答案
- 2024年考生必看的設(shè)計(jì)師考試要點(diǎn)試題及答案
- 16年審計(jì)試題及答案
- 農(nóng)業(yè)公需科目試題及答案
- 助理廣告師考試技巧與實(shí)操結(jié)合方法試題及答案
- 2025年人工智能賦能公關(guān)與傳播的簡要指南報(bào)告
- 助理廣告師考試備考秘訣試題及答案
- 環(huán)境藝術(shù)設(shè)計(jì)職業(yè)生涯規(guī)劃書
- 郵政社招筆試試題及答案
- 2025年java開發(fā)面試題及答案
- (完整版)公司的代賬協(xié)議模板合同7篇
- 全過程工程咨詢投標(biāo)方案(技術(shù)方案)
- 2024中國合同能源管理行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 風(fēng)力發(fā)電項(xiàng)目實(shí)習(xí)報(bào)告范文
- 自然辯證法概論(視頻課)知到課后答案智慧樹章節(jié)測(cè)試答案2025年春安徽農(nóng)業(yè)大學(xué)
- 海南省臨高縣2022-2023學(xué)年小升初語文試卷(有答案)
- 第六單元“保護(hù)環(huán)境”(主題閱讀)-六年級(jí)語文上冊(cè)閱讀理解(統(tǒng)編版)
- 國防科大暗室屏蔽部分標(biāo)書
評(píng)論
0/150
提交評(píng)論