java简单计算器课程设计报告_JAVA课程设计之计算器设计报告

本文档是关于JAVA课程设计的一份报告,详细介绍了如何设计一个简单的计算器,该计算器支持四则运算及八进制、十进制、十六进制之间的转换。在设计中,自定义了异常类`This_number_too_big`来处理溢出问题,主类`Jsp2003`实现了`ItemListener`和`ActionListener`接口,具备输入处理、运算逻辑等功能。
摘要由CSDN通过智能技术生成

题 目: 计算器

院(系):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

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

}//end enter() method

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值