java 实验报告
更新时间:2024-03-01 23:35:01 阅读量: 综合文库 文档下载
- java培训班推荐度:
- 相关推荐
实验1 分析成绩单
一、实验目的:掌握字符输入、输出流用法。 二、实验代码: Fenxi:
import java.util.*; public class Fenxi{ public static double getTotalScore(String s){ Scanner scanner=new Scanner(s); scanner.useDelimiter(\ double totalScore=0; while(scanner.hasNext()){ try{ double score=scanner.nextDouble(); totalScore=totalScore+score; } catch(InputMismatchException exp){ String t=scanner.next(); } } return totalScore; } }
AnalysisResult: import java.io.*; import java.util.*;
public class AnalysisResult{ public static void main(String args[]){ File fRead=new File(\ File fWrite=new File(\ try{ Writer out= new FileWriter(fWrite,true);//以尾加方式创建指向文件fWrite的out流 BufferedWriter bufferWrite=new BufferedWriter(out); //创建指向out的bufferWrite流 Reader in=new FileReader(fRead); //创建指向文件fRead的in流 BufferedReader bufferRead=new BufferedReader(in); //创建指向in的bufferRead流 String str=null; while ((str=bufferRead.readLine())!=null){ double totalScore =Fenxi.getTotalScore(str); str=str+\总分:\
System.out.println(str); bufferWrite.write(str); bufferWrite.newLine(); } bufferRead.close(); bufferWrite.close(); } catch(IOException e){ System.out.println(e.toString()); } } }
三、结果截图:
四、实验分析:
(1) 改进程序,使得能统计出每个学生的平均成绩。 答:
(2) 现在有如下格式的货物明细(文本格式)goods.txt
品名:电视,length:102 cm,width:89 cm,height:56 cm.
品名:轿车,length:4502 cm,width:178 cm,height:156 cm. 品名:桌子,length:125 cm,width:78 cm,height:68 cm. 答:
CalculateVolume.java import java.io.*; import java.util.*;
public class CalculateVolume{
public static void main(String args[]){ File fRead=new File(\
File fWrite=new File(\ try{Writer out=new FileWriter(fWrite,true);
BufferedWriter bufferWrite=new BufferedWriter(out); Reader in=new FileReader(fRead);
BufferedReader bufferRead=new BufferedReader(in); String str=null;
while((str=bufferRead.readLine())!=null){ double s=Jisuan.getVolume(str); str=str+\体积:\ System.out.println(str); bufferWrite.write(str); bufferWrite.newLine(); }
bufferRead.close(); bufferWrite.close(); }
catch(IOException e){
System.out.println(e.toString()); } } }
Jisuan.java
import java.util.*; public class Jisuan{
public static double getVolume(String s){ Scanner scanner=new Scanner(s);
scanner.useDelimiter(\ double volume=1;
while(scanner.hasNext()){ try{
double distance=scanner.nextDouble(); volume=volume*distance; }
catch(InputMismatchException exp){ String t=scanner.next();
}
} }
return volume; }
实验2 统计英文单词
一、实验目的:掌握使用Scanner类解析文件。 二、实验代码: Dictionary.java: import java.util.*;
public class Dictionary{ public static void main(String args[]){ Vector OutputWordMess.java: import java.util.*; public class OutputWordMess{ public static void main(String args[]){ Vector WordStatistic.java: import java.io.*; import java.util.*; public class WordStatistic{ Vector } } 三、结果截图: 四、实验分析: 按字典顺序输出全部不相同的单词。 答: Dictionary.java import java.util.*; public class Dictionary{ public static void main(String args[]){ Vector WordStatistic statistic=new WordStatistic(); statistic.setFileName(\ statistic.wordStatistic();//statistic调用WordStatistic()方法 allWord=statistic.getAllWord(); noSameWord=statistic.getNoSameWord(); System.out.println(\共有\个英文单词\ System.out.println(\有\个互不相同英文单词\ System.out.println(\按字典顺序排列:\ String s[]=new String [noSameWord.size()]; for(int i=0;i Arrays.sort(s); for(int i=0;i 实验3 读取压缩文件 一、实验目的:掌握ZipInputStream流的使用。 二、实验代码: import java.io.*; import java.util.zip.*; public class ReadZipFile { public static void main(String args[]) { File f=new File(\ File dir=new File(\ byte b[]=new byte[100]; dir.mkdir(); try{ ZipInputStream in=new ZipInputStream(new FileInputStream(f)); ZipEntry zipEntry=null; while((zipEntry=in.getNextEntry())!=null) { File file=new File(dir,zipEntry.getName()); FileOutputStream out=new FileOutputStream(file); int n=-1; System.out.println(file.getAbsolutePath()+\的内容:\ while((n=in.read(b,0,100))!=-1) { String str=new String(b,0,n); System.out.println(str); out.write(b,0,n); } out.close(); } in.close(); } catch(IOException ee) { System.out.println(ee); } } } 三、结果截图: 四、实验分析: 编写一个GUI程序,提供一个对话框,用户可以使用这个对话框选择要解压缩的Zip文件,设置解压后所得到的文件的存放目录。 答: import java.io.*; import java.util.zip.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyFrame extends JFrame implements ActionListener{ private static final long serialVersionUID = 1L; private JFileChooser fileChooser = new JFileChooser(\ private JButton button = new JButton(\打开想要解压文件\ public MyFrame() { this.setTitle(\解压\ this.setPreferredSize(new Dimension(500, 400)); this.getContentPane().add(button, BorderLayout.CENTER); button.addActionListener(this); this.pack(); this.setLocationRelativeTo(null); this.setIgnoreRepaint(true); } public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source instanceof JButton) { openFile(); } } public void openFile() { fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); fileChooser.setDialogTitle(\打开Zip文件夹\ int ret = fileChooser.showOpenDialog(null); if (ret == JFileChooser.APPROVE_OPTION) { System.out.println(fileChooser.getSelectedFile().getAbsolutePath()); File f=new File(\ File dir=new File(\ byte b[]=new byte[100]; dir.mkdir(); try{ZipInputStream in=new ZipInputStream(new FileInputStream(f)); ZipEntry zipEntry=null; while((zipEntry=in.getNextEntry())!=null){ File file=new File(dir,zipEntry.getName()); FileOutputStream out=new FileOutputStream(file); int n=-1; System.out.println(file.getAbsolutePath()+\的内容:\ while((n=in.read(b,0,100))!=-1){ String str=new String(b,0,n); System.out.println(str); out.write(b,0,n); } out.close(); } in.close(); } catch(IOException ee){ System.out.println(ee); } } } public static void main(String[] args) { Frame frame = new MyFrame(); frame.setVisible(true); } } 补充 1、用命令行带参的方式实现dir命令的功能,不带参数表示查询当前目录,带参 数表示查询指定的目录,如dir c:\\ ,并支持dir *.java的文件后缀过滤功能。 答: Dir.java import java.io.*; import java.util.*; import java.text.*; public class Dir { public void GoBack(){ this.dir(System.getProperty(\ } public void GoBack(String userdir) { if(userdir.equals(\ this.dir(System.getProperty(\ } else { this.dir(userdir,1); } } public void dir(String str,int m) { String dir=null; int n; double Byte=0; dir=str; n=m; File f=new File(dir); if (!f.exists()) { System.out.println(\文件或目录不存在!\ System.exit(0); } while (f.isDirectory()) { File[] dire=f.listFiles(); for (int i=0; i SimpleDateFormat formatter=new SimpleDateFormat (\h:m\ String date=formatter.format(new Date(dire[i].lastModified())) ; if(m==0){ if(dire[i].getName().endsWith(\ System.out.printf(\\\n\ } } else { if(dire[i].isFile()){ System.out.printf(\\\n\ } else { System.out.printf(\\\n\ } } } break; } } public static void main(String[] args) throws IOException{ Dir test=new Dir(); String userdir=System.getProperty(\ System.out.print(userdir+\ System.out.print(\ //if(new InputStreamReader(System.in).read()==13){//显示当前目录 // test.GoBack(); //} Scanner scanner=new Scanner(System.in); userdir=scanner.next(); test.GoBack(userdir); } } 2、给当前的类所在的java源文件添加行号,拷贝到另一个文件temp.txt。 答: Temp.java import java.io.*; public class Temp { public static void main(String[] args) { File file = new File(\ try{ File tempFile = new File(\ FileReader inOne = new FileReader(file); BufferedReader inTwo = new BufferedReader(inOne ); FileWriter tofile = new FileWriter(tempFile); BufferedWriter out = new BufferedWriter(tofile); int i = 0; String s = inTwo.readLine(); while (s != null) { i++; out.write(i + \ out.newLine(); s = inTwo.readLine(); } inOne.close(); inTwo.close(); out.flush(); out.close(); tofile.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println(\已给当前的类所在的java源文件添加行号,拷贝到temp.txt\ } } 3、编写一个图书类(Book),要求: ① 每本图书数据包括图书ISBN号、图书名、单价,即在类Book中要声明存放这3个数据的成员变量。 ② 定义1个构造方法,此构造方法能将当前图书的ISBN号、图书名、单价赋成用户提供的真实数据值,而不是系统默认值。 ③ 能用图书ISBN号作为关键属性来判断两本图书是否相等,即在类Book中要重新编写从父类Object继承得到的public boolean equals(Object obj)方法。 ④能用图书ISBN号作为关键属性来判断两本图书的大小(即先后顺序),即让类Book实现java.lang.Comparable接口,并实现接口Comparable中的public int compareTo(T o)方法。 ⑤ 能用打印图书对象的方式将当前图书的ISBN号、图书名、单价在一行打印,并且每个数据间用Tab间作为分隔。即在类Book中要重新编写从父类Object继承得到的public String toString()方法。 编写上面图书类的测试类(Test.java),要求: ① 编写代码创建封装以下两个图书数据的图书对象,并将这两个对象打印 ISBN 978-7-115-16922-8 978-7-900680-38-9 图书名 Java 程序设计与问题解决 东软Java软件工程师实例参考手册 单价 49.00 58.00 ② 编写代码判断这两个图书是否相等,并根据方法返回结果来判断,打印这两本图书是否相等 ③ 编写代码判断这两个图书的大小,并根据方法返回结果来判断,打印这第一本图书是否大于第二本图书 ④ 最终控制台的输出结果要求如下: 图书1: 978-7-115-16922-8 Java 程序设计与问题解决 49.00 图书2: 978-7-900680-38-9 东软Java软件工程师实例参考手册 58.00 图书1等于图书2:不相等 图书1大于图书2:大于 答: Book.java import java.lang.Comparable; public class Book implements Comparable public Book(String isbn,String name,double price){ this.isbn=isbn; this.name=name; this.price=price; } public boolean equals(Object obj){ return isbn.equals(obj); } public int compareTo(Book o){ return isbn.compareTo(o.isbn); } public String toString(){ return isbn+\ } } Test.java public class Test{ public static void main(String args[]){ Book book1=new Book(\程序设计与问题解决\ Book book2=new Book(\东软Java软件工程师实例参考手册\ System.out.println(\图书1:\\n\ System.out.println(\图书2:\\n\ System.out.print(\图书1等于图书2:\ if(book1.equals(book2)==true) System.out.println(\相等\ else System.out.println(\不相等\ System.out.print(\图书1大于图书2:\ if(book1.compareTo(book2)<0) System.out.println(\大于\ else System.out.println(\小于\ } }
正在阅读:
java 实验报告03-01
我爱我的祖国作文:情系祖国08-06
球赛计时计分器的软件设计01-20
2014届九年级上学期期末考试数学试题07-11
仿生群智能算法在生产调度中的应用综述03-19
2018时事政治12-31
Y41-100液压机使用说明书08-08
猪八戒商业模式分析11-13
数据库复习题答案06-07
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 报告
- java
- 汽车发动机电控技期末考试题及答案
- 房地产开发企业税收疑难问题
- 2017 嘉兴一中 高三适应性考试 英语试题
- 江苏省盐城市大丰区第一共同体2016-2017学年七年级(上)期中生
- 中国现代文学史 点
- 论我国食品安全法律制度的现状和完善
- 天津市中心城区快速路某桥工程施工方案
- 2011年春季学期《冷冲模具设计与制造》试卷A
- 第16课昌盛的秦汉文化(一)教学设计(2)
- 关于搜狗输入法之笔画认识和偏旁部首的读音
- 怎样利用二次吸引挽回出轨的丈夫
- 四川省宜宾第三中学2018-2019学年高一英语11月月考试
- 2014年12月日语N2
- 机车电工带公共部分
- 2011年全国高考英语试题分类汇编之单项填空精讲
- 《和妈妈在一起》参考教案12
- 儿童文学作业汇总
- 2014年云南省公务员考试申论时政热点新闻
- 射频产品项目可行性研究报告(技术工艺+设备选型+财务概算+厂区
- 超声在胸腔积液诊断中的应用效果分析