文档库 最新最全的文档下载
当前位置:文档库 › 实验四Java语言解决算法问题

实验四Java语言解决算法问题

实验四Java语言解决算法问题
实验四Java语言解决算法问题

实验四Java语言解决算法问题(4学时)

一、实验目的

(1)熟悉Java图形用户界面GUI类;

(2)学习处理ActionEvent事件;

(3)掌握事件源、监视器、处理事件的接口这三个概念;

(4)使用Java语言解决算法问题。

二、实验学时:2学时

三、实验要求

(1)编写一个训练算术能力的测试软件;

(2)Teacher类对象给出题目,判断答案是否正确;ComputerFrame类对象提供题目GUI 视图;MainClass作为主类。

四、实验原理

(1)事件源指的是能够产生事件的对象,如文本框、按钮等;

(2)监视器指的是对事件源进行监视的对象,以便对发生的事件进行处理;

(3)Java语言使用接口回调技术设计了它的处理事件模式。事件源增加监视的方法addXXXListener(XXXListener listener)中的参数是一个接口,listener可以引

用任何实现了该接口的类所创建的对象,当事件源发生事件时,接口listener立

刻回调被类实现的接口中的某个方法。

五、实验内容

课堂实验任务:请按模板要求,将【代码】替换为Java程序代码。

1.题目一算术测试

模板代码:Teacher.java

public class Teacher

{ int numberOne,numberTwo;

String operator="";

boolean right;

public int giveNumberOne(int n)

{ numberOne=(int)(Math.random()*n)+1;

return numberOne;

}

public int giveNumberT wo(int n)

{ numberTwo=(int)(Math.random()*n)+1;

return numberTwo;

}

public String giveOperator()

{ double d=Math.random();

if(d>=0.5)

operator="+";

else

operator="-";

return operator;

}

public boolean getRight(int answer)

{ if(operator.equals("+"))

{ if(answer==numberOne+numberTwo)

right=true;

else

right=false;

}

else if(operator.equals("-"))

{ if(answer==numberOne-numberTwo)

right=true;

else

right=false;

}

return right;

}

}

模板代码:ComputerFrame.java

import java.awt.*;

import java.awt.event.*;

public class ComputerFrame extends Frame implements ActionListener { TextField textOne,textTwo,textResult;

Button getProblem,giveAnwser;

Label operatorLabel,message;

Teacher teacher;

ComputerFrame(String s)

{ super(s);

teacher=new Teacher();

setLayout(new FlowLayout());

textOne=【代码1】 //创建textOne,其可见字符长是10

textTwo=【代码2】 //创建textTwo,其可见字符长是10

textResult=【代码3】 //创建textResult,其可见字符长是10

operatorLabel=new Label("+");

message=new Label("你还没有回答呢");

getProblem=new Button("获取题目");

giveAnwser=new Button("确认答案");

add(getProblem);

add(textOne);

add(operatorLabel);

add(textTwo);

add(new Label("="));

add(textResult);

add(giveAnwser);

add(message);

textResult.requestFocus();

textOne.setEditable(false);

textTwo.setEditable(false);

【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视器

【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监视器

【代码6】//将当前窗口注册为textResult的ActionEvent事件监视器 setBounds(100,100,450,100);

setVisible(true);

validate();

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e) { System.exit(0);

}

}

);

}

public void actionPerformed(ActionEvent e)

{ if(【代码7】) //判断事件源是否是getProblem

{ int number1=teacher.giveNumberOne(100);

int number2=teacher.giveNumberTwo(100);

String operator=teacher.givetOperator();

textOne.setText(""+number1);

textTwo.setText(""+number2);

operatorLabel.setText(operator);

message.setText("请回答");

textResult.setText(null);

}

if(【代码8】) //判断事件源是否是giveAnwser

{ String answer=textResult.getText();

try{

int result=Integer.parseInt(answer);

if(teacher.getRight(result)==true)

{ message.setText("你回答正确");

}

else

{ message.setText("你回答错误");

}

}

catch(NumberFormatException ex)

{ message.setText("请输入数字字符");

}

}

textResult.requestFocus();

validate();

}

}

模板代码:MainClass.java

public class MainClass

{ public static void main(String args[])

{ ComputerFrame frame;

frame=【代码9】//创建窗口,其标题为:算术测试

}

}

题目二稀疏矩阵

如果在矩阵中,多数的元素为0,称此矩阵为稀疏矩阵(sparse matrix)。

在这里介绍的方法较为简单,数组只储存矩阵的行数、列数与有数据的索引位置及其值,在需要使用矩阵数据时,再通过程序运算加以还原,例如矩阵数据如下,其中0表示矩阵中该位置没有数据:

0 0 0 0 0 0

0 3 0 0 0 0

0 0 0 6 0 0

0 0 9 0 0 0

0 0 0 0 12 0

这个矩阵是5*6矩阵,非零元素有4个,要使用的数组第一列记录其列数、行数与非零元素个数:

5 6 4

数组的第二列起,记录其位置的列索引、行索引与储存的值:

1 1 3

2 3 6

3 2 9

4 4 12

所以原本要用30个元素储存的矩阵内容,现在只使用了15个元素来储存,节省了不少内存的使用。

根据提供的Matrix.java文件进行调试。

运行结果如下:

六、思考练习

(1)给上述程序增加测试乘、除的功能。

JAVA实验3-异常处理和常用实用类-报告

信息工程学院1 《Java语言程序设计》实验报告 学院: 班级: 姓名: 学号: 成绩: 一、实习目标 (1)掌握Java的异常处理机制及相关实现方法; (2)掌握常用实用类的使用,熟悉使用JDK_API进行软件开发; (3)掌握Java中正则表达式的基本用法。 二、实验过程 实验题1 try-catch练习: JAVA_API: getMassage():返回此throwable或exception的详细消息字符串,正数除0 返回Infinity,负数除0返回-Infinity。 toString():对象利于null的详细消息字符串创建,则返回此对象的实际类的 名称,返回此throwable的简短描述。 printStackTrace():将错误的详细信息追踪到代码中具体某一行,将throwable 及其追踪输出至标准错误流。 代码截图: CatchError类: 实验报告的内容与格式按任课教师的要求书写。

MainTest类:

运行结果: 实验题2 用户自定义异常: 在ExceptionTest类中进行成绩录入和平均成绩的计算。 StasticScore类为成绩录入的具体方法,并进行异常检测。 ScoreException类继承StasticScore,输出错误提示。 代码截图: ExceptionTest类: ScoreException类:

StasticScore类:

运行结果:

实验题3 String & StringBuffer的使用: JAVA_API: Int indexOf(String str, int fromIndex)函数:返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。如果不存在,返回-1。 Static String valueOf(int i)函数:返回int参数的字符串表示形式。该表示形式正是单参数的interger.toString方法返回的结果。 Int indexOf(String str, int fromIndex)函数:返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。如果不存在,则返回-1。 Public StringBuffer append(String str)函数:将指定的字符串追加到此字符序列。按顺序追加String变量中的字符,使此序列增加到该变量的长度。 代码截图: TestOfKeyword类:

java 异常处理

实验五异常处理 【实验目的】 1.了解Java 中异常处理(exception)的作用。 2.掌握异常处理的设计方法。 【实验内容】 一.Java的异常处理。源文件是Ex4_1.java。要捕捉的异常是除数为零和数组下标越界。 通过修改a和c[]下标值体验程序。 public class Ex4_1 { public static void main (String[] args) {int a, b; int c[]={1,2,3}; try{ a=10; b=100/a; System.out.println ("当前a值:"+a); c[2]=200; System.out.println ("当前数组长:"+c.length); }catch(ArithmeticException e) { System.out.println ("除零错误:"+e); } catch(ArrayIndexOutOfBoundsException e) { System.out.println ("数组下标越界:"+e); } finally { System.out.println ("我是finally");} System.out.println ("我能被正常执行到"); } } 【思考问题】 ①先运行上面没有错误程序,观察运行结果。 ②按下条件分别修改数据,编译后运行,观察输出结果,分析在try…catch块里那 些语句没有被执行,为什么? 块外那些语句可被执行到,为什么? ◆修改a=0,保持c[2]=200; ◆保持a=10,修改c[3]=200, ◆修改a=0,修改c[2]=200; ③再添加一个catch{Exception e}{ },位置在最前面,观察编译信息,说明什么?2.自定义异常类。注意throw、throws的使用。源文件是Ex4_2.java。 class MyException extends Exception //自定义异常类 {public String toString() { return "除数等于零"; } }

第五章Java语言异常处理-实验题目

第五章Java语言异常处理--实验题目 一、实验目的 1. 掌握Java的异常处理机制。 2. 掌握try、catch、throws和finally这5个关键字的用法。 3. 掌握成员的几个异常类。 4. 掌握自定义异常的使用。 二、实验内容 1.编写程序,从键盘上输入两个数。将第一个数除以第二个数并显示结果;处理所有可能的异常。 2.写出下面程序运行的结果: 3.写出下列程序的输出结果。

4.有下列程序: 若用下面方式执行该程序,则baz的值为( )。 java Test Red Green Blue (A)“”(B)null (C)"Red”(D)”BIue”(E)”Green”(F)代码不能编译(G)程序抛出异常5.有下列程序: 该程序的输出结果为( )。 (A)没有任何输出(B)输出“Finally”(C)编译错误(D)抛出异常 6.有下列程序:

该程序的输出结果为( )。 (A)没有任何输出(B)输出“Finally”(C)编译错误(D)抛出异常7.修改下列程序的错误之处。 8.写出下列程序的运行结果。

9.编写一个程序,要求从键盘输入一个double型的圆的半径,计算并精出其面积。 测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。10.编写一个应用程序,在main()方法中使用try块抛出一个Exception类的对象,为Exception的构造方法提供一个字符串参数,在catch块内捕获该异常并打印出字符串参数。添加一个finally块并打印一条消息。 11.创建一个自定义的异常类,该类继承Exception类,为该类写一个构造方法,该构造方法带一个String类型的参数。写一个方法.令其打印出保存下来的String对泉。再编写一个类,在main()方法中使用try--catch结构创建一个MyException类的对象并抛出,在catch块中捕获该异常井打印出传递的String消息。

JAVA异常实验报告

一. 实验目的及实验环境 实验目的:1.理解JA V A对异常的处理 2.掌握自定义异常的定义方式 实验环境:eclipse 4.4 二. 实验内容 1.假设Sum类中有一个addContinue(int n)方法,当n>0时,方法翻译1+2+…+n 的和;当n<0时,方法抛出一个受检查的ArgumentException异常。ArgumentException类应该提供一个能够接受并保存n值得构造方法,以及一个能返回n值得实例方法,现定义Sum类以及ArgumentException类,并编程测试它们。 三.方案设计 1.定义三个类Sum,ArgumentException,Test类 2.分别在类中实现加法,异常抛出和测试 四.测试数据及运行结果 1.正常测试数据(3组)及运行结果;

2.非正常测试数据(2组)及运行结果。 五.总结 1.实验过程中遇到的问题及解决办法; ①中没有明确表示需要进行异常抛出很有可能就会忘记这个题目存在的问题。所以平常程序设计时,应该多考虑不同的情况,防止程序出现不可逆的漏洞。 ②如果发生可识别的运行错误,系统应产生一个相应的异常类对象,并进一步寻找异常处理代码来处理它,确保程序能从故障中恢复,之程序能够运行下去,直

到结束。 2.对设计及调试过程的心得体会。 中断,影响程序正常运行的事件称为异常。异常处理是使程序从故障中恢复,他包括提示异常信息、不产生无效结果和释放资源三方面内容。其中,显示异常信息和不产生无效结果可通过try和catch块来实现,释放资源可通过finally块实现。 附代码 public class Add { public int addContinue(int i) throws ArgumentException{ int sum=0; if( i<0){ throw new ArgumentException(i); } for(int n=0;n<=i;n++){ sum=sum+n; } return sum; } } public class ArgumentException extends Exception { private int n; public ArgumentException(int n) { this.n = n; } public int getN(){ return n; } } public class test { public static void main(String[] args){ Add s = new Add(); try { System.out.println(s.addContinue(-1)); } catch (ArgumentException e) { System.out.println(e.getN()); } } }

实验三 Java异常处理

实验三Java异常处理 一、实验目的 1)掌握Java异常的概念及工作机制 2)掌握异常的分类 3)掌握抛出异常语句的使用(throw) 4)掌握抛出捕获处理异常语句的使用(try…catch…finally) 5)掌握上抛异常语句的使用(throws) 6)掌握创建自定义异常 二、实验内容 自定义一个异常类,求两个数的最大公约数。 三、实验步骤 1)声明一个类,继承与Exception,用来处理求公约数时被除数小于除数抛出异常。 2)声明一个方法来求公约数。 3)在主方法里通过控制台输入二个人数并把求公约数的方法写在try{}中,catch{}填写出现的自定义的异常及ArithmeticException 异常。 四、实现代码 import java.util.Scanner; class MyException extends Exception { int m,n;

public MyException(int m,int n) { this.m=m; this.n=n; } public void process() { System.out.println("被除数小于除数!"); } } public class divisor{ int m,n; public divisor(int m,int n) { this.m=m; this.n=n; } public int div() throws MyException { int tmp;

if(m

JAVA实验四异常处理

实验四异常处理 实验目的 1、掌握异常的概念和Java 异常处理机制。 2、掌握异常的定义、抛出和捕捉处理。 实验内容与要求 1、仔细读下面的JAVA语言源程序,自己给出程序的运行结果 import java.io.*; public class Ch31 { public static void main(String args[])throws IOException { int[] ko=new int[15]; int n,a; String x; BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter an integer:"); x=keyin.readLine(); n=Integer.parseInt(x); try { a=110/n; ko[15]=100; System.out.println("此描述无法执行!"); } catch(ArithmeticException e){ System.out.println("除数为0的错误"); } catch(ArrayIndexOutOfBoundsException f) { System.out.println("数组索引值大于数组长度的错误!"); } System.out.println("执行完catch的描述!!!"); } } 2.运行下面的程序,自己给出程序的运行结果。 import java.io.*; public class Ch32{ public Ch32(){ try{ int a[] = new int[2]; a[4] = 3; System.out.println("After handling exception return here?"); }catch(IndexOutOfBoundsException e){ System.err.println("exception msg:" + e.getMessage()); System.err.println("exception string:" + e.toString()); e.printStackTrace(); }finally{

JAVA实验7-9+答案

实验7 1. 编一个程序,包含以下文件。 (1)Shape.java文件,在该文件中定义接口Shape,该接口在shape包中。 属性:PI。 方法:求面积的方法area()。 (2)Circle.java文件,在该文件中定义圆类Circle,该类在circle包中,实现Shape接口。 属性:圆半径radius。 方法:构造方法;实现接口中求面积方法area();求周长方法perimeter()。 (3)“Cylinder.java”文件,在该文件中定义圆柱体类Cylinder,该类口在cylinder包中,继承圆类。 属性:圆柱体高度height。 方法:构造方法;求表面积方法area();求体积方法volume()。 (4)X5_3_6.java文件,在该文件中定义主类X5_3_6,该类在默认包中,其中包含主方法main(),在主方法中创建两个圆类对象cir1和cir2,具体尺寸自己确定,并显示圆的面积和周长;再创建两个圆柱体类的对象cy1和cy2,具体尺寸自己确定,然后分别显示圆柱体cy1和cy2的底圆的面积和周长以及它们各自的体积和表面积。 【编程分析】本题主要考察接口、包、继承、封装等问题。编程步骤如下:第一步:首先创建p1包,在其中创建Shape接口 // Shape.java文件 package p1; // 创建p1包 public interface Shape{ // 定义Shape接口 … } 第二步:创建Circle类和Cylinder类,它们都定义在p2包中。 // Circle.java文件 package p2; // 创建p2包 import p1.*; public class Circle implements Shape{ // 定义实现Shape接口的Circle类 … } // Cylinder.java文件 package p2; public class Cylinder extends Circle{ // 创建继承Circle类的Cylinder类 … } 第三步:创建主类,在其中的main()方法中创建对象,实现相应的功能。 // X5_3_6.java文件 package p3; import p2.*; public class X5_3_6 { // 定义主类 public static void main(String[] args) { … } }

JAVA 异常处理实验报告

实验三异常处理 [实验目的] 1.掌握异常处理方法及熟悉常见异常的捕获方法。 [实验内容] 1.练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch 子句的使用。 [实验步骤与要求] 第1题异常处理 要求声明定义两个Exception的异常子类:NoLowerLetter类和NoDigit类。再声明一个People类,该类中的void printLetter(char c)方法抛出NoLowerLetter异常类对象,void PrintDigit(char c)方法抛出NoDigit异常类对象。 [作业提交] 将代码贴在下面: class NoLowerLetter extends Exception{ String message; NoLowerLetter(char c){ message=c+"不是正数"; } public String getMessage(){ return message; } } class NoDigit extends Exception{ String message; NoDigit(char c){ message=c+"不是偶数"; }

public String getMessage(){ return message; } } class People{ public void printLetter(char c) throws NoLowerLetter{ if(c<0){ NoLowerLetter ex=new NoLowerLetter(c); throw(ex); } double number=Math.sqrt(c); System.out.println(c+"的平方根:"+number); } public void PrintDigit(char c) throws NoDigit{ if(c%2!=0){ NoDigit ex=new NoDigit(c); throw(ex); } double number=Math.sqrt(c); System.out.println(c+"的平方根:"+number); } } public class bianma{ public static void main(String args[]){ People p=new People(); try{ p.printLetter('Q'); p.printLetter(' '); } catch( NoLowerLetter e){ System.out.println(e.getMessage()); } try{ p.PrintDigit('d'); p.PrintDigit('a'); } catch( NoDigit e){ System.out.println(e.getMessage()); } } } 将结果运行截屏贴在下面:

JAVA异常处理实验报告

实验报告 实验名称:异常处理 学院:电子信息工程学院 班级:电信01班 姓名:鲁川 学号: 121040110113 日期: 2014.11.3 成绩:

一、实验名称:异常处理 二、实验目的: 1.掌握异常处理机制的运作 2.掌握处理异常的几个子句:try…catch..finally、thorws和throw 3.掌握字符串类的相关操作 三、实验内容: 1. 编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数 组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。 2. 给定一个字符串,将字符串中的所有大写字母变成小写字母,数字用0来代替,其他符号用#代替。 四、实验代码 1.ExceptionDemo.java class ExceptionDemo { public static void main(String[] args) { int [] arr = new int[]{13,24,1,53,24}; try { int num = arr[5]; } catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组越界啦!!!"); } finally { System.out.println("此处代码一定会执行的--finally"); } } } 运行结果:

2.StringTest.java class StringTest { public static void main(String[] args) { String str = "DfS分手dsA吧25J奋45斗"; System.out.println("原字符串=="+str); StringBuffer sb = new StringBuffer(); for(int i = 0;i='A' && ch<='Z') { sb.append(Character.toLowerCase(ch)); } else if(ch>='a' && ch<='z') { sb.append(ch); }else if(ch>=49 && ch<=58) { sb.append(0); }else { sb.append("#"); }

Java作业实验六---异常处理

提交方式: 把文件名改为学号姓名,提交文档和源码(只需提交最顶层包文件夹) 实验六异常处理 一、实验目的 1.学会利用Try-catch-finally语句来捕获和处理异常; 2.掌握自定义异常类的方法。 二、实验要求 1.通过编程理解系统异常处理的机制和创建自定义异常的方法。 2.掌握基础类。 三、实验内容 (一)异常处理机制 1. 编写使用try…catch 语句处理异常的程序文件Demo4_1.java,

编译并运行程序,并把运行结果复制在下面 。 注意:如果在catch 语句中声明的异常类是Exception,catch 语句也能正确地捕获,这是因为Exception是ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。 2、源文件是Demo3_2.java。要捕捉的异常是除数为零和数组下标越界。通过修改a和c[]下标值体验程序。 【思考】 ①先运行上面程序,观察运行结果。 ②按下条件分别修改数据,编译后运行,观察输出结果,分析在try…catch块里那些语句没有被执行,为什么? 块外那些语句可被执行到,为什么? 修改a=0,保持c[2]=200; 保持a=10,修改c[3]=200, 修改a=0,修改c[3]=200; ③再添加一个catch{Exception e}{ },位置在最前面,观察编译信息,说明什么? 3、编写Demo3_3.java 程序,计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。源代码如下:

实验六异常处理

实验六异常处理 云南大学信息学院面向对象技术导论 java程序设计大学教程实验 【开发语言及实现平台或实验环境】 Windows2000 或XP,JDK1.6与Jcreator4.0 【实验目的】 1. 掌握Java中异常的概念及含义。 2. 掌握异常的定义、抛出方法以及如何捕捉处理异常。 3. 熟悉如何将异常处理灵活运用到实际编程中。 【实验要求】 1. 运行上课讲解的例子; 2. 完成下列实验内容。 【实验内容】 一、读懂并运行下列程序,体会Java中异常处理机制。 1. 分析并运行下面的程序。参考源代码如下: import java.io.*; public class ExceptionTest { public static void main ( String args[] ) { for ( int i = 0; i < 4; i++ ) { int k; try { switch ( i ) { case 0: //除数为0 int zero = 0; k = 911 / zero; break; case 1: //空指针 int a[] = null; k = a[0]; break; case 2: //数组下标越界 int b[] = new int[4]; k = b[6]; break; case 3: //字符串下标越界 char ch = "China”.charAt(5); break; } }catch ( Exception e ) { System.out.println("\nTestCase#"+i+"\n");

System.out.println(e); } } } } 问题: (1) 程序中设计循环有何目的? (2) 程序中将产生哪些异常? (3) 程序中的异常是如何抛出、捕捉及处理的? 答:(1)获得全部的异常。 (2)除数为0,空指针,数组下标越界,字符串下标越界 (3)抛出:当语义限制被违反时,将会抛出(throw)异常,即产生一个异常事件,生成一个异常对象,并把它提交给运行系统,再由运行系统寻找相应的代码来处理异常。捕捉:异常抛出后,运行时系统从生成异常对象的代码开始,沿方法的调用栈进行查找,直到找到包含相应处理的方法代码,并把异常对象交给该方法为止,这个过程称为捕获(catch)异常。处理:书写特殊的异常处理代码进行处理。 实验结果: 2. 分析并运行下面的程序。程序源代码如下: public class ExceptionTest { public static void main ( String args[] ) { System.out.println("捕获不同类型的异常"); try { int a=10/0; } catch ( ClassCastException e ) { System.out.println("发生异常"+e); } finally{ System.out.println("执行finally语句");

实验10--java异常(答案)

实验六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)

JAVA实验报告5 异常处理实验

中南财经政法大学武汉学院实验报告 实验课名称:__JAVA语言____ 学生姓名:_______ 专业班级:__网络工程1104 学号:11071125__ 开课时间:___2013年2月26日_ 教务处制

《Java程序设计基础》实验报告 实验序号:05实验项目名称:异常处理 学号11071125姓名专业、班级 实验地点计-202指导教师时间2013-5-14一、实验目的及要求 了解异常处理机制; 了解异常的概念; 掌握抛出异常、捕获异常和异常处理的方法; 了解自定义异常类的定义和使用方法。 二、实验设备(环境)及要求 1、Windows-XP操作系统 2、Eclipse应用程序 三、实验内容与步骤 编写一个类ExceptionTest1,在main方法中使用try、catch、finally: ①在try块中,编写被0除的代码。 ②在catch块中,捕获被0除所产生的异常,并且打印异常信息。 ③在finally块中,打印一条语句。 四、实验结果与数据处理 import java.util.*; public class ExceptionTest1{ public static void main(String[]args){ Scanner in=new Scanner(System.in); try{ System.out.print("请输入被除数:"); double beichushu=in.nextDouble(); System.out.print("请输入除数:"); double chushu=in.nextDouble(); if(chushu==0) throw new ArithmeticException("请输入不为0的数字!"); double i=(beichushu/chushu); System.out.println("二者的商为:"+i);}catch(InputMismatchException e1){ System.out.println("请输入数字!");

实验10 JAVA 异常处理

实训报告 实验9 JA V A 异常处理 【实验目的】 1.掌握JAVA语言异常的概念。 2.掌握JAVA语言系统异常类的层次关系。 3.掌握JAVA语言系统异常类的功能和使用。 4.掌握自定义异常类的使用。 【预习内容】 1.JAVA Throwable类的子类:Error类与Exception类; 2.JAVA 异常的抛出,捕捉与处理; 3.异常类常用方法的使用; 4.JAVA异常throw 和throws语句的使用; 【实验内容及步骤】 1.上机验证题 1.阅读下面的程序,在理解的基础上,结合运行效果示例,把程序补充完整并运行程序:【示例】 编写使用try…catch 语句处理异常的程序文件LX9_1.java,源代码如下。 public class LX9_4 { static void throwProcess() { try {

____________ new NullPointerException("空指针异常"); } catch (NullPointerException e) { System.out.println("\n 在throwProcess 方法中捕获一个"+e.getMessage()); ____________; } } public static void main(String args[]) { try { throwProcess(); } catch (NullPointerException e) { System.out.println("再次捕获:"+e); } } } [程序清单] public class LX9_1 { static void throwProcess() { try { throw new NullPointerException("空指针异常"); } catch (NullPointerException e) { System.out.println("\n 在 throwProcess 方法中捕获一个"+e.getMessage()); throw e; } } public static void main(String args[]) { try { throwProcess(); } catch (NullPointerException e) { System.out.println("再次捕获:"+e); }

JAVA实验异常处理

成都大学实验报告 姓名系别班级学号课程名称指导教师实验成绩实验日期 软件 6班JAVA 程序郑加林2010.05.09 设计基础 实验项目名称异常处理的编程练习 一、实验目的: 1、了解异常类的作用 2、掌握对异常的捕获和处理方式 二、实验内容(包括源程序及相关说明): 1、使用try .catch 语句处理异常。在程序中主动产生一个ArithmeticException类型被0除的异常,并用catch语句捕获这个异常。最后通过ArithmeticException类的对象 e 的方法 getMessage 给出异常的具体类型并显示出来。源代码如下: public class EXP5_1 { public static void System. out .println( try { int i=10; i/=0;main(String[] args){ " 这是一个处理异常的例子" ); } catch (ArithmeticException e){ System. out .println(" 异常是:" +e.getMessage()); } finally{ System. out .println("finally语句被执行" ); } } } 2 、异常类型不匹配的处理方式。源代码如下: public class EXP5_1 { public static void main(String[] args){

System.out .println(" 这是一个处理异常的例子" ); try { int i=10; i/=0; } catch (IndexOutOfBoundsException e){ System. out .println(" 异常是:" +e.getMessage()); } finally{ System.out .println("finally语句被执行" ); } } } 3 、包含多个 catch子句的异常处理方式.在try子句中设计两个可能出现的异常,当 a 为 0 时会发生异常。另外一个是肯定的异常,因为数组 c 的长度为 1,定义 c[42] 是非法的。通过两个catch子句分别来捕获异常。 public class public EXP5_1 { static void main(String[] args) { try{ int System. int int a=args.length out .println( b=42/a; c[]={1}; ; "\na = "+a); c[42]=99; } catch(ArithmeticException e) { System.out .println(" 发生了被0除: " +e); } catch(ArrayIndexOutOfBoundsException e) { System.out .println(" 数组下标越界:" +e); } } } 4、使用 throw 语句抛出异常.在上面的实验中,可以发现,异常对象是Java 运行时由 系统抛出的。抛出异常也可以通过使用throw语句实现。throw是Java语言的关 键字,用来告知编译器此处要发生一个异常。throw后面要跟一个新创建的异常类 对象,用于指出异常的名称和类型。 public class EXP5_1{ static void throwProcess(){ try {

java-异常处理try-catch实验报告

计算机工程学院实验报告 2017-2018学年第1学期 课程名称:面向对象程序设计专业:计算机科学与技术班级: 学号: 姓名: 指导教师:

2.使用字符用户界面模拟ATM登陆,存取款。用户可以按照以下规则进行:1)当输入给定的卡号和密码(初始卡号为123456,密码是666666)时,可以 进入系统,否则将退出。 2)查询余额:初始余额为10000元 3)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不 允许透支。 4)ATM存款:不能出现负存款。 代码部分: import java.util.Scanner; public class bank3 { public static void main(String[] args) { System.out.println("请输入密码:"); Scanner sc=new Scanner(System.in); String password=sc.nextLine(); bank b=new bank("12345",password); for(int i=0;i<1;i++){ try{b.dl(password); System.out.println("请输入取款金额:"); b.qukuan(s c.nextInt()); b.disp();}catch(dlyc e){System.out.println(e); } catch (qkyc1 e) {System.out.println(e);i--; } catch (qkyc2 e) {System.out.println(e);i--; }catch(qkyc3 e){System.out.println(e); i--; }}}} class dlyc extends Exception{ public String toString(){ return "密码错误!程序退出!"; } } class qkyc1 extends Exception{ public String toString(){ return "取款金额必须是100的倍数"; } } class qkyc2 extends Exception{ public String toString(){ return "取款金额不能超过5000";} } class qkyc3 extends Exception{ public String toString(){ return "余额不足"; } } class bank{

实验六:Java异常处理

实验六 Java异常处理 一、实验目的 1)掌握Java异常的概念及工作机制 2)掌握异常的分类 3)掌握抛出异常语句的使用(throw) 4)掌握抛出捕获处理异常语句的使用(try…catch…finally) 5)掌握上抛异常语句的使用(throws) 6)掌握创建自定义异常 二、实验环境 JDK1.6+Eclpise3.2 三、实验准备 1)复习课件中理论知识 2)练习课堂所讲的例子 四、实验内容 1、编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。 2、计算两个正数之和,当任意一个数超出范围时,抛出自己定义的异常(NumberRangeException)。 五、实验过程及结果 第1题调试结果如下图: 第2题调试结果如下图:

六、实验感想 本次实验掌握Java异常的概念及工作机制,了解异常的分类,掌握抛出异常语句的使用(throw)、抛出捕获处理异常语句的使用(try…catch…finally)及上抛异常语句的使用(throws)和创建自定义异常等。 七、附录 第1题源码: package zsl; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class one { public static void main (String[] args) throws IOException{ System.out.println("请输入园的直径:"); 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){ return Math.PI*r*r; } } 第2题源码: NumberRangeException.java package zsl; public class NumberRangeException extends Exception { public NumberRangeException (String msg) { super(msg); } }

java实验报告

实验报告□实践报告□ 课程名称: Java语言程序设计 实验、实践名称:Java语言基础、数组和字符串编程、Java 面向对象程序设计、Java异常处理多线 程编程、图形用户界面编程 实验、实践地点:致向楼301 专业班级:软件1531 学号: 学生姓名:关玉芬 指导教师:相洁 2017 年 1月8日

a=new double[3][3]; Scanner sr = new Scanner; for(int i=0;i<3;i++) for(int j=0;j<3;j++){ a[i][j]=(); } (); for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ if(i==j) sum+=a[i][j];}} 3、 package a1; import .*; public class a3 { public static void main(String[] args){ Scanner sr=new Scanner; String word=new String(); word=(); String[] words=(" "); int num=; ();}} 五、实验结果 1. . 2. 3. 六、实验心得 通过本次实验掌握数组的声明、分配空间及初始化;理解多维数组(重点掌握二维);掌握String类的特点及常用方法的使用;掌握StringBuffer 类的特点及常用方法的使用;掌握String类和StringBuffer类的区别;掌握equal方法与==的区别;但是本次练习中,我也出现了一些错误,是由于知识上的失误和不小心犯下的低级错误,但是我努力改正。

相关文档