java 实验报告.docx

上传人:b****7 文档编号:15747503 上传时间:2023-07-07 格式:DOCX 页数:25 大小:406.48KB
下载 相关 举报
java 实验报告.docx_第1页
第1页 / 共25页
java 实验报告.docx_第2页
第2页 / 共25页
java 实验报告.docx_第3页
第3页 / 共25页
java 实验报告.docx_第4页
第4页 / 共25页
java 实验报告.docx_第5页
第5页 / 共25页
java 实验报告.docx_第6页
第6页 / 共25页
java 实验报告.docx_第7页
第7页 / 共25页
java 实验报告.docx_第8页
第8页 / 共25页
java 实验报告.docx_第9页
第9页 / 共25页
java 实验报告.docx_第10页
第10页 / 共25页
java 实验报告.docx_第11页
第11页 / 共25页
java 实验报告.docx_第12页
第12页 / 共25页
java 实验报告.docx_第13页
第13页 / 共25页
java 实验报告.docx_第14页
第14页 / 共25页
java 实验报告.docx_第15页
第15页 / 共25页
java 实验报告.docx_第16页
第16页 / 共25页
java 实验报告.docx_第17页
第17页 / 共25页
java 实验报告.docx_第18页
第18页 / 共25页
java 实验报告.docx_第19页
第19页 / 共25页
java 实验报告.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java 实验报告.docx

《java 实验报告.docx》由会员分享,可在线阅读,更多相关《java 实验报告.docx(25页珍藏版)》请在冰点文库上搜索。

java 实验报告.docx

java实验报告

实验1分析成绩单

一、实验目的:

掌握字符输入、输出流用法。

二、实验代码:

Fenxi:

importjava.util.*;

publicclassFenxi{

publicstaticdoublegetTotalScore(Strings){

Scannerscanner=newScanner(s);

scanner.useDelimiter("[^0123456789.]+");

doubletotalScore=0;

while(scanner.hasNext()){

try{

doublescore=scanner.nextDouble();

totalScore=totalScore+score;

}

catch(InputMismatchExceptionexp){

Stringt=scanner.next();

}

}

returntotalScore;

}

}

AnalysisResult:

importjava.io.*;

importjava.util.*;

publicclassAnalysisResult{

publicstaticvoidmain(Stringargs[]){

FilefRead=newFile("score.txt");

FilefWrite=newFile("scoreAnalysis.txt");

try{

Writerout=newFileWriter(fWrite,true);//以尾加方式创建指向文件fWrite的out流

BufferedWriterbufferWrite=newBufferedWriter(out);//创建指向out的bufferWrite流

Readerin=newFileReader(fRead);//创建指向文件fRead的in流

BufferedReaderbufferRead=newBufferedReader(in);//创建指向in的bufferRead流

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());

}

}

}

三、结果截图:

四、实验分析:

(1)改进程序,使得能统计出每个学生的平均成绩。

答:

(2)现在有如下格式的货物明细(文本格式)goods.txt

品名:

电视,length:

102cm,width:

89cm,height:

56cm.

品名:

轿车,length:

4502cm,width:

178cm,height:

156cm.

品名:

桌子,length:

125cm,width:

78cm,height:

68cm.

答:

CalculateVolume.java

importjava.io.*;

importjava.util.*;

publicclassCalculateVolume{

publicstaticvoidmain(Stringargs[]){

FilefRead=newFile("goods.txt");

FilefWrite=newFile("goodsVolume.txt");

try{Writerout=newFileWriter(fWrite,true);

BufferedWriterbufferWrite=newBufferedWriter(out);

Readerin=newFileReader(fRead);

BufferedReaderbufferRead=newBufferedReader(in);

Stringstr=null;

while((str=bufferRead.readLine())!

=null){

doubles=Jisuan.getVolume(str);

str=str+"体积:

"+s+"cm^3";

System.out.println(str);

bufferWrite.write(str);

bufferWrite.newLine();

}

bufferRead.close();

bufferWrite.close();

}

catch(IOExceptione){

System.out.println(e.toString());

}

}

}

Jisuan.java

importjava.util.*;

publicclassJisuan{

publicstaticdoublegetVolume(Strings){

Scannerscanner=newScanner(s);

scanner.useDelimiter("[^0123456789.]+");

doublevolume=1;

while(scanner.hasNext()){

try{

doubledistance=scanner.nextDouble();

volume=volume*distance;

}

catch(InputMismatchExceptionexp){

Stringt=scanner.next();

}

}

returnvolume;

}

}

实验2统计英文单词

一、实验目的:

掌握使用Scanner类解析文件。

二、实验代码:

Dictionary.java:

importjava.util.*;

publicclassDictionary{

publicstaticvoidmain(Stringargs[]){

VectorallWord,noSameWord;

WordStatisticstatistic=newWordStatistic();

statistic.setFileName("hello.txt");

statistic.wordStatistic();//statistic调用WordStatistic()方法

allWord=statistic.getAllWord();

noSameWord=statistic.getNoSameWord();

System.out.println("共有"+allWord.size()+"个英文单词");

System.out.println("有"+noSameWord.size()+"个互不相同英文单词");

System.out.println("按字典顺序排列:

");

Strings[]=newString[noSameWord.size()];

for(inti=0;i

s[i]=noSameWord.elementAt(i);

}

Arrays.sort(s);

for(inti=0;i

System.out.println(s[i]+"");

}

}

}

OutputWordMess.java:

importjava.util.*;

publicclassOutputWordMess{

publicstaticvoidmain(Stringargs[]){

VectorallWord,noSameWord;

WordStatisticstatistic=newWordStatistic();

statistic.setFileName("hello.txt");

statistic.wordStatistic();//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);

}

}

}

WordStatistic.java:

importjava.io.*;

importjava.util.*;

publicclassWordStatistic{

VectorallWord,noSameWord;

Filefile=newFile("english.txt");

Scannersc=null;

Stringregex;

WordStatistic(){

allWord=newVector();

noSameWord=newVector();//regex是由空格·数字和符号(!

"#$&'()*+,-./:

;<=>?

@[\]^_`{|}~)组成的正则表达式

regex="[\\s\\d\\p{Punct}]+";

try{

sc=newScanner(file);//创建指向file的sc

sc.useDelimiter(regex);//sc调用useDelimiter(Stringregex)方法,向参数传递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());

}

}

publicvoidwordStatistic(){

try{

while(sc.hasNext()){

Stringword=sc.next();

allWord.add(word);

if(!

noSameWord.contains(word))

noSameWord.add(word);

}

}

catch(Exceptione){}

}

publicVectorgetAllWord(){

returnallWord;

}

publicVectorgetNoSameWord(){

returnnoSameWord;

}

}

三、结果截图:

四、实验分析:

按字典顺序输出全部不相同的单词。

答:

Dictionary.java

importjava.util.*;

publicclassDictionary{

publicstaticvoidmain(Stringargs[]){

VectorallWord,noSameWord;

WordStatisticstatistic=newWordStatistic();

statistic.setFileName("hello.txt");

statistic.wordStatistic();//statistic调用WordStatistic()方法

allWord=statistic.getAllWord();

noSameWord=statistic.getNoSameWord();

System.out.println("共有"+allWord.size()+"个英文单词");

System.out.println("有"+noSameWord.size()+"个互不相同英文单词");

System.out.println("按字典顺序排列:

");

Strings[]=newString[noSameWord.size()];

for(inti=0;i

s[i]=noSameWord.elementAt(i);

}

Arrays.sort(s);

for(inti=0;i

System.out.println(s[i]+"");

}

}

}

实验3读取压缩文件

一、实验目的:

掌握ZipInputStream流的使用。

二、实验代码:

importjava.io.*;

importjava.util.zip.*;

publicclassReadZipFile{

publicstaticvoidmain(Stringargs[]){

Filef=newFile("book.zip");

Filedir=newFile("mybook");

byteb[]=newbyte[100];

dir.mkdir();

try{

ZipInputStreamin=newZipInputStream(newFileInputStream(f));

ZipEntryzipEntry=null;

while((zipEntry=in.getNextEntry())!

=null){

Filefile=newFile(dir,zipEntry.getName());

FileOutputStreamout=newFileOutputStream(file);

intn=-1;

System.out.println(file.getAbsolutePath()+"的内容:

");

while((n=in.read(b,0,100))!

=-1){

Stringstr=newString(b,0,n);

System.out.println(str);

out.write(b,0,n);

}

out.close();

}

in.close();

}

catch(IOExceptionee){

System.out.println(ee);

}

}

}

三、结果截图:

四、实验分析:

编写一个GUI程序,提供一个对话框,用户可以使用这个对话框选择要解压缩的Zip文件,设置解压后所得到的文件的存放目录。

答:

importjava.io.*;

importjava.util.zip.*;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassMyFrameextendsJFrameimplementsActionListener{

privatestaticfinallongserialVersionUID=1L;

privateJFileChooserfileChooser=newJFileChooser(".");

privateJButtonbutton=newJButton("打开想要解压文件");

publicMyFrame(){

this.setTitle("解压");

this.setPreferredSize(newDimension(500,400));

this.getContentPane().add(button,BorderLayout.CENTER);

button.addActionListener(this);

this.pack();

this.setLocationRelativeTo(null);

this.setIgnoreRepaint(true);

}

publicvoidactionPerformed(ActionEvente){

Objectsource=e.getSource();

if(sourceinstanceofJButton){

openFile();

}

}

publicvoidopenFile(){

fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

fileChooser.setDialogTitle("打开Zip文件夹");

intret=fileChooser.showOpenDialog(null);

if(ret==JFileChooser.APPROVE_OPTION){

System.out.println(fileChooser.getSelectedFile().getAbsolutePath());

Filef=newFile("book.zip");

Filedir=newFile("mybook");

byteb[]=newbyte[100];

dir.mkdir();

try{ZipInputStreamin=newZipInputStream(newFileInputStream(f));

ZipEntryzipEntry=null;

while((zipEntry=in.getNextEntry())!

=null){

Filefile=newFile(dir,zipEntry.getName());

FileOutputStreamout=newFileOutputStream(file);

intn=-1;

System.out.println(file.getAbsolutePath()+"的内容:

");

while((n=in.read(b,0,100))!

=-1){

Stringstr=newString(b,0,n);

System.out.println(str);

out.write(b,0,n);

}

out.close();

}

in.close();

}

catch(IOExceptionee){

System.out.println(ee);

}

}

}

publicstaticvoidmain(String[]args){

Frameframe=newMyFrame();

frame.setVisible(true);

}

}

补充1、用命令行带参的方式实现dir命令的功能,不带参数表示查询当前目录,带参数表示查询指定的目录,如dirc:

\,并支持dir*.java的文件后缀过滤功能。

答:

Dir.java

importjava.io.*;

importjava.util.*;

importjava.text.*;

publicclassDir{

publicvoidGoBack(){

this.dir(System.getProperty("user.dir"),1);

}

publicvoidGoBack(Stringuserdir){

if(userdir.equals("*.java")){

this.dir(System.getProperty("user.dir"),0);

}

else{

this.dir(userdir,1);

}

}

publicvoiddir(Stringstr,intm){

Stringdi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2