




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中南大學(xué)JavaSE課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告設(shè)計(jì)題目:對(duì)小說(shuō)的人物關(guān)系文本分析學(xué)院:信息科學(xué)與工程學(xué)院班級(jí):信息安全1201班學(xué)號(hào):0909121615姓名:代巍指導(dǎo)老師:郭克華
一、實(shí)驗(yàn)?zāi)康?/p>
1、學(xué)習(xí)Java界面開發(fā)基礎(chǔ)知識(shí)。利用所學(xué)到的Java編程知識(shí)和編程技巧,設(shè)計(jì)一個(gè)實(shí)際的應(yīng)用軟件,初步認(rèn)識(shí)軟件設(shè)計(jì)的基本方法,提高進(jìn)行工程設(shè)計(jì)的基本技能及分析、解決實(shí)際問題的能力,為后續(xù)課程和以后的工程實(shí)踐打下良好的基礎(chǔ)。2、掌握J(rèn)AVA語(yǔ)言常用類包及其常用方法和JAVA語(yǔ)言基本語(yǔ)法,掌握面向?qū)ο蟪绦蛟O(shè)計(jì)基本要素(封裝、繼承、多態(tài)),解決簡(jiǎn)單的Java語(yǔ)言與系統(tǒng)設(shè)計(jì)問題。3、掌握基于AWT的圖形用戶界面設(shè)計(jì)
(1)常用標(biāo)準(zhǔn)控件的使用,如標(biāo)簽、按鈕、菜單、文本框、單選按鈕、滾動(dòng)條等。(2)事件處理機(jī)制
4、掌握布局、對(duì)話框的使用,掌握事件異常的處理方法二、實(shí)驗(yàn)內(nèi)容自行下載自己最喜歡的小說(shuō)1部。存儲(chǔ)為文本文檔。要求長(zhǎng)篇小說(shuō),20萬(wàn)字以上。任取其中10個(gè)人物,考慮他們的姓名、別名等等一系列因素。(1)統(tǒng)計(jì)每個(gè)人在小說(shuō)中出現(xiàn)的次數(shù)并排序。(2)統(tǒng)計(jì)每個(gè)人在小說(shuō)中出現(xiàn)的篇幅跨度(第一次出現(xiàn)距最后一次出現(xiàn)的篇幅)并排序。(3)如果兩人在相距較短的一段文字中出現(xiàn),我們認(rèn)為兩人有關(guān)系,距離越短,關(guān)系越近。自行設(shè)計(jì)統(tǒng)計(jì)標(biāo)準(zhǔn),找出10個(gè)人中:1)關(guān)系最緊密的兩個(gè)人,關(guān)系最不緊密的兩個(gè)人。2)輸入一個(gè)人名,列出該人和其他人關(guān)系的緊密程度排名??磁c實(shí)際是否符合?如果不太符合,說(shuō)明可能的原因。三、實(shí)驗(yàn)思想程序中用到了FileInputStream函數(shù),實(shí)現(xiàn)了能夠讀取文本文件中的文字的功能,程序中用到了setBackground等函數(shù),形成了一個(gè)比較不錯(cuò)的windows的窗體外觀,除此之外還用到了:JFrame類中的JPanel,JLabel,Jbutton,…用了大量類庫(kù)中的函數(shù)實(shí)現(xiàn)了很多功能。程序靈活運(yùn)用了數(shù)組的存儲(chǔ)和比較功能,實(shí)現(xiàn)了將文本中的有效信息轉(zhuǎn)換為字符串并進(jìn)行比較計(jì)數(shù)等操作。1、 首先定義了一個(gè)讀取字符流對(duì)象,用來(lái)讀取文本文件文件中的文字;2、 定義集合類對(duì)象來(lái)存儲(chǔ)讀取的字符;3、 當(dāng)遇到所需的時(shí)便存放在臨時(shí)字符串中,遍歷整個(gè)文本文件,記錄傳入名字出現(xiàn)的位置,存在數(shù)組。4、 將數(shù)組中的其加入集合統(tǒng)計(jì)次數(shù),并構(gòu)造分析函數(shù),分析人物關(guān)系;5、設(shè)計(jì)圖形界面,添加按鈕,面板等元素。實(shí)現(xiàn)人物關(guān)系分析結(jié)果的輸出。四、程序代碼及注釋importjava.io.*;//提供系統(tǒng)輸入和輸出。importjava.sql.*;//建立連接importjava.awt.*;//用于創(chuàng)建用戶界面和繪制圖形圖像的所有類importjava.awt.event.*;//用于操作事件的實(shí)現(xiàn)importjavax.swing.*;importjava.util.*;publicclassMyFileextendsJFrameimplementsActionListener{ JLabeljl=newJLabel("文字分析人物關(guān)系統(tǒng)計(jì)",JLabel.CENTER);//設(shè)置標(biāo)簽 JLabelJLName=newJLabel("姓名:");JTextFieldJTName=newJTextField(); ButtonGroupBG=newButtonGroup();//設(shè)置按鈕 JButtonJBSet=newJButton("查詢"); JButtonJBNext=newJButton("重置"); JButtonJBExit=newJButton("退出");JFrameframe=newJFrame();JTextAreajtextarea=newJTextArea(); publicMyFile(){ this.setTitle("查詢界面"); this.setLayout(null); jl.setForeground(Color.blue);//設(shè)置標(biāo)簽的前景顏色 jl.setBounds(50,30,200,100);//標(biāo)簽的大小,位置 this.add(jl); JBSet.setBounds(50,200,90,20); this.add(JBSet); JBSet.addActionListener(this); this.add(JBNext); JBNext.addActionListener(this); JBExit.setBounds(150,200,90,20); this.add(JBExit); JBExit.addActionListener(this); this.setBounds(10,10,300,300);//設(shè)置窗口大小 this.setVisible(true); jtextarea.setEditable(false);jtextarea.setLineWrap(true);frame.add(jtextarea);frame.setSize(520,660);frame.setResizable(false);frame.setLocation(200,100);frame.setVisible(false); addWindowListener(newWindowAdapter() { publicvoidwindowClosing(WindowEvente) { System.exit(0); } });//通過(guò)內(nèi)部類重寫關(guān)閉窗體的方法 }inttrs1(Strings){//傳入一個(gè)人物的名字,返回一個(gè)數(shù)字 if(s.equals("劉備"))return0; if(s.equals("張飛"))return1; if(s.equals("關(guān)羽"))return2; if(s.equals("趙云"))return3; if(s.equals("曹操"))return4; if(s.equals("孫權(quán)"))return5; if(s.equals("周瑜"))return6; if(s.equals("黃蓋"))return7; if(s.equals("黃忠"))return8; if(s.equals("荀彧"))return9; elsereturn-1; }//遍歷整個(gè)文本文件,記錄傳入名字出現(xiàn)的位置,存在數(shù)組arry中voidfun(Strings,Stringstr,chara,charb,charc,chard,intarry[][]){ inti,j=0; try{for(i=0;i<s.length();i++){ if(s.charAt(i)==a&&s.charAt(i+1)==b||s.charAt(i)==c&&s.charAt(i+1)==d){ j++; arry[trs1(str)][j]=i; } }}catch(Exceptionex){} arry[trs1(str)][0]=j; }//傳入一個(gè)數(shù)字,返回該數(shù)字對(duì)應(yīng)的人物名字Stringtrs(inti){ Stringstr1="劉備"; Stringstr2="張飛"; Stringstr3="關(guān)羽"; Stringstr4="趙云"; Stringstr5="曹操"; Stringstr6="孫權(quán)"; Stringstr7="周瑜"; Stringstr8="黃蓋"; Stringstr9="黃忠"; Stringstr10="荀彧"; if(i==0)returnstr1; if(i==1)returnstr2; if(i==2)returnstr3; if(i==3)returnstr4;if(i==4)returnstr5; if(i==5)returnstr6; if(i==6)returnstr7; if(i==7)returnstr8; if(i==8)returnstr9; if(i==9)returnstr10; elsereturnstr3; }//統(tǒng)計(jì)每?jī)蓚€(gè)人之間的關(guān)系,存入arry1數(shù)組中voidrela(intarry[][],intarry1[][]){ inti;intk; for(intp=0;p<10;p++) for(intq=0;q<10;q++) for(i=1;i<=arry[p][0];i++) for(k=1;k<=arry[q][0];k++){ if(Math.abs((arry[p][i]-arry[q][k]))<=100){ arry1[p][q]++; } } for(i=0;i<10;i++)arry1[i][i]=0; }voidcompare(intarry[][],intarry1[][]){ inta,b,i,k; intl=0; intc=0; intm=0; intn=0; a=arry1[0][1];b=arry1[0][1]; for(i=0;i<10;i++) { jtextarea.append(trs(i)+"出現(xiàn)的次數(shù)為"+arry[i][0]); jtextarea.append("\n"); } for(i=0;i<10;i++) for(k=0;k<10;k++){ if(i==k)continue; if(arry1[i][k]>=a) {a=arry1[i][k];l=i;c=k;} if(arry1[i][k]<=b) {b=arry1[i][k];m=i;n=k;} }jtextarea.append("周瑜和孫權(quán)的關(guān)系為:"+arry1[trs1("周瑜")][trs1("孫權(quán)")]);jtextarea.append("\n");jtextarea.append(trs(l)+"和"+trs(c)+"的關(guān)系最近");jtextarea.append("\n");jtextarea.append(trs(m)+"和"+trs(n)+"的關(guān)系最遠(yuǎn)");jtextarea.append("\n");}publicvoidpianfu(intarry[][]){ inti; try{Stringstr=JTName.getText(); i=arry[trs1(str)][arry[trs1(str)][0]]-arry[trs1(str)][1]; jtextarea.append(str+"出現(xiàn)的篇幅為(字節(jié)):"+i);}catch(Exceptionex){} }voidshow(intarry1[][]){ inti;intj;intx; intm=0; Stringsname=JTName.getText(); x=arry1[trs1(sname)][0];jtextarea.append("與"+sname+"關(guān)系由近到遠(yuǎn)的關(guān)系為:"); for(i=0;i<9;i++){ for(j=0;j<10;j++){ if(j==trs1(sname))continue; if(arry1[trs1(sname)][j]>=x){x=arry1[trs1(sname)][j];m=j;jtextarea.append(""); } } jtextarea.append(trs(m)); arry1[trs1(sname)][m]=-1; x=0; } jtextarea.append("\n");}publicvoidactionPerformed(ActionEvente){if(e.getSource()==JBExit){ setVisible(false);}if(e.getSource()==JBSet){frame.setVisible(true);frame.setTitle("結(jié)果統(tǒng)計(jì)");jtextarea.append("統(tǒng)計(jì)表只有以下簡(jiǎn)單功能:"+"\n");jtextarea.append("1:統(tǒng)計(jì)每個(gè)人在小說(shuō)中出現(xiàn)的次數(shù)并排序"+"\n");jtextarea.append("2:統(tǒng)計(jì)每個(gè)人在小說(shuō)中出現(xiàn)的篇幅跨度"+"\n");jtextarea.append("3:如果兩個(gè)人在相距較短的一段文字中出現(xiàn),則說(shuō)明他們有關(guān)系,距離越近關(guān)系越密切。統(tǒng)計(jì)標(biāo)準(zhǔn)自行設(shè)計(jì)。"+"\n");jtextarea.append("4:找出關(guān)系最密切的兩個(gè)人和關(guān)系最不密切的兩個(gè)人。"+"\n");jtextarea.append("5:輸入一個(gè)人名,列出該人和其他人的關(guān)系緊密程度排名。"+"\n");jtextarea.append("\n");jtextarea.append("\n");jtextarea.append("\n");inta;intb; int[][]arry=newint[10][10000]; int[][]arry1=newint[10][10]; try{ Filefile=newFile("三國(guó)演義全集.txt"); FileInputStreamfis=newFileInputStream(file); byte[]data=newbyte[(int)file.length()]; fis.read(data); fis.close(); Stringmsg=newString(newString(data)); fun(msg,"劉備",'劉','備','玄','德',arry); fun(msg,"張飛",'張','飛','翼','德',arry); fun(msg,"關(guān)羽",'關(guān)','羽','云','長(zhǎng)',arry); fun(msg,"趙云",'趙','云','子','龍',arry); fun(msg,"曹操",'曹','操','孟','德',arry); fun(msg,"孫權(quán)",'孫','權(quán)','仲','謀',a
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 音樂作品創(chuàng)作與發(fā)行權(quán)轉(zhuǎn)讓協(xié)議
- 2025年建筑工程法規(guī)更新解析試題及答案
- 現(xiàn)代管理學(xué)課程安排與內(nèi)容試題及答案
- 突破難關(guān)的建筑工程試題及答案技巧
- 市政學(xué)考察的重要性試題及答案分析
- 2024年春九年級(jí)歷史下冊(cè)第五單元冷戰(zhàn)和美蘇對(duì)峙的世界5.19亞非拉國(guó)家的新發(fā)展課后提分訓(xùn)練新人教版
- 2025年行政公文寫作考試版圖試題及答案
- 2025版合同終止協(xié)議書:辭職與解除勞動(dòng)合同的規(guī)范化流程
- 2025借款合同模板2
- 2025私人委托合同范本
- 國(guó)開2024年秋《心理健康教育》形考任務(wù)1-9答案
- 電力運(yùn)維管理平臺(tái)方案設(shè)計(jì)
- 安全培訓(xùn)管理體系
- 機(jī)場(chǎng)地震應(yīng)急處理與疏散預(yù)案
- 南京工業(yè)大學(xué)《化工廢水處理》2022-2023學(xué)年第一學(xué)期期末試卷
- 《阻燃材料與技術(shù)》課件 顏龍 第3、4講 阻燃基本理論、阻燃劑性能與應(yīng)用
- 高三第二輪復(fù)習(xí)之文言翻譯(李麗君)省公開課獲獎(jiǎng)?wù)n件市賽課比賽一等獎(jiǎng)?wù)n件
- 服務(wù)禮儀培訓(xùn)課件
- 2024年江蘇省鹽城市中考語(yǔ)文真題
- 教輔資料進(jìn)校園審批制度
- 九年級(jí)你準(zhǔn)備好了嗎崔喜利公開課獲獎(jiǎng)?wù)n件百校聯(lián)賽一等獎(jiǎng)?wù)n件
評(píng)論
0/150
提交評(píng)論