您的当前位置:首页正文

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.(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( \"输入被除数 \ 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( \"结果 \ 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 2099 4502 676 855 990 712 1850 4460 2099 4630 2041 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大小区分

因篇幅问题不能全部显示,请点此查看更多更全内容