版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
注:“实验记录及个人小结”部分不够可另附页或在背面续写第页信息科学与工程学院《Java程序设计》上机实验报告专业班级姓名学号实验时间指导教师成绩实验名称 实验五流、文件及基于文本的应用实验目的理解数据流的概念。理解Java流的层次结构。3)理解并掌握文件的读写操作方法。主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)编写一个javaApplication程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。实验源程序:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclassMaxMinClass{ staticintmaxInt(intdata[],intn)//找到数组data[n]中的最大值 { intp=data[0]; for(inti=0;i<n;i++) if(p<data[i]) p=data[i]; returnp;}staticintminInt(intdata[],intn)//找到数组data[n]中的最小值{ intq=data[0]; for(inti=0;i<n;i++) if(q>data[i]) q=data[i]; returnq;} publicstaticvoidmain(String[]args){ intdata[]=newint[10]; Strings=""; System.out.println("输入数组data[10],输入每个数后按回车:"); for(inti=0;i<10;i++){ try{BufferedReaderin=newBufferedReader (newInputStreamReader(System.in)); s=in.readLine(); data[i]=Integer.parseInt(s); }catch(IOExceptione){} }//利用Integer.parseInt方法将字符串转换为整数intintp=maxInt(data,10);//调用maxInt方法,找到data[10]中最大值 intq=minInt(data,10);//调用minInt方法,找到data[10]中最小值 System.out.println("最大值为:"+p+"\n最小值为:"+q); }}主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)编写一个程序,能将一个源程序中的空行及注释去掉,并将处理后的内容写到目标文件中。(源文件名称和目标文件名称均要求以命令行参数形式输入)importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.PrintWriter;publicclassCopyFile{ staticStringdelComm(Strings){ if(s==null)returns; intpos=s.indexOf("//");//去掉以//开始的注释 if(pos<0)returns; returns.substring(0,pos); } publicstaticvoidmain(Stringargs[]){ Stringinfname="CopyFile.java"; Stringoutfname="CopyFile.txt"; if(args.length>=1)infname=args[0]; if(args.length>=2)outfname=args[1]; try{ Filefin=newFile(infname); Filefout=newFile(outfname); BufferedReaderin=newBufferedReader(newFileReader(fin)); PrintWriterout=newPrintWriter(newFileWriter(fout)); intcnt=0;Strings=in.readLine();//写字符串 while(s!=null){主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)cnt++; s=delComm(s);//去掉以//开始的注释 out.println(cnt+":\t"+s);//写出 s=in.readLine();//读入 } in.close();//关闭缓冲读入流及文件读入流的连接 out.close(); }catch(FileNotFoundExceptione1){ System.out.println("Filenotfound"); } catch(IOExceptione2){ e2.printStackTrace(); } }}思考题:从一个文本文件中读入30个学生的姓名和成绩,计算所有学生的最高分、最低分和平均分,并将结果写入另外一个文件。实验源程序:importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.PrintWriter;classStudent{ Stringname; intindex; Student(Stringname,intindex){ =name;this.index=index;}}//定义一个学生类,包含姓名、分数两个域变量和一个构造方法publicclassScore{ staticintmaxInt(intdata[]){ intp=data[0]; for(inti=0;i<data.length;i++) if(p<data[i]) p=data[i]; returnp; }//求最高分的方法 static intminInt(intdata[]) {intq=data[0]; for(inti=0;i<data.length;i++) if(q>data[i]) q=data[i]; returnq; }//求最低分 static doublePinjun(intdata[]) {doublenum=0.0; for(inti=0;i<data.length;i++) num+=data[i]; returnnum; }//求平均分staticStringfind(Strings){ intpos=0; if(s==null)returns;pos=s.indexOf(','); if(pos<0) returns; else returns.substring(pos+1,s.length());}//获取每个学生的分数的方法publicstaticvoidmain(String[]args){ intgrade[]=newint[30];try{Filefin=newFile("Student.txt"); Filefout=newFile("Score.txt"); BufferedReaderin=newBufferedReader(newFileReader(fin)); PrintWriterout=newPrintWriter(newFileWriter(fout)); //将处理后的Student.txt文件写到Score.txt文件中 Stringc=in.readLine();//每行的读入Strings; inti=0; while(c!=null) {s=find(c); grade[i++]=Integer.parseInt(s); c=in.readLine(); }System.out.println("最高分为:"+maxInt(grade));//获得最高分 System.out.println("最低分为:"+minInt(grade));//获得最低分 System.out.println("平均分为:"+Pinjun(grade)/i);//获得平均低分intmax; s="最高分为:"; Stringsmax; max=maxInt(grade);smax=Integer.toString(max); out.write(s); out.write(smax); s="最低分为:"; Stringsmin; intmin; min=minInt(grade); smin=Integer.toString(min); out.write(s); out.write(smin); s="平均分为:"; doubleav; Stringsav; av=(Pinjun(grade)/i); sav=java.lang.Double.toString(av); out.write(s); out.write(sav);in.close();//关闭缓冲读入流及文件读入流的连接 out.close();}catch(IOExceptione){System.out.println(e);}}}调试结果:主要问题的出错现象:运行程序后,无对应的输出结果出现源程序编写过程中,出现方法和类的调用无法完成.出错原因:函数调用时候,相关函数输入变量错误2)方法名的书写不符合规范,使得方法变为变量.解决方法及效果:编写和调用类的方法时,注意参数的类型和数量的对应.规范命名.常量用大写字母,变量用小写字母开始,类以大写字母开始.实验小结:为每个类分配正确的职责.尽量保持类功能单一.不要在一个类中做太多事.2)BufferedReader的方法:readLine():String,当他的返回值是null时,就表示读取完毕了。要注意,再写入时要注意写换行符,否则会出现阻塞。BufferedWriter的方法:newLine(),这个方法会写出一个换行符。代码要规范,但不必注释的地方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淘宝交货合同范本
- 2024年水电安装项目协议模板
- 生态农业无公害蔬菜生产基地和生态果园示范基地建设项目可行性研究报告
- 国企煤矸石承包合同范本
- 现代医药物流交易配送中心建设项目可行性研究报告申请报告
- 书店招工合同范本
- 二手交易设备合同范本
- 电车电池质保合同范本
- 22级口医-口腔正畸学学习通超星期末考试答案章节答案2024年
- 2024年学生个性化学习:《彩色拼贴画》课件的定制化设计
- 第9课《这些是大家的》(课件)-部编版道德与法治二年级上册
- 2024年四川省南充市从“五方面人员”中选拔乡镇领导班子成员201人历年高频500题难、易错点模拟试题附带答案详解
- 医疗行业智能化医疗设备维修与保养方案
- 2024年母婴护理考试竞赛试题
- 人工智能算力中心项目可行性研究报告写作模板-申批备案
- 2024-2030年中国空压机(空气压缩机)行业运营现状与可持续发展建议研究报告
- 2024-2030年中国机器翻译行业市场发展趋势与前景展望战略分析报告
- 高速公路综合监控太阳能供电系统技术方案设计
- 2024年秋新华师大版七年级上册数学 2.4.3去括号和添括号 教学课件
- 【论述土木工程的信息化建设应用8600字(论文)】
- 北师大版(三起)(2024)三年级上册英语Unit 5单元测试卷(含答案)
评论
0/150
提交评论