JAVA课程设计之计算器设计报告含源代码|计算机数据库课程设计|精品课程网站设计|课程设计网报告总结心得本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入19位数,十进制最多可以输入18位数,十六进制最多可以输入14位数,backspace表示退格, clear表示初始化,在window下直接运行()即可,界面为灰白对称。
题目:计算器
目录
1.摘要
2.概要设计
3.详细设计
4.测试分析
5.参考文献
一、摘要
本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入19位数,十进制最多可以输入18位数,十六进制最多可以输入14位数,backspace表示退格, clear表示初始化,在window下直接运行()即可,界面为灰白对称。
二、概要设计
(1)自定义类说明
**********************************************************
* 类名: This_number_too_big *
* 作用: 自定义的异常类,用来处理计算结果溢出 *
* 继承的父类: Exception类 *
* 实现的接口: 没有 *
**********************************************************
class This_number_too_big extends Exception
{
}ength();harAt(0)=='0'&& ().length()==1)
;
import
class This_number_too_big extends Exception
{};
static Button btequ=new Button(=);
static Button btadd=new Button(+);
static Button btsub=new Button(-);
static Button btmul=new Button(*);
static Button btdev=new Button(\/);
static Button btA=new Button(A);
static Button btB=new Button(B);
static Button btC=new Button(C);
static Button btD=new Button(D);
static Button btE=new Button(E);
static Button btF=new Button(F);
); 八进制瑳瑡捩?敨正潢?正?渽睥?敨正潢? 瑳瑡捩?敨正潢?正??敮?桃捥扫硯尨十进制); 瑳瑡捩?敨正潢?正??敮?桃捥扫硯尨十六进制); static Button btc=new Button(clear); static Button btt=new Button(ackspace); public int number=0,length=18;
.);
;
;
;
(new Font(Serief,,18));
(14,33,216,40);
(lab);
CheckboxGroup grp=new CheckboxGroup(); (grp);
(grp);
(grp);
(14,75,55,25);
(69,75,55,25);
(124,75,65,25);
(false);
(true);
(false);
(ckb8);
(ckb10);
(ckb16);
(14,140,120,150);
(144,140,40,150);
(14,100,170,36);
(190,100,40,190);
(bt7);
(bt8);
(bt9);
(bt4);
(bt5);
(bt6);
(bt1);
(bt2);
(bt3);
(bt0);
(btdot);
(btequ);
(btadd);
(btsub);
(btmul);
(btdev);
(btt);
(btc);
(btA);
(btB);
(btC);
(btD);
(btE);
(btF);
(false);
(false);
(false);
(false);
(false);
(false);
(pnl1);
(pnl2);
(pnl3);
(pnl4);
(false);
(null);
(240,300 );
尨计算器);
(true);
(mainFrame);
(mainFrame);
(mainFrame);
ength();
}
if(length==14) { (goto_10(),16L));
(goto10_8()));
number=().length();
}
ength();}
if(length==14) { (goto_10(),16L));
number=().length();}
ength();}
if(length==19) { (goto_10(),8L));
(goto10_16()));
number=().length();}
harAt(0);
switch (ch)
{ case 'c': {(number=0; mark='n'; Refresh=false;}break;harAt(0)=='0'&&
().length()==1)
break;
if(number{number++;()+ch);} else break;
} break;
case 'A': enter(); break;
case 'B': enter(); break;
case 'C': enter(); break;
case 'D': enter(); break;
case 'E': enter(); break;
case 'F': enter(); break;
case '.': {if(Refresh==true) {(
if().indexOf('.')== -1)
{number++;()+ch);}
else
break;
}
break;
case 'b': {if(number==0) break;
else
{if(--number==0) {(
else
{if (number!=1) ().substring(0,number));
else
().charAt(0)));}
}
}break;
case '+': try
{ js();}
catch(This_number_too_big e)
{(
Refresh=false; The number is too big);} break; != -1));
lg=(str);!= -1));
lg=(str);
while (lg>=j)
{ ch=lg%j;
st=(ch)+st;
lg=lg/j;
}
st=(lg)+st;
return st;
}harAt(0)=='0'&& ().length()==1)
ength();ength();
}//end answer() method
//---------------------------
}//end class Jsp2003
4.测试分析
(1)程序运行情况:
程序正常的响应按钮事件,输入的数值长度受变量length的限定,进行混合四则运算的时候,结果如果不是很大,可以正常显示,但如果结果很大,就可能采用科学记数方式,这样带来了进制转换时的麻烦,需要特殊的处理科学记数里的E ,当结果太大的时候,有可能超出可能表示
的最大值,(结果溢出),这个时候就要对结果进行必要的异常处理,我在输出结果的方法内设置
if 语句,如果结果大于某一个值就抛出一个This_number_too_big 类型的类,再使用try-catch,捕捉输出结果的方法抛出的异常对象。然后进行,重制归零的处理。
(2)程序异常处理:
当结果超出时,将抛出一个This_number_too_big 类的异常对象,这个是我自定义的一个异常
类它继承自Exception 类,然后使用try-catch去捕捉这个异常,异常的处理如下:
try
{ js();}
catch(This_number_too_big e)
{
(
number=0;
mark='n';
Refresh=false;
The number is too big);
} //如果出现异常则初始化效果如同clear键