版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、广西科技大学计通学院Java面向对象程序设计实验实验八 输入输出流 学生姓名:××× 学 号:××× 班 级:××× 指导老师:××× 专 业:计算机科学与技术提交日期:×××年×× 月××日实验报告内容1 实验目的掌握字符输入、输出流用法;掌握使用Scanner类解析文件;掌握Console流的使用。2 实验内容实验教材-第12章实验1、2、3字符输入输出流;Scanner类和Console类。 要求:
2、完善程序,给出实验结果截图;完成试验后练习。3 程序代码及运行结果:实验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。运行结果如图1所示图1实验2 统计英文单词/ 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("按出现的频率排列:"); 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); 运行结果如图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。运行结果如图3所示图34 实验后的练习:实验1 有如下格式的成绩单(文本格式)score.txt。姓名:张三,数学72分,物理67分,英语70分。姓名:李四,数学92分,物理98分,英语88分。姓名:周五,数学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姓名:张三,数学72分,物理67分,英语70分。姓名:李四,数学92分,物理98分,英语88分。姓名:周五,数学68分,物理80分,英语77分。运行结果如图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调用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+" ");运行结果如图5所示图5实验3 编写一个程序,程序运行时,要求用户输入的密码是:hello。如果用户输入了正确的密码。程序将输出“你好,欢迎你!”。程序允许用户2次输入的密码不正确,一旦超过2次,程序将立刻退出。/ PassWord.javaimport java.io.*; import java.util.Scanner; public class PassWord public stati
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度文化产业银行借贷合同
- 2025年度违约赔偿协议书:虚拟现实内容制作违约赔偿及版权保护合同
- 2025年度高性能纤维材料货款预付买卖合同
- 二零二五年度深圳经济特区劳动合同法企业员工劳动保护与安全协议
- 二零二五年度事业单位退休人员返聘劳动合同
- 2025年度二零二五年度解聘劳动关系协议书-文化创意产业员工离职合同
- 二零二五年度西餐厅合作经营合同
- 2025年度自愿离职员工离职通知及离职证明合同
- 2025年仓储租赁合同规范设定
- 2025年仓储货物产品配套合同
- 城市基础设施修缮工程的重点与应对措施
- GB 12710-2024焦化安全规范
- 【牛客网】2024秋季校园招聘白皮书
- 肿瘤中医治疗及调养
- 术后肺炎预防和控制专家共识解读课件
- 中石化高级职称英语考试
- 小学五年级英语阅读理解(带答案)
- 2024二十届三中全会知识竞赛题库及答案
- 行政处罚-行政处罚种类和设定(行政法课件)
- 柔性机械臂的振动控制
- DB34T 4510-2023 静脉用药调配中心洁净区管理规范
评论
0/150
提交评论