JAVA实验6答案
- 格式:docx
- 大小:15.61 KB
- 文档页数:7
Java语言程序设计第六章课后习题答案1.将本章例6-1至6-18中出现的文件的构造方法均改为使用File类对象作为参数实现。
个人理解:File类只能对整文件性质进行处理,而没法通过自己直接使用file.Read()或者是file.write()类似方法对文件内容进行写或者读取。
注意:是直接;下面只提供一个例2变化,其他的你自己做,10几道啊,出这题的人真他妈有病。
import java.io.*;public class test6_2{public static void main(String[] args) throws IOException { String fileName = "D:\\Hello.txt";File writer=new File(fileName);writer.createNewFile();BufferedWriter input = new BufferedWriter(newFileWriter(writer));input.write("Hello !\n");input.write("this is my first text file,\n");input.write("你还好吗?\n");input.close();}}运行结果:(电脑系统问题,没法换行,所以一般使用BuffereWriter中newLine()实现换行)2.模仿文本文件复制的例题,编写对二进制文件进行复制的程序.// CopyMaker类import java.io.*;class CopyMaker {String sourceName, destName;BufferedInputStream source;BufferedOutputStream dest;int line;//打开源文件和目标文件,无异常返回trueprivate boolean openFiles() {try {source = new BufferedInputStream(newFileInputStream( sourceName ));}catch ( IOException iox ) {System.out.println("Problem opening " + sourceName );return false;}try {dest = new BufferedOutputStream(newFileOutputStream( destName ));}catch ( IOException iox ){System.out.println("Problem opening " + destName );return false;}return true;}//复制文件private boolean copyFiles() {try {line = source.read();while ( line != -1 ) {dest.write(line);line = source.read();}}catch ( IOException iox ) {System.out.println("Problem reading or writing" );return false;}return true;}//关闭源文件和目标文件private boolean closeFiles() {boolean retVal=true;try { source.close(); }catch ( IOException iox ) {System.out.println("Problem closing " + sourceName );retVal = false;}try { dest.close(); }catch ( IOException iox ) {System.out.println("Problem closing " + destName );retVal = false;}return retVal;}//执行复制public boolean copy(String src, String dst ) {sourceName = src ;destName = dst ;return openFiles() && copyFiles() && closeFiles();}}//test6_2public class test6_2{public static void main ( String[] args ) {String s1="lin.txt",s2="newlin.txt";if(new CopyMaker().copy(s1, s2))S ystem.out.print("复制成功");elseS ystem.out.print("复制失败");}}运行前的两个文本:lin.txt和newlin.txt(为空)运行后:3.创建一存储若干随机整数的文本文件,文件名、整数的个数及范围均由键盘输入。
实验六Java异常处理【实验目的】1)掌握Java异常的概念及工作机制2)掌握异常的分类3)掌握抛出异常语句的使用(throw)4)掌握抛出捕获处理异常语句的使用(try…catch…finally)5)掌握上抛异常语句的使用(throws)6)掌握创建自定义异常【实验环境】JDK1.6+Eclpise3.2【实验准备】1)复习课件中理论知识2)练习课堂所讲的例子【实验内容】1、编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。
测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。
package SIX;import java.io.IOException;import java.io.InputStreamReader;import java.io.BufferedReader;public class CIRCLE {public static void main(String[] args) throws IOException { System.out.print("请输入半径: ");BufferedReader br = new BufferedReader(new InputStreamReader(System.in));try{System.out.println("圆的面积为:"+computerArea(Double.parseDouble(br.readLine())));}catch(NumberFormatException e){System.out.println("您输入的不是数值,请重新输入");}}public static double computerArea(double r){r eturn Math.PI*r*r;}}2、计算两个正数之和,当任意一个数超出范围时,抛出自己定义的异常(NumberRangeException)。
第1章:习题集:一、填空题1.多态2.java.exe 3.jdb.exe 4.标准字节码5.Java 6.独立于平台二、选择题1.B 2.A 3.B 4.A 5.A 6.C 7.C 8.D 9.C第2章:实验指导:.第一处需要的代码:yourGuess>realNumber第二处需要的代码:yourGuess=input.nextInt();第三处需要的代码:yourGuess<realNumber第四处需要的代码:yourGuess=input.nextInt();.第一处需要的代码:iArray[i] < iArray[j]第二处需要的代码:iTemp = iArray[i];iArray[i] = iArray[j];iArray[j] = iTemp;.第一处需要的代码:continue lable;第二处需要的代码:System.out.print(" "+(i+j));.第一处需要的代码:System.out.print("\t");第二处需要的代码:System.out.print(j + "*" + i + "=" + (i*j) + "\t");习题集:一、填空题1.i=i+1 sum=sum+1 i<1002.while do while for 3.94.The symbol is an a.The symbol is a b.The symbol is c.The symbol is not a,b,or c.Switch is completed5.sum=0 pos++二、选择题1.D 2.A 3.D 4.A 5.D 6.A 7.B 8.B 9.C三、简答题2、there is no this value 3.Message four i is 1,2,3 i is 1,2,3 i is 1,2,3 i is 4第3章实验指导:.第一处需要的代码:balance+=saveAccount;第二处需要的代码:balance+=calculateInterst(Days);第三处需要的代码:ba.setMoney(save_value);ba.setInterstRate(interst_rate);第四处需要的代码:ba.accountInterst(365);.第一处需要的代码:minute=this.m_Minute;second=this.m_Second;第二处需要的代码:s=d.getMinutes()+":"+d.getSeconds()+":"+d.getTime();.第一处需要的代码:super(number,pass);balance=bal;第二处需要的代码:connect.第一处需要的代码:super(pass, motor);this.make=make;this.model=model;第二处需要的代码:am.run();习题集:一、填空题1.类2.代码和数据3.点4.实例变量5.Test te=new Test();6.对象实例化7.值、引用8.the original is data is:-1now the data is:109.I am parentI am childI am child二、选择题1.B 2.A 3.C 4.C 5.A 6.A 7.C 8.A 9.D 10.C 11.A 12.C 13.C 三、简答题6. A abstract和final修饰符不能同时使用B 未给出类型定义,final int MAX_NUMBER=10;C 常量不能修改D 静态方法值能访问静态变量,static int data。
第6章习题解答1.简述Java中设计图形用户界面程序的主要步骤。
对于设计图形用户界面程序而言,一般分为两个步骤:第一步,设计相应的用户界面,并根据需要对相关的组件进行布局;第二步,添加相关的事件处理,如鼠标、菜单、按钮和键盘等事件。
2.试说明容器与组件之间的关系。
组件(component)是图形用户界面中的各种部件(如标签、按钮、文本框等等),所有的组件类都继承自JComponent类。
容器(container)是用来放置其他组件的一种特殊部件,在java中容器用Container类描述。
3.阅读下面程序,说明其运行结果和功能。
//filename:MyFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrame{public static void main(String agrs[]){JFrame f=new JFrame("简单窗体示例");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel l=new JLabel("习题1");f.getContentPane().add(l,BorderLayout.CENTER);f.pack();f.setVisible(true);}}程序的运行结果如下:4.阅读下面程序,说明其运行结果和功能。
//filename:TestButton.javaimport java.awt.*;import javax.swing.*;public class TestButton extends JFrame{JButton b1,b2;TestButton(String s){super(s);b1=new JButton("按钮1");b2=new JButton("按钮2");setLayout(new FlowLayout());add(b1);add(b2);setSize(300,100);setVisible(true);}public static void main(String args[]){ TestButton test;test=new TestButton("测试按钮"); }}程序的运行结果如下:5.阅读下面程序,说明其运行结果和功能。
Chapter 6 Single-dimensional Arrays1. See the section "Declaring and Creating Arrays."2. You access an array using its index.3. No memory is allocated when an array is declared. The memory is allocated whencreating the array.x is 60The size of numbers is 304. Indicate true or false for the following statements:1. Every element in an array has the same type.Answer: True2. The array size is fixed after it is declared.Answer: False3. The array size is fixed after it is created.Answer: True4. The element in the array must be of primitive data type.Answer: False5. Which of the following statements are valid array declarations?int i = new int(30);Answer: Invaliddouble d[] = new double[30];Answer: Validchar[] r = new char(1..30);Answer: Invalidint i[] = (3, 4, 3, 2);Answer: Invalidfloat f[] = {2.3, 4.5, 5.6};Answer: Validchar[] c = new char();Answer: Invalid6. The array index type is int and its lowest index is 0.a[2]7.(a)double[] list = new double[10];(b)list[list.length – 1] = 5.5;(c)System.out.println(list[0] + list[1]);(d)double sum = 0;for (int i = 0; i < list.length; i++)sum += list[i];(e)double min = list[0];for (int i = 1; i < list.length; i++)if (min > list[i]) min = list[i];(f)System.out.println(list[(int)(Math.random() * list.length));(g)double[] = {3.5, 5.5, 4.52, 5.6};8. A runtime exception occurs.9. Line 3: the array declaration is wrong. It should be double[]. The array needs to becreated before its been used. e.g. new double[10]Line 5: The semicolon (;) at the end of the for loop heading should be removed.Line 5: r.length() should be r.length.Line 6: random should be random()Line 6: r(i) should be r[i].10. System.arraycopy(source, 0, t, 0, source.length);11. The second assignment statement myList = new int[20] creates a new array andassigns its reference to myList.12. False. When an array is passed to a method, the reference value of the array ispassed. No new array is created. Both argument and parameter point to the same array. 13.numbers is 0 and numbers[0] is 3 14.15. Only one variable-length parameter may be specified ina method and this parameter must be the last parameter. The method return type cannot be a variable-length parameter.16.The last oneprintMax(new int[]{1, 2, 3});is incorrect, because the array must of the double[] type.17. Omitted18. Omitted19. Omitted20 Simply change (currentMax < list[j]) on Line 10 to (currentMax > list[j])21 Simply change list[k] > currentElement on Line 9 tolist[k] < currentElement22.You can sort an array of any primitive types except boolean. The sort method is void,so it does not return a new array.23. To apply java.util.Arrays.binarySearch(array, key), the array must be sorted in increasing order.24. Line 1: list is {2, 4, 7, 10}Line 2: list is {7, 7, 7, 7}Line 3: list is {7, 8, 8, 7}Line 4: list is {7, 8, 8, 7}。
AnjoyoJava06课后习题一、选择题:1.下面关于异常的说法正确的一项是()。
A、异常就是在程序的运行过程中所发生的不正常的事件,但它不会中断正在运行的程序。
B、Error类和Exception类都是Throwable类的子类。
C、Exception处理的是Java运行环境中的内部错误或者硬件问题,比如,内存资源不足、系统崩溃等。
D、Error处理的是因为程序设计的瑕疵而引起的问题或者外在的输入等引起的一般性问题,例如:在开平方的方法中输入了一个负数,对一个为空的对象进行操作以及网络不稳定引起的读取网络问题等。
2.引起RuntimeException异常的原因不包括下面哪一项()。
A、错误的类型转换B、试图从文件结尾处读取信息C、试图访问一个空对象D、数组越界访问3.引起IOException异常的原因不包括下面哪一项()。
A、试图从文件结尾处读取信息B、试图打开一个不存在或者格式错误的URL。
C、数学计算错误D、用Class.forName()来初始化一个类的时候,字符串参数对应的类不存在。
4.下面哪一项不是RuntimeException异常中的一类()。
A、ClassNotFoundException:无法找到需要的类文件异常B、NumberFormatException:数字转化格式异常C、IllgalArgumentException:非法参数值异常D、IllegalStateException:对象状态异常,如对未初始化的对象调用方法5.IOException异常不包括下面哪一项()。
A、EOFException:读写文件尾异常B、InterruptedException:线程中断C、SocketException:Socket通信异常D、MalformedURLException:URL格式错误异常6.下列关于try-catch-finally处理异常描述有误的一项是()。
A、异常处理可以定义在方法体、自由块或构造方法中。
第6章共享与数据保护一、单选题1.已知print()函数是一个类的常成员函数,无返回值,下列正确的原型声明(A)。
A.void print()const;B.const void print();C.void const print();D.void print(const);2.有以下类的说明,请指出错误的地方(A)。
class CSample{const int a=2.5;//Apublic:CSample();//BCSample(int val);//C~CSample();//D};3.下列关于静态成员的描述中,错误的是(C)。
A.静态成员都使用static来说明B.静态成员属于某一个类,而不专属于某一对象C.静态成员只能用类名加作用域运算符引用,不可以通过对象来引用D.静态数据成员的初始化是在类体外进行的4.下列关于常成员的描述中,错误的是(C)。
A.常成员是用关键字const来说明的B.常成员有常数据成员和常成员函数两种C.常数据成员的初始化可以在定义类的类体内用形如const int a=10;的方式进行D.常数据成员的值是不可以改变的5.有以下类的说明,下列哪一种构造函数无法对常数据成员a正确初始化(C)。
class CSample{const int a;public://构造函数代码,见下面的选项};A.CSample():a(24){}B.CSample(int m):a(m){}C.CSample(){a=24;}D.CSample(int m):a(m+24){}6.设类AA内定义了一个int型的静态数据成员a,下列哪种方式对a的初始化正确(D)。
A.在类AA的定义体内用static int a=20;B.在类AA的定义体外单独用语句static int a=20 ;C.在类AA的定义体外单独用语句static int AA∷a=20;D.在类AA的定义体外单独用语句int AA∷a=20;7.关于静态成员函数,下列说法不正确的是(A)。
第六章【练习6.1 】[思考题] 请思考Java程序中编译时错误、逻辑错误和异常之间区别。
编译时的错误常常是语法上的错误。
通过编译器错误提示,能较容易修改。
程序逻辑上的错误是能被编译器编译通过,并能顺利运行,但运行出来的结果往往不是我们预期的结果。
异常是在程序运行过程中出现了错误导致程序终止,常常是运行时的错误。
练习6.21.C2.A练习6.31.C2.D3.A4.B5.B6.C练习6.41.B2.D练习6.51.C2.捕获异常;继续声明异常练习6.61.A2.C3.Exception;throws4.It’s caught!It’s finally caught!习题61.test2.不会3.[编程题]定义Triangle 类,其中包含一个方法void sanjiao(int a,int b,int c),用来判断三个参数是否能构成一个三角形。
如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
import java.util.Arrays;import java.util.Scanner;public class Triangle {public static void sanjiao(int a,int b,int c)throws Exception {if(a+b>c && c-a<b){System.out.println("能构成三角形");System.out.println("a="+a+","+"b="+b+","+"c="+c);}else {throw new IllegalArgumentException(a+","+b+","+c+" 不能构成三角形");}}public static void main(String[] args){int a[]=new int[3];System.out.println("输入三个整数");for(int i=0;i<3;i++){Scanner sc=new Scanner(System.in);a[i]=sc.nextInt();}Arrays.sort(a);//数组默认的从小到大排序,以保证三角形判定准则有效try{sanjiao(a[0],a[1],a[2]);}catch(IllegalArgumentException e){e.printStackTrace();}catch(Exception e){e.printStackTrace();}}}4.编写三个自定义异常类,分别为空异常类、年龄小异常类和年龄大异常类。
第6章集合类一.填空
1.Collection
2.hashNext() next()
3.Array List LinkedList, HashSet> TreeSet, HashMap、TreeMap
4.Key> Value
5.数组二.判断
1.错
2.对
3.错
4.对5,对三.选择
1.BC
2.B
3.ABCD
4.D
5.B
6.C四.简答
1. List的特点是元素有序、可重复。
List接口的主耍实现类有ArrayList和LinkedListo Set的特点是元素无序、不可重复。
Set接口的主要实现类有HashSet和TreeSeto Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。
M叩接口的主要实现类有HashMap和TreeMap o
2.由于ArrayList集合的底层是使用一个数组来保存元素,在增加或删除指定位置的元素时,会导致创立新的数组,效率比拟低,因此不适合做大量的增删操作。
但这种数组的结构允许程序通过索引的方式来访问元素,因此使用ArrayList集合查找元素很便捷。
五.编程。
Java答案全集实验汇总。
实验2 数据类型和变量的使用一、程序填空,在屏幕上显示一个短句“Programming in Java is fun!”import java.io.*;public class Test10001{public static void main(String args[]){/*------------------------*/}}二、程序填空,在屏幕上显示如下网格。
+---+---+| | || | |+---+---+import java.io.*;public class Test10002{public static void main(String args[]){/*------------------------*/}}三、编写程序,在屏幕上显示如下图案。
(要求:第1行行首无空格,每行行尾无空格)* * * ** * ** **public class Test10003{public static void main(String args[]){/*------------------------*/}}实验3 运算符和表达式的使用1、运行结果:m=2 k=1x=1.0 y=2.0 z=-3.0ch1=-A ch2=Ach1=-A ch2=aHello,Welcome to core Java!思考题:(1)字符'A'的Unicode码比字符'a'的Unicode码小32。
(2)假设字符型变量ch中保存一个大写字母,执行ch+=('a'-'A' );后,ch中是相应的小写字母。
例:若ch='B',执行后ch='b'。
2、运行结果:m=3 n=2. m大于n吗?truem=2 n=2. m大于n吗?falsestr1=Hello;str2=Hello!s1和s2相等吗?false思考题:(1)s2比s1多一个字符“!”,所以不相同。
《Java编程》实验教学大纲实验学时:32 实验个数:6实验学分:1课程性质:专业限选课适用专业:软件工程教材及参考书:1.《Java语言程序设计》,郑莉等主编,北京:清华大学出版社,20062.《面向对象程序设计与Java语言》,周晓聪等著,北京:机械工业出版社,2004大纲执笔人:朱贵琼大纲审定人:李晓宁一、实验课的性质与任务Java语言是新兴起的面向对象程序设计语言,用于应用程序设计,尤其是应用在网络、因特网和移动设备上。
为培养学生网络应用程序的编程能力,在学生具有一定的计算机和网络知识的基础上开设Java程序设计课程,使学生能够运用Java语言作为完成应用程序设计的基本工具。
本课程将从面向对象的基本概念入手,结合课程设计,较为系统地介绍Java语言的主要特征和编程方法,包括:类型与转换、类的声明与对象产生、继承与多态性、包与接口、数组与字符串、多线程编程以及异常处理、JDBC等内容。
通过相关的实验设计,使学生具有一定的网络编程能力。
二、实验课程目的与要求1.实验目的:开设该课程设计,目的是让学生在掌握了Java程序设计的基本知识、基本理论方面后,能熟悉Java编程的思想和编程技巧,培养学生分析问题和解决问题的能力及技巧。
实验设计覆盖Java程序设计中主要的方法。
该课程以讲授、演示和实验法相结合。
按照重视基础,突出重点的原则进行。
通过程序设计培养学生的程序设计能力、解决和分析问题的能力,使学生对所学的内容有更深入的理解,逐步掌握Java编程方面的技巧。
2.实验要求:(1)实验安排在上机时间进行,如在上机时间不能完成可课后完成,到期交经过编译并能正常运行的软件。
(2)实验以前,学生应对实验设计的相关知识点和相关设计技术有所了解。
(3)每个实验都要求写出实验报告(实验报告包括:实验内容、目的、实现方法、调试结果)。
三、实验项目及内容提要四、实验内容安排:实验一 Java基础知识实验(验证型实验 4学时)1.目的要求:(1)熟悉Jbuilder的开发环境,学会Jbuilder基础的操作和调试。