面向?qū)ο蟪绦蛟O計實驗實驗八輸入輸出流_第1頁
面向?qū)ο蟪绦蛟O計實驗實驗八輸入輸出流_第2頁
面向?qū)ο蟪绦蛟O計實驗實驗八輸入輸出流_第3頁
面向?qū)ο蟪绦蛟O計實驗實驗八輸入輸出流_第4頁
面向?qū)ο蟪绦蛟O計實驗實驗八輸入輸出流_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、廣西科技大學計通學院Java面向?qū)ο蟪绦蛟O計實驗實驗八 輸入輸出流 學生姓名:××× 學 號:××× 班 級:××× 指導老師:××× 專 業(yè):計算機科學與技術(shù)提交日期:×××年×× 月××日實驗報告內(nèi)容1 實驗目的掌握字符輸入、輸出流用法;掌握使用Scanner類解析文件;掌握Console流的使用。2 實驗內(nèi)容實驗教材-第12章實驗1、2、3字符輸入輸出流;Scanner類和Console類。 要求:

2、完善程序,給出實驗結(jié)果截圖;完成試驗后練習。3 程序代碼及運行結(jié)果:實驗1 舉重成績單/ AnalysisResult.javaimport java.io.*; import java.util.*;public class AnalysisResult public static void main(String args) File fRead=new File("score.txt"); File fWrite=new File("scoreAnalysis.txt"); try Writer out=new FileWriter(fWrite)

3、; BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new FileReader(fRead); BufferedReader bufferRead=new BufferedReader(in); String str=null; while(str=bufferRead.readLine()!=null) double totalScore=Fenxi.getTotalScore(str); str=str+"總成績:"+totalScore; System.out.println(str); b

4、ufferWrite.write(str); bufferWrite.newLine(); bufferRead.close(); bufferWrite.close(); catch(IOException e) System.out.println(e.toString(); / Fenxi.javaimport java.util.*; public class Fenxi public static double getTotalScore(String s) String regex = "0123456789." String digitMess = s.rep

5、laceAll(regex,"*"); StringTokenizer fenxi = new StringTokenizer(digitMess,"*"); double totalScore=0; while(fenxi.hasMoreTokens() double score=Double.parseDouble(fenxi.nextToken(); totalScore=totalScore+score; return totalScore; / score.txt姓名:張三, 抓舉成績 106kg, 挺舉 189kg。姓名:李四, 抓舉成績 1

6、08kg, 挺舉 186kg。姓名:周五, 抓舉成績 112kg, 挺舉 190kg。運行結(jié)果如圖1所示圖1實驗2 統(tǒng)計英文單詞/ WordStatistic.javaimport java.io.*; import java.util.*;public class WordStatistic Vector<String> allWord,noSameWord; File file=new File("english.txt"); Scanner sc=null; String regex; WordStatistic () allWord=new Vector

7、<String>(); noSameWord=new Vector<String>(); regex="sdpPunct+"/正則表達式 try sc=new Scanner(file); sc.useDelimiter(regex); catch(IOException exp) System.out.println(exp.toString(); void setFileName(String name) file=new File(name); try sc=new Scanner(file); sc.useDelimiter(regex);

8、catch(IOException exp) System.out.println(exp.toString(); void WordStatistic() try while(sc.hasNext() String word=sc.next(); allWord.add(word); if(!noSameWord.contains(word) noSameWord.add(word); catch(Exception e) public Vector<String>getAllWord() return allWord; public Vector<String>ge

9、tNoSameWord() return noSameWord; / OutputWordMess.javaimport java.util.*;public class OutputWordMess public static void main(String args) Vector<String> allWord,noSameWord; WordStatistic statistic=new WordStatistic(); statistic.setFileName("hello.txt"); statistic.WordStatistic(); all

10、Word=statistic.getAllWord(); noSameWord=statistic.getNoSameWord(); System.out.println("共有"+allWord.size()+"個英文單詞"); System.out.println("有"+noSameWord.size()+"個互不相同英文單詞"); System.out.println("按出現(xiàn)的頻率排列:"); int count=new intnoSameWord.size(); for(int i=

11、0;i<noSameWord.size();i+) String s1=noSameWord.elementAt(i); for(int j=0;j<allWord.size();j+) String s2=allWord.elementAt(j); if(s1.equals(s2) counti+; for(int m=0;m<noSameWord.size();m+) for(int n=m+1;n<noSameWord.size();n+) if(countn>countm) String temp=noSameWord.elementAt(m); noSa

12、meWord.setElementAt(noSameWord.elementAt(n), m); noSameWord.setElementAt(temp, n); int t=countm; countm=countn; countn=t; for(int m=0;m<noSameWord.size();m+) double frequency=(1.0*countm)/allWord.size(); System.out.printf("%s:%-7.3f", noSameWord.elementAt(m),frequency); 運行結(jié)果如圖2所示圖2實驗3 密

13、碼流/ PassWord.javaimport java.io.*;public class PassWord public static void main(String args) boolean success=false;int count=0;Console cons;char passwd;cons=System.console();while(true)System.out.print("輸入密碼:");passwd=cons.readPassword(); count+;String password= new String(passwd);if(passw

14、ord.equals("tiger123")success=true;System.out.println("您第"+count+"次輸入的密碼正確!");break;elseSystem.out.println("您第"+count+"次輸入的密碼"+password+"不正確!");if(count=3)System.out.println("您"+count+"次輸入的密碼都不正確!");System.exit(0);if(suc

15、cess)File file=new File("score1.txt");tryFileReader inOne=new FileReader(file);BufferedReader inTow=new BufferedReader(inOne);String s=null;while(s=inTow.readLine()!=null)System.out.println(s);inOne.close();inTow.close();catch(IOException ioe) / score.txt姓名:張三, 抓舉成績 106kg, 挺舉 189kg。姓名:李四,

16、抓舉成績 108kg, 挺舉 186kg。姓名:周五, 抓舉成績 112kg, 挺舉 190kg。運行結(jié)果如圖3所示圖34 實驗后的練習:實驗1 有如下格式的成績單(文本格式)score.txt。姓名:張三,數(shù)學72分,物理67分,英語70分。姓名:李四,數(shù)學92分,物理98分,英語88分。姓名:周五,數(shù)學68分,物理80分,英語77分。要求按行讀入取成績單,并在該行的后面尾加上該同學的總成績,然后再將該行寫入到一個名字為scoreAnalysis.txt的文件中。/ AnalysisResult.javaimport java.io.*; import java.util.*;public

17、class AnalysisResult public static void main(String args) File fRead=new File("score.txt"); File fWrite=new File("scoreAnalysis.txt"); try Writer out=new FileWriter(fWrite,true); BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new FileReader(fRead); BufferedReader b

18、ufferRead=new BufferedReader(in); String str=null; while(str=bufferRead.readLine()!=null) double totalScore=Fenxi.getTotalScore(str); str=str+"總分:"+totalScore; System.out.println(str); bufferWrite.write(str); bufferWrite.newLine(); bufferRead.close(); bufferWrite.close(); catch(IOException

19、 e) System.out.println(e.toString(); / Fenxi.javaimport java.util.*;public class Fenxi public static double getTotalScore(String s) Scanner scanner=new Scanner(s); scanner.useDelimiter("0123456789.+"); double totalScore=0; while(scanner.hasNext() try double score=scanner.nextDouble(); tota

20、lScore=totalScore+score; catch(InputMismatchException exp) String t=scanner.next(); return totalScore; / score.txt姓名:張三,數(shù)學72分,物理67分,英語70分。姓名:李四,數(shù)學92分,物理98分,英語88分。姓名:周五,數(shù)學68分,物理80分,英語77分。運行結(jié)果如圖4所示圖4實驗2 按字典序輸出全部不相同的單詞。/ Dictionary.javaimport java.util.*;public class Dictionary public static void main(

21、String args)Vector<String> allWord,noSameWord;WordStatistic statistic=new WordStatistic();statistic.setFileName("hello.txt");statistic.WordStatistic();/statistic調(diào)用WordStatistic()方法allWord=statistic.getAllWord();noSameWord=statistic.getNoSameWord();System.out.println("共有"+al

22、lWord.size()+"個英文單詞");System.out.println("有"+noSameWord.size()+"個互不相同英文單詞");System.out.println("按字典順序排列:");String s=new String noSameWord.size();for(int i=0;i<noSameWord.size();i+)si=noSameWord.elementAt(i);Arrays.sort(s);for(int i=0;i<noSameWord.size();i+)System.out.println(si+" ");運行結(jié)果如圖5所示圖5實驗3 編寫一個程序,程序運行時,要求用戶輸入的密碼是:hello。如果用戶輸入了正確的密碼。程序?qū)⑤敵觥澳愫?,歡迎你!”。程序允許用戶2次輸入的密碼不正確,一旦超過2次,程序?qū)⒘⒖掏顺觥? PassWord.javaimport java.io.*; import java.util.Scanner; public class PassWord public stati

溫馨提示

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

評論

0/150

提交評論