《Java面向对象程序设计》实验实验八输入输出流.docx
- 文档编号:789099
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:13
- 大小:61.54KB
《Java面向对象程序设计》实验实验八输入输出流.docx
《《Java面向对象程序设计》实验实验八输入输出流.docx》由会员分享,可在线阅读,更多相关《《Java面向对象程序设计》实验实验八输入输出流.docx(13页珍藏版)》请在冰豆网上搜索。
《Java面向对象程序设计》实验实验八输入输出流
广西科技大学
计通学院
《Java面向对象程序设计》实验
实验八输入输出流
学生姓名:
×××
学号:
×××
班级:
×××
指导老师:
×××
专业:
计算机科学与技术
提交日期:
×××年××月××日
实验报告内容
1.实验目的
掌握字符输入、输出流用法;
掌握使用Scanner类解析文件;
掌握Console流的使用。
2.实验内容
实验教材-第12章实验1、2、3
字符输入输出流;Scanner类和Console类。
要求:
完善程序,给出实验结果截图;
完成试验后练习。
3.程序代码及运行结果:
实验1举重成绩单
//AnalysisResult.java
importjava.io.*;
importjava.util.*;
publicclassAnalysisResult{
publicstaticvoidmain(String[]args){
FilefRead=newFile("score.txt");
FilefWrite=newFile("scoreAnalysis.txt");
try{
Writerout=newFileWriter(fWrite);
BufferedWriterbufferWrite=newBufferedWriter(out);
Readerin=newFileReader(fRead);
BufferedReaderbufferRead=newBufferedReader(in);
Stringstr=null;
while((str=bufferRead.readLine())!
=null){
doubletotalScore=Fenxi.getTotalScore(str);
str=str+"总成绩:
"+totalScore;
System.out.println(str);
bufferWrite.write(str);
bufferWrite.newLine();
}
bufferRead.close();
bufferWrite.close();
}
catch(IOExceptione){
System.out.println(e.toString());
}
}
}
//Fenxi.java
importjava.util.*;
publicclassFenxi{
publicstaticdoublegetTotalScore(Strings){
Stringregex="[^0123456789.]";
StringdigitMess=s.replaceAll(regex,"*");
StringTokenizerfenxi=newStringTokenizer(digitMess,"*");
doubletotalScore=0;
while(fenxi.hasMoreTokens()){
doublescore=Double.parseDouble(fenxi.nextToken());
totalScore=totalScore+score;
}
returntotalScore;
}
}
//score.txt
:
张三,抓举成绩106kg,挺举189kg。
:
李四,抓举成绩108kg,挺举186kg。
:
周五,抓举成绩112kg,挺举190kg。
运行结果如图1所示
图1
实验2统计英文单词
//WordStatistic.java
importjava.io.*;
importjava.util.*;
publicclassWordStatistic{
Vector
Filefile=newFile("english.txt");
Scannersc=null;
Stringregex;
WordStatistic(){
allWord=newVector
noSameWord=newVector
regex="[\\s\\d\\p{Punct}]+";//正则表达式
try{
sc=newScanner(file);
sc.useDelimiter(regex);
}
catch(IOExceptionexp){
System.out.println(exp.toString());
}
}
voidsetFileName(Stringname){
file=newFile(name);
try{
sc=newScanner(file);
sc.useDelimiter(regex);
}
catch(IOExceptionexp){
System.out.println(exp.toString());
}
}
voidWordStatistic(){
try{
while(sc.hasNext()){
Stringword=sc.next();
allWord.add(word);
if(!
noSameWord.contains(word))
noSameWord.add(word);
}
}
catch(Exceptione){}
}
publicVector
returnallWord;
}
publicVector
returnnoSameWord;
}
}
//OutputWordMess.java
importjava.util.*;
publicclassOutputWordMess{
publicstaticvoidmain(String[]args){
Vector
WordStatisticstatistic=newWordStatistic();
statistic.setFileName("hello.txt");
statistic.WordStatistic();
allWord=statistic.getAllWord();
noSameWord=statistic.getNoSameWord();
System.out.println("共有"+allWord.size()+"个英文单词");
System.out.println("有"+noSameWord.size()+"个互不相同英文单词");
System.out.println("按出现的频率排列:
");
intcount[]=newint[noSameWord.size()];
for(inti=0;i Strings1=noSameWord.elementAt(i); for(intj=0;j Strings2=allWord.elementAt(j); if(s1.equals(s2)) count[i]++; } } for(intm=0;m for(intn=m+1;n if(count[n]>count[m]){ Stringtemp=noSameWord.elementAt(m); noSameWord.setElementAt(noSameWord.elementAt(n),m); noSameWord.setElementAt(temp,n); intt=count[m]; count[m]=count[n]; count[n]=t; } } } for(intm=0;m doublefrequency=(1.0*count[m])/allWord.size(); System.out.printf("%s: %-7.3f",noSameWord.elementAt(m),frequency); } } } 运行结果如图2所示 图2 实验3密码流 //PassWord.java importjava.io.*; publicclassPassWord{ publicstaticvoidmain(String[]args){ booleansuccess=false; intcount=0; Consolecons; char[]passwd; cons=System.console(); while(true){ System.out.print("输入密码: "); passwd=cons.readPassword(); count++; Stringpassword=newString(passwd); if(password.equals("tiger123")){ success=true; System.out.println("您第"+count+"次输入的密码正确! "); break; }else{ System.out.println("您第"+count+"次输入的密码"+password+"不正确! "); }if(count==3){ System.out.println("您"+count+"次输入的密码都不正确! "); System.exit(0); } } if(success){ Filefile=newFile("score1.txt"); try{ FileReaderinOne=newFileReader(file); BufferedReaderinTow=newBufferedReader(inOne); Strings=null; while((s=inTow.readLine())! =null){ System.out.println(s); } inOne.close(); inTow.close(); }catch(IOExceptionioe){} } } } //score.txt : 张三,抓举成绩106kg,挺举189kg。 : 李四,抓举成绩108kg,挺举186kg。 : 周五,抓举成绩112kg,挺举190kg。 运行结果如图3所示 图3 4.实验后的练习: 实验
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java面向对象程序设计 Java 面向 对象 程序设计 实验 输入输出