JAVA课程设计之计算器设计报告含源代码|计算机数据库课程设计|精品课程网站设计|课程设计网报告总结心得本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(八进制,十进制,十辣进制)之间的相互转换,八进制最多可以输入19位数,十进制最多可以输入18位数,十辣进制最多可以输入14位数,backspace表示退格, clear表示初始化,在window下直接运行(Jsp2003.bat)即可,界面为灰白对称。
题 目: 计算器
院(系):xxx学院
年级专业: xxx班
学生姓名: xxx
指导老师: xx老师
开始时间: 200x-xx-xx
完成时间: 200x-xx-xx
目 录
1. 摘 要
2. 概要设计
3. 详细设计
4. 测试分析
5. 参考文献
一、摘 要
本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(八进制,十进制,十辣进制)之间的相互转换,八进制最多可以输入19位数,十进制最多可以输入18位数,十辣进制最多可以输入14位数,backspace表示退格, clear表示初始化,在window下直接运行(Jsp2003.bat)即可,界面为灰白对称。
二、概要设计
(1) 自定义类说明
**********************************************************
* 类名: This_number_too_big *
* 作用: 自定义的异常类,用来处理计算结果溢出 *
* 继承的父类: Exception类 *
* 实现的接口: 没有 *
**********************************************************
class This_number_too_big extends Exception
{
}//自定义的一个结果溢出异常类
**********************************************************
* 类名: Jsp2003 *
* 作用: 主类。 *
* 继承的父类: Frame类 *
* 实现的接口: ItemListener类,ActionListener类 *
**********************************************************
class Jsp2003 extends Frame implements ItemListener,ActionListener
{
public int number=0,length=18;
//number是用来记录输入的数字个数,
//length是用来设置在不同进制下允许输入的最多数字位数,默认为十进制 public char mark='n';
//设置运算符号为没有即为‘n’,它的值是‘+’‘-’‘*’‘/’
public double data=0;
//设置运算数据为零
public char ch;
//用来临时存放所按按钮的第一个字符
public boolean Refresh=false;
//设置lab是否要在输入数据的时候刷新,初始为否
主要方法说明:
------------------------------------------------------------------------------------------------
//用来处理按了运算符后的计算-
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 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
[1] [2] [3] [4] [5] [6] [7] 下一页