




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验1分析成绩单一、实验目的:掌握字符输入、输出流用法。二、实验代码:Fenxi:import java.util.*;public class Fenxipublic static double getTotalScore(String s)Scanner scanner=new Scanner(s);scanner.useDelimiter("F0123456789.+");double totalScore=0;while(scanner.hasNext()trydouble score=scanner.nextDouble();totalScore=totalSco
2、re+score;catch(InputMismatchException exp)String t=scanner.next(); return totalScore;AnalysisResult :import java.io.*;import java.util.*;public class AnalysisResultpublic static void main(String args口儿File fRead=new File("score.txt");File fWrite=new File("scoreAnalysis.txt");tryW
3、riter 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 的 bufferReadString str=null;while (str=buffer
4、Read.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 e)System.out.println(e.toString();三、结果截图:c: C:PrograM FilesXinox Soft>
5、areJCreatorV3GE2001. eze总总总物理67分, 物理98分, 物理分,inue .n r-T+-T+T o 2 2 8 c 7 9 6Z于to数数数y e 三四s,y 睾周an姓姓姓四、实验分析:(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
6、 cm.答:CalculateVolume.javaimport java.io.*;import java.util.*;public class CalculateVolumepublic static void main(String args口儿File fRead=new File("goods.txt");File fWrite=new File("goodsVolume.txt");tryWriter out=new FileWriter(fWrite,true);BufferedWriter bufferWrite=new Buffere
7、dWriter(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+"体积:"+s+"cmA3"System.out.println(str);bufferWrite.write(str);bufferWrite.newLine();bufferRead
8、.close();bufferWrite.close();catch(IOException e)System.out.println(e.toString();Jisuan.javaimport java.util.*;public class Jisuanpublic static double getVolume(String s)Scanner scanner=new Scanner(s);scanner.useDelimiter("A0123456789.+");double volume=1;while(scanner.hasNext()trydouble di
9、stance=scanner.nextDouble();volume=volume*distance;catch(InputMismatchException exp)String t=scanner.next();return volume;品口的品PF实验2统计英文单词一、实验目的:掌握使用Scanner类解析文件。二、实验代码:Dictionary.java:import java.util.*;public class Dictionarypublic static void main(String args口儿Vector<String> allWord,noSameWo
10、rd;WordStatistic statistic=new WordStatistic();statistic.setFileName("hello.txt");statistic.wordStatistic();/statistic 调用 WordStatistic()方法allWord=statistic.getAllWord();noSameWord=statistic.getNoSameWord();System.out.println("共有"+allWord.size()+"个英文单词"力System.out.print
11、ln("有"+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+"");Output
12、WordMess.java:import java.util.*;public class OutputWordMesspublic static void main(String args口儿Vector<String> allWord,noSameWord;WordStatistic statistic=new WordStatistic();statistic.setFileName("hello.txt");statistic.wordStatistic();/statistic 调用 WordStatistic()方法allWord=statistic
13、.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=0;i<noSameWord.siz
14、e();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);noSameWord.setElementAt(noSameWord
15、.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); WordStatistic.java:import java.io.*;import java.util.*;
16、public class WordStatisticVector<String> allWord,noSameWord;File file=new File("english.txt");Scanner sc=null;String regex;WordStatistic()allWord=new V ector<String>();noSameWord=new Vector<String>();/regex 是由空格数字和符号 (!"#$&'()*+,-./:;<=>?人_'|)组成的正则表
17、达式regex="sdpPunct+"trysc=new Scanner(file);创建指向 file 的 scsc.useDelimiter(regex); /sc 调用 useDelimiter(String regex)方法,向参数传递 regexcatch(IOException exp)System.out.println(exp.toString();void setFileName(String name) file=new File(name);trysc=new Scanner(file);sc.useDelimiter(regex);catch(IOE
18、xception exp)System.out.println(exp.toString();public void wordStatistic()trywhile(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> getNoSameWord
19、()return noSameWord;三、结果截图:四、实验分析:按字典顺序输出全部不相同的单词。答:Dictionary.javaimport java.util.*;public class Dictionarypublic static void main(String args口儿Vector<String> allWord,noSameWord;WordStatistic statistic=new WordStatistic();statistic.setFileName("hello.txt");statistic.wordStatistic()
20、;/statistic调用 WordStatistic() 方法allWord=statistic.getAllWord();noSameWord=statistic.getNoSameWord();System.out.println(" 共有"+allWord.size()+"个英文单词");System.out.println("有"+noSameWord.size()+"个互不相同英文单词");System.out.println("按字典顺序排列:");String s=new Str
21、ing 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+"");> D:jdkl 6JC reatorV 3GE 2 001. exe升有其文单词食4个互卡油同案文单词茸字典顺序由呼arehello"studentsWBPress any key to continue.实验3读取压缩文件一、实
22、验目的:掌握 ZipInputStream流的使用。二、实验代码:import java.io.*;import java.util.zip.*;public class ReadZipFile public static void main(String args) File f=new File("book.zip");File dir=new File("mybook");byte b=new byte100;dir.mkdir();tryZipInputStream in=new ZipInputStream(new FileInputStrea
23、m(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.pri
24、ntln(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 exten
25、ds JFrame implements ActionListenerprivate static final long serialVersionUID = 1L;private JFileChooser fileChooser = new JFileChooser(".");private JButton button = new JButton("打开想要解压文件 ");public MyFrame() this.setTitle("解压");this.setPreferredSize(new Dimension(500, 40
26、0);this.getContentPane().add(button, BorderLayout.CENTER);button.addActionListener(this);this.pack();this.setLocationRelativeTo(null);this.setlgnoreRepaint(true);public void actionPerformed(ActionEvent e) Object source = e.getSource();if (source instanceof JButton) openFile();public void openFile()
27、fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONL Y); fileChooser.setDialogTitle("打开 Zip 文件夹");int ret = fileChooser.showOpenDialog(null);if (ret = JFileChooser.APPROVE_OPTION) System.out.println(fileChooser.getSelectedFile().getAbsolutePath();File f=new File("book.zip&quo
28、t;);File dir=new File("mybook");byte b=new byte100;dir.mkdir();tryZipInputStream 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;Sys
29、tem.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.setVi
30、sible(true);补充 1、用命令行带参的方式实现 dir命令的功能,不带参数表示查询当前目录,带参数表示查询指定的目录,如 dir c:,并支持dir *.java的文件后缀过滤功能。答:Dir.javaimport java.io.*;import java.util.*;import java.text.*;public class Dir public void GoBack()this.dir(System.getProperty("user.dir"),1);public void GoBack(String userdir) if(userdir.equ
31、als("*.java")this.dir(System.getProperty("user.dir"),0); 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(
32、) File口 dire=f.listFiles();for (int i=0; i<dire.length; i+) Byte+=direi.length();SimpleDateFormat formatter=new SimpleDateFormat ("yyyy/MM/dd h:m");String date=formatter.format(new Date(direi.lastModified() if(m=0)if(direi.getName().endsWith(".java") System.out.printf("%-
33、20s%-10s%-20d%-20s n",date,"",direi.length(),direi.getName(); else if(direi.isFile()System.out.printf("%-20s%-10s%-20d%-20s n",date,"",direi.length(),direi.getName(); else System.out.printf("%-20s%-10s%-20s%-20s n",date,"<DIR>",""
34、;,direi.getName(); break;public static void main(String口 args) throws IOExceptionDir test=new Dir();String userdir=System.getProperty("user.dir");System.out.print(userdir+"> ");System.out.print("dir ");/if(new InputStreamReader(System.in).read()=13)显示当前目录/ test.GoBac
35、k();Scanner scanner=new Scanner(System.in);userdir=scanner.next();test.GoBack(userdir);2、给当前的类所在的java源文件添加行号,拷贝到另一个文件temp.txt答:Temp.javaimport java.io.*;public class Temp public static void main(String口 args) File file = new File("Temp.java");tryFile tempFile = new File("temp.txt"
36、;);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 + " " + s);out.newLine();s = inTw
37、o.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");1 . CiAPtogram FilesVCreator ProGE2001.#X8已给当前的类所在的jaua源文件及
38、加行号,Ppesa an 1/ key to continue . .M3、编写一个图书类(Book),要求:每本图书数据包括图书ISBN号、图书名、单价,即在类 Book中要声明存放这3个数据 的成员变量。定义1个构造方法,此构造方法能将当前图书的ISBN号、图书名、单价赋成用户提供的真实数据值,而不是系统默认值。能用图书ISBN号作为关键属性来判断两本图书是否相等,即在类 Book中要重新编写从 父类 Object 继承得到的 public boolean equals( Object obj)方法。能用图书ISBN号作为关键属性来判断两本图书的大小(即先后顺序),即让类Book实现jav
39、a.lang.Comparable 接口, 并实现接口 Comparable 中的 public int compareTo( T o) 方法。 能用打印图书对象的方式将当前图书的ISBN号、图书名、单价在一行打印,并且每个数据间用Tab间作为分隔。即在类Book中要重新编写从父类 Object继承得到的public String toString()方法。编写上面图书类的测试类(Test.java ),要求: 编写代码创建封装以下两个图书数据的图书对象,并将这两个对象打印ISBN图书名单价978-7-115-16922-8Java程序设计与问题解决49.00978-7-900680-38-9东软Java软件工程师实例参考手 册58.00编写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年纺织专业知识考题试题及答案
- 学社联笔试题目及答案
- 宏观财税面试题及答案
- 2024年考试成功的知识体系构建试题及答案
- 商业设计师考试的难点攻克方法试题及答案
- 招聘测试题及答案解析
- 确保质量纺织工程师证书考试试题及答案
- 从实战看国际商业美术设计师考试的应用能力与试题及答案
- 广告设计师考试设计能力评估题型及答案
- 文化元素在纺织品设计中的体现试题及答案
- 《危险化学品企业安全生产标准化规范》专业深度解读与应用培训指导材料之6:5管理要求-5.6 设备完整性(雷泽佳编制-2025A0)
- (四调)武汉市2025届高中毕业生四月调研考试 生物试卷(含答案)
- 2024年青海省中考生物地理合卷试题(含答案解析)
- CNAS-CL01:2018(ISO17025:2017)改版后实验室首次内审及管理评审资料汇总
- 智慧树超星尔雅创新性思维和方法网络通识课题库附答案
- 05G515轻型屋面梯形钢屋架
- 【培训】房地产开发经营业务企业所得税政策解读
- 室外配套工程监理实施细则
- 压力钢管镇墩抗滑稳定及地基应力计算
- 组织环境因素及相关方需求和期望识别表
- 最新企业资产管理系统(EAM)简介
评论
0/150
提交评论