Java实验报告十二

Java语言程序设计》实验报告十二

学生姓名:郭倩       班级:  信息112      学号:201152275208

实验地点:经济管理中心证券模拟实验室            指导教师:赵利平

实验日期:  2012.05.29                

实验环境:Windows 2000+JDK1.6

1.       实验目的

(1) 练习事件处理机制;

2.       实验内容:异常处理

(1) P153 练习1

(2) P154 练习2

3.       实验过程

报告撰写具体要求:上述实验内容要求写出源代码及运行结果。

实验内容(1):

//程序代码

 // DivideByZero.java

public class DivideByZero

{

  private int denominator, numerator, quotient;

  public DivideByZero()

  {

    denominator = 3; numerator =  12;

    quotient = quotient(  numerator, denominator );

    System.out.print("Quotient is " + quotient);

  }

  public int quotient ( int numerator, int denominator )

  {

    return  numerator / denominator;

  } 

  public static void main( String args[] )

  {

    DivideByZero application = new DivideByZero();

  } 

}

(3) 运行结果:Quotient is 4.

12/7: Quotient is 1.

发生异常

运行出错Exception in thread "main" java.lang.ArithmeticException: / by zero

              at Exercise.DivideByzero.quotient(DivideByzero.java:15)

              at Exercise.DivideByzero.<init>(DivideByzero.java:9)

              at Exercise.DivideByzero.main(DivideByzero.java:19)

  (4)加入try/catch语句块后,denominator值为0时,运行结果为:

I found exception java.lang.ArithmeticException: / by zero

实验内容(2)

//程序代码

// DivideByZeroGUI.java

import java.awt.*;                // Container, GridLayout

import java.awt.event.*;          // ActionListener

import javax.swing.*;             // JFrame

public class DivideByZeroGUI extends JFrame

    implements ActionListener

{

  private JTextField numeratorField, denominatorField, outputField;

  private int denominator, numerator, quotient;

 

  public DivideByZeroGUI()

  {

    super( "除数为0异常" );

   

    Container container = getContentPane();

    container.setLayout( new GridLayout( 3, 2 ) );

   

    container.add(

        new JLabel( "输入被除数 ", SwingConstants.RIGHT ) );

    numeratorField = new JTextField( 10 );

    container.add( numeratorField );

   

    container.add(

        new JLabel( "输入除数并回车 ",

        SwingConstants.RIGHT ) );

    denominatorField = new JTextField( 10 );

    container.add( denominatorField );

    denominatorField.addActionListener( this );

    

    container.add(

        new JLabel( "结果 ", SwingConstants.RIGHT ) );

    outputField = new JTextField();

    container.add( outputField );

    setSize( 425, 100 );

    setVisible( true );

  } 

 

  public void actionPerformed( ActionEvent event )

  {

    outputField.setText( "" );   

    numerator = Integer.parseInt( numeratorField.getText() );

    denominator= Integer.parseInt( denominatorField.getText() );

    quotient = quotient(  numerator, denominator );

    outputField.setText(  Integer.toString(quotient)  );

  } 

  public int quotient( int numerator, int denominator )

  {

    return  numerator / denominator;

  } 

  public static void main( String args[] )

  {

    DivideByZeroGUI application = new DivideByZeroGUI();

    application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  } 

程序运行结果如下图所示:

    

(2

没有异常

(3)是异常

12/a:122 161 169 174 184 269 599 4460 2478 20## 4502 676 855 990 712 1850 4460 20## 4630 20## 6044 2814 2886 2851 1633 820 705 492 52 499 449 48

原因:除数为0;除数为数值格式;

(4)加入NumberFormatException异常处理块后运行结果为:

12/0: I found exception java.lang.ArithmeticException: / by zero

12/1.5: I detected Exception java.lang.NumberFormatException: For input string: "1.5"

12/e: I detected Exception java.lang.NumberFormatException: For input string: "e"

(5)运行结果:12/0:∞  12/1.5:8 

4.       实验总结

心得体会:做实验要小心翼翼,注意Java大小区分

 

第二篇:java程序设计课程--实验报告-实验12

《Java开发技术》实验报告

实验序号:实验12                        实验项目名称:数组

相关推荐