2022年《Java面向对象程序设计》实验-实验八.pdf

上传人:Che****ry 文档编号:13015762 上传时间:2022-04-27 格式:PDF 页数:13 大小:289.90KB
返回 下载 相关 举报
2022年《Java面向对象程序设计》实验-实验八.pdf_第1页
第1页 / 共13页
2022年《Java面向对象程序设计》实验-实验八.pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年《Java面向对象程序设计》实验-实验八.pdf》由会员分享,可在线阅读,更多相关《2022年《Java面向对象程序设计》实验-实验八.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) 广西科技大学计通学院Java 面向对象程序设计实验实验八输入输出流学生姓名 :学号:班级:指导老师 :专业:计算机科学与技术提交日期 : 年月日实验报告内容1实验目的掌握字符输入、输出流用法; 掌握使用 Scanner 类解析文件 ; 掌握 Console 流的使用。2实验内容实验教材 - 第 12 章实验 1、2、3 字符输入输出流 ;Scanner 类与 Console 类。要求: 完善程序 , 给出实验结果截图; 完成试验后练习。3程序代码及运行结果: 实验 1 举重成绩单/ AnalysisResult、java impor

2、t java、io 、*; import java、util、*; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 13 页 - - - - - - - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) public class AnalysisResult public static void main(String args) File(score、txt); File(scoreAnalysis、txt); try Writer out=new (fWrite);

3、 BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new (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); bufferWrite、write(str)

4、; bufferWrite、newLine(); bufferRead、close(); bufferWrite、close(); catch(IOException e) System、out 、println(e、toString(); / Fenxi 、javaimport java、util、*; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 13 页 - - - - - - - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) public class Fe

5、nxi public static double getTotalScore(String s) String regex = 0123456789、; String digitMess = s、replaceAll(regex,*); StringTokenizer fenxi = new StringTokenizer(digitMess,*); double totalScore=0; while(fenxi、hasMoreTokens() double score=Double、parseDouble(fenxi、nextToken(); totalScore=totalScore+s

6、core; return totalScore; / score 、txt姓名: 张三, 抓举成绩 106kg, 挺举 189kg 。姓名: 李四, 抓举成绩 108kg, 挺举 186kg 。姓名: 周五, 抓举成绩 112kg, 挺举 190kg 。运行结果如图1 所示图 1 实验 2 统计英文单词/ WordStatistic、javaimport java、io 、*; import java、util、*; public class WordStatistic Vector allWord,noSameWord; File(english、txt); 精品资料 - - - 欢迎下载

7、- - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 13 页 - - - - - - - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) Scanner sc=null; String regex; WordStatistic () allWord=new Vector(); noSameWord=new Vector(); regex=sdpPunct+;/正则表达式 try sc=new Scanner(file); sc、useDelimiter(regex); catch(IOException

8、 exp) System、out 、println(exp、toString(); void set(String name) ); try sc=new Scanner(file); sc、useDelimiter(regex); 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) noSameWo

9、rd、add(word); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 13 页 - - - - - - - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) catch(Exception e) public VectorgetAllWord() return allWord; public VectorgetNoSameWord() return noSameWord; / OutputWordMess、javaimport java、util、*; publi

10、c class OutputWordMess public static void main(String args) Vector allWord,noSameWord; WordStatistic statistic=new WordStatistic(); statistic、set(hello、txt); statistic、WordStatistic(); allWord=statistic、getAllWord(); noSameWord=statistic、getNoSameWord(); System、out 、println(共有+allWord 、size()+个英文单词

11、); System、out 、println(有+noSameWord 、size()+个互不相同英文单词); System、out 、println(按出现的频率排列 :); int count=new intnoSameWord、size(); for(int i=0;inoSameWord、size();i+) String s1=noSameWord、elementAt(i); for(int j=0;jallWord、size();j+) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,

12、共 13 页 - - - - - - - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) String s2=allWord、elementAt(j); if(s1、equals(s2) counti+; for(int m=0;mnoSameWord、size();m+) for(int n=m+1;ncountm) String temp=noSameWord、elementAt(m); noSameWord、setElementAt(noSameWord 、elementAt(n), m); noSameWord、setElementAt(temp, n); i

13、nt t=countm; countm=countn; countn=t; for(int m=0;mnoSameWord、size();m+) double frequency=(1、0*countm)/allWord、size(); System、out 、printf(%s:%-7、3f, noSameWord 、elementAt(m),frequency); 运行结果如图2 所示精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 13 页 - - - - - - - - - - Java

14、 面向对象程序设计实验- 实验八 ( 输入输出流 ) 图 2 实验 3 密码流/ 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

15、password= new String(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) 精品资料 - - - 欢迎下载 - - - - - - - -

16、- - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 13 页 - - - - - - - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) File(score1、txt); try inOne=new (file); BufferedReader inTow=new BufferedReader(inOne); String s=null; while(s=inTow、readLine()!=null) System、out 、println(s); inOne、close(); inTow、close(); catch(IOExce

17、ption ioe) / score 、txt姓名: 张三, 抓举成绩 106kg, 挺举 189kg 。姓名: 李四, 抓举成绩 108kg, 挺举 186kg 。姓名: 周五, 抓举成绩 112kg, 挺举 190kg 。运行结果如图3 所示图 3 4实验后的练习 : 实验 1有如下格式的成绩单( 文本格式 )score 、txt 。姓名: 张三, 数学 72 分, 物理 67 分, 英语 70 分。姓名: 李四, 数学 92 分, 物理 98 分, 英语 88 分。姓名: 周五, 数学 68 分, 物理 80 分, 英语 77 分。要求按行读入取成绩单, 并在该行的后面尾加上该同学的精品

18、资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 13 页 - - - - - - - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) 总成绩 , 然后再将该行写入到一个名字为scoreAnalysis、txt的文件中。/ AnalysisResult、javaimport java、io 、*; import java、util、*; public class AnalysisResult public static void main(String args) File

19、(score、txt); File(scoreAnalysis、txt); try Writer out=new (fWrite,true); BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new (fRead); BufferedReader bufferRead=new BufferedReader(in); String str=null; while(str=bufferRead、readLine()!=null) double totalScore=Fenxi、getTotalScore(str); str

20、=str+总分:+totalScore; System、out 、println(str); bufferWrite、write(str); bufferWrite、newLine(); bufferRead、close(); bufferWrite、close(); catch(IOException e) System、out 、println(e、toString(); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 13 页 - - - - - - - - - - Java 面向对象程

21、序设计实验- 实验八 ( 输入输出流 ) / 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(); totalScore=totalScore+score;

22、 catch(InputMismatchException exp) String t=scanner、next(); return totalScore; / score 、txt 姓名: 张三, 数学 72 分, 物理 67 分, 英语 70 分。姓名: 李四, 数学 92 分, 物理 98 分, 英语 88 分。姓名: 周五, 数学 68 分, 物理 80 分, 英语 77 分。运行结果如图4 所示图 4 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 13 页 - - - - - -

23、 - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) 实验 2 按字典序输出全部不相同的单词。/ Dictionary、javaimport java、util、*; public class Dictionary public static void main(String args) Vector allWord,noSameWord; WordStatistic statistic=new WordStatistic(); statistic、set(hello、txt); statistic、WordStatistic();/statistic调用WordSt

24、atistic()方法allWord=statistic、getAllWord(); noSameWord=statistic、getNoSameWord(); System、out 、println(共有+allWord 、size()+个英文单词 ); System、out 、 println(有+noSameWord 、 size()+个互不相同英文单词); System、out 、println(按字典顺序排列 :); String s=new String noSameWord、size(); for(int i=0;inoSameWord、size();i+) si=noSameW

25、ord 、elementAt(i); Arrays 、sort(s); for(int i=0;inoSameWord、size();i+) System、out 、println(si+ ); 运行结果如图5 所示精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 13 页 - - - - - - - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) 图 5 实验 3 编 写 一 个程 序 , 程 序 运 行 时, 要求 用 户 输 入的 密码 就是:hello。如果用

26、户输入了正确的密码。程序将输出“您好, 欢迎您! ” 。程序允许用户2 次输入的密码不正确, 一旦超过 2 次, 程序将立刻退出。/ PassWord、javaimport java、io 、*; import java、util、Scanner; public class PassWord public static void main(String args) int count=0; Console cons; String passwd; Scanner sc=new Scanner(System、in);/cons=System、console(); while(true) Syst

27、em、out 、print(输入密码 :); passwd=sc、next();/ count+; String password=new String (passwd); if(password、equals(hello) System、out 、println(您好, 欢迎您! ); break; else System、out 、println(您第 +count+ 次输入的密 +password+ 不正确 ); if(count=3) System、out 、println(您+count+ 次输精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师

28、归纳 - - - - - - - - - -第 12 页,共 13 页 - - - - - - - - - - Java 面向对象程序设计实验- 实验八 ( 输入输出流 ) 入的密码都不正确 ); System、exit(0); 运行结果如图6 所示图 6 5实验心得与体会这次实验中 , 我感觉比较难理解与掌握的就就是Console类了, 在实验 3 密码流的代码在eclipse中运行出错如下图所示: 就就是输入不了密码, 后来通过找寻解决方法, 才知道了在JDK 6 中 java 、io 、Console 类专用来访问基于字符的控制台设备, 然后使用 cmd命令提示符来运行就可以输入密码与显示结果了。通过这次实验 , 大概了解了字符输入、输出流用法, 如何去使用 Scanner 类解析文件 , 对 Console 类的使用有个大概的认知。总而言之 , 这次实验收获蛮大的, 敲代码的效率比以往提高了 , 出错率也少了。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 13 页 - - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁