毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

JAVA课程设计之计算器设计报告 第7页

更新时间:2007-10-4:  来源:毕业论文

}//end goto10_8() method

//--------------------------------

//输入字符

public void enter()

{if(Refresh==true)

//如果已经设置了 运算符则在下一次输入数据的时候要把以前lab的内容清除掉

{lab.setText("0"); number=0; Refresh=false;}

if(lab.getText().charAt(0)=='0'&& lab.getText().length()==1)

//如果lab的内容为0则,lab的内容将被所输入的字符代替,否则直接在lab的内容后面加上所输入的字符

{lab.setText(Character.toString(ch)); number++;}

else

if(number<length)

{number++;lab.setText(lab.getText()+ch);}

}//end enter() method

//-------------------------------------

//用来处理按了运算符后的计算-

public void js() throws This_number_too_big //指定由method抛出异常

{if (mark=='n') //没有运算符

{mark=ch; //,则设置运算符为刚刚输入的字符,

data=Double.parseDouble(lab.getText());//则设置运算数据为lab的值

Refresh=true;//则设置下一次输入的时候要刷新lab

}

else //如果采用的是连续运算(即没有使用‘=’号)则运行下面的语句

{switch (mark) //根据运算符计算结果,并把结果保存到data

{ case '+': data+=Double.parseDouble(lab.getText()); break;

case '-': data-=Double.parseDouble(lab.getText()); break;

case '*': data*=Double.parseDouble(lab.getText()); break;

case '/': data/=Double.parseDouble(lab.getText()); break;}

lab.setText(Double.toString(data)); //显示运算结果

mark=ch;//设置运算符为刚刚按下的运算符

Refresh=true;//则设置下一次输入的时候要刷新lab

number=lab.getText().length();//设置输入的字符个数

// System.out.println(lab.getText());//用来调试用的

if (data>Double.MAX_VALUE)

//如果data超过double类型的最大值则抛出自定义的一个异常类

{throw new This_number_too_big(); }

}

}//end js() method

//---------------------------

//

public void answer() throws This_number_too_big //指定由method抛出异常

{if (mark=='n')

{}

else

{switch (mark)

{case '+': data+=Double.parseDouble(lab.getText()); break;

case '-': data-=Double.parseDouble(lab.getText()); break;

case '*': data*=Double.parseDouble(lab.getText()); break;

case '/': data/=Double.parseDouble(lab.getText()); break;}

lab.setText(Double.toString(data));

mark='n';}

if (data>Double.MAX_VALUE) //如果data超过double类型的最大值则抛出自定义的一个异常类

{throw new This_number_too_big();}

Refresh=false;

number=lab.getText().length();

}//end answer() method

//---------------------------

}//end class Jsp2003

4. 测试分析

1)程序运行情况:

程序正常的响应按钮事件,输入的数值长度受变量length的限定,进行混合四则运算的时候,结果如果不是很大,可以正常显示,但如果结果很大,就可能采用科学记数方式,这样带来了进制转换时的麻烦,需要特殊的处理科学记数里的E ,当结果太大的时候,有可能超出可能表示的最大值,(结果溢出),这个时候就要对结果进行必要的异常处理,我在输出结果的方法内设置if 语句,如果结果大于某一个值就抛出一个This_number_too_big 类型的类,再使用try-catch,捕捉输出结果的方法抛出的异常对象。然后进行,重制归零的处理。

2)程序异常处理:

当结果超出Double.MAX_VALUE时,将抛出一个This_number_too_big 类的异常对象,这个是我自定义的一个异常类它继承自Exception 类,然后使用try-catch去捕捉这个异常,异常的处理如下:

try

{ js();}

catch(This_number_too_big e)

{

lab.setText("0");

number=0;

mark='n';

Refresh=false;

System.out.println("The number is too big");

} //如果出现异常则初始化效果如同clear

五、参考文献

上一页  [1] [2] [3] [4] [5] [6] [7] 

JAVA课程设计之计算器设计报告 第7页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。