![中南大學(xué)Java實(shí)驗(yàn)報告_第1頁](http://file4.renrendoc.com/view11/M01/33/0E/wKhkGWWkejGAF1eCAAC3Zi62VZ4879.jpg)
![中南大學(xué)Java實(shí)驗(yàn)報告_第2頁](http://file4.renrendoc.com/view11/M01/33/0E/wKhkGWWkejGAF1eCAAC3Zi62VZ48792.jpg)
![中南大學(xué)Java實(shí)驗(yàn)報告_第3頁](http://file4.renrendoc.com/view11/M01/33/0E/wKhkGWWkejGAF1eCAAC3Zi62VZ48793.jpg)
![中南大學(xué)Java實(shí)驗(yàn)報告_第4頁](http://file4.renrendoc.com/view11/M01/33/0E/wKhkGWWkejGAF1eCAAC3Zi62VZ48794.jpg)
![中南大學(xué)Java實(shí)驗(yàn)報告_第5頁](http://file4.renrendoc.com/view11/M01/33/0E/wKhkGWWkejGAF1eCAAC3Zi62VZ48795.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
中南大學(xué)JavaSE課程設(shè)計(jì)實(shí)驗(yàn)報告設(shè)計(jì)題目:對小說的人物關(guān)系文本分析學(xué)院:信息科學(xué)與工程學(xué)院班級:信息安全1201班學(xué)號:0909121615姓名:代巍指導(dǎo)老師:郭克華
一、實(shí)驗(yàn)?zāi)康?/p>
1、學(xué)習(xí)Java界面開發(fā)基礎(chǔ)知識。利用所學(xué)到的Java編程知識和編程技巧,設(shè)計(jì)一個實(shí)際的應(yīng)用軟件,初步認(rèn)識軟件設(shè)計(jì)的基本方法,提高進(jìn)行工程設(shè)計(jì)的基本技能及分析、解決實(shí)際問題的能力,為后續(xù)課程和以后的工程實(shí)踐打下良好的基礎(chǔ)。2、掌握J(rèn)AVA語言常用類包及其常用方法和JAVA語言基本語法,掌握面向?qū)ο蟪绦蛟O(shè)計(jì)基本要素(封裝、繼承、多態(tài)),解決簡單的Java語言與系統(tǒng)設(shè)計(jì)問題。3、掌握基于AWT的圖形用戶界面設(shè)計(jì)
(1)常用標(biāo)準(zhǔn)控件的使用,如標(biāo)簽、按鈕、菜單、文本框、單選按鈕、滾動條等。(2)事件處理機(jī)制
4、掌握布局、對話框的使用,掌握事件異常的處理方法二、實(shí)驗(yàn)內(nèi)容自行下載自己最喜歡的小說1部。存儲為文本文檔。要求長篇小說,20萬字以上。任取其中10個人物,考慮他們的姓名、別名等等一系列因素。(1)統(tǒng)計(jì)每個人在小說中出現(xiàn)的次數(shù)并排序。(2)統(tǒng)計(jì)每個人在小說中出現(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個人中:1)關(guān)系最緊密的兩個人,關(guān)系最不緊密的兩個人。2)輸入一個人名,列出該人和其他人關(guān)系的緊密程度排名??磁c實(shí)際是否符合?如果不太符合,說明可能的原因。三、實(shí)驗(yàn)思想程序中用到了FileInputStream函數(shù),實(shí)現(xiàn)了能夠讀取文本文件中的文字的功能,程序中用到了setBackground等函數(shù),形成了一個比較不錯的windows的窗體外觀,除此之外還用到了:JFrame類中的JPanel,JLabel,Jbutton,…用了大量類庫中的函數(shù)實(shí)現(xiàn)了很多功能。程序靈活運(yùn)用了數(shù)組的存儲和比較功能,實(shí)現(xiàn)了將文本中的有效信息轉(zhuǎn)換為字符串并進(jìn)行比較計(jì)數(shù)等操作。1、 首先定義了一個讀取字符流對象,用來讀取文本文件文件中的文字;2、 定義集合類對象來存儲讀取的字符;3、 當(dāng)遇到所需的時便存放在臨時字符串中,遍歷整個文本文件,記錄傳入名字出現(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); } });//通過內(nèi)部類重寫關(guān)閉窗體的方法 }inttrs1(Strings){//傳入一個人物的名字,返回一個數(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; }//遍歷整個文本文件,記錄傳入名字出現(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; }//傳入一個數(shù)字,返回該數(shù)字對應(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ì)每兩個人之間的關(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ì)表只有以下簡單功能:"+"\n");jtextarea.append("1:統(tǒng)計(jì)每個人在小說中出現(xiàn)的次數(shù)并排序"+"\n");jtextarea.append("2:統(tǒng)計(jì)每個人在小說中出現(xiàn)的篇幅跨度"+"\n");jtextarea.append("3:如果兩個人在相距較短的一段文字中出現(xiàn),則說明他們有關(guān)系,距離越近關(guān)系越密切。統(tǒng)計(jì)標(biāo)準(zhǔn)自行設(shè)計(jì)。"+"\n");jtextarea.append("4:找出關(guān)系最密切的兩個人和關(guān)系最不密切的兩個人。"+"\n");jtextarea.append("5:輸入一個人名,列出該人和其他人的關(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("三國演義全集.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)','羽','云','長',arry); fun(msg,"趙云",'趙','云','子','龍',arry); fun(msg,"曹操",'曹','操','孟','德',arry); fun(msg,"孫權(quán)",'孫','權(quán)','仲','謀',a
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市新建商品房預(yù)售合同
- 中信證券大合同時代:趨勢與機(jī)遇
- 個人短期借款協(xié)議合同
- 個人商鋪?zhàn)赓U合同樣本
- 中俄化工合作協(xié)議(合同)
- 專業(yè)外訓(xùn)服務(wù)合同及履行協(xié)議
- 單位設(shè)備買賣合同參考
- 互聯(lián)網(wǎng)企業(yè)勞動合同范本
- 總包勞務(wù)施工合同年
- 二手工程設(shè)備買賣合同
- 關(guān)于防范遏制礦山領(lǐng)域重特大生產(chǎn)安全事故的硬措施課件
- 2025年中國成都餐飲業(yè)市場運(yùn)營態(tài)勢分析及投資前景預(yù)測報告
- 2024年xx縣第三小學(xué)安全工作管理制度匯編
- 項(xiàng)目合作備忘錄范文
- 婦產(chǎn)科醫(yī)生個人年終述職報告課件
- Interstellar-星際穿越課件
- 湖南大一型抽水蓄能電站施工及質(zhì)量創(chuàng)優(yōu)匯報
- 耳穴療法治療失眠
- envi二次開發(fā)素材包-idl培訓(xùn)
- 2022年上海市初中語文課程終結(jié)性評價指南
- 西門子starter軟件簡易使用手冊
評論
0/150
提交評論