没有合适的资源?快使用搜索试试~ 我知道了~
java计算器程序的设计报告(含源代码).doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 111 浏览量
2021-12-02
09:56:41
上传
评论
收藏 56KB DOC 举报
温馨提示
试读
14页
java计算器程序的设计报告(含源代码).doc
资源推荐
资源详情
资源评论
.
JAVA 课程设计之计算器设计报告含源代码|计算机数据库课程设计|精品课程设计|课程设计
网报告总结心得本计算器可以进行简单的四则运算〔加、减、乘、除但仅限于十进制下 ,还
可以进行〔八进制,十进制,十六进制之间的相互转换,八进制最多可以输入 19 位数,十进制最
多可以输入 18 位数,十六进制最多可以输入 14 位数,backspace 表示退格, clear 表示初始化,在
window 下直接运行〔Jsp2003.bat 即可,界面为灰白对称。
题 目: 计算器
目 录
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
--------------------------------------------------------------------------------------------------------
//八进制或十六进制转换成十进制 I
public String goto_10<String s,long l>
//参数 s: 是要转换的字符串,由于输入的控制,保证了字符串的合法性;
.
.
//参数 l: 使用来设置是将 8 进制还是 16 进制转换成 10 进制,它的有效值为 8 或 16;
{ String str=s; //用来转换的字符串
long j=l; //表示进制
long lg=0,jing=1;//lg 用来记录权乘和,jing 用来记录位权
char cha;//临时记录要转换的字符
for<int i=1;i<=str.length<>;i++>
{ cha=str.charAt<str.length<>-i>;
switch<cha>
{ case '1': lg=lg+1*jing;break;
case '2': lg=lg+2*jing;break;
case '3': lg=lg+3*jing;break;
case '4': lg=lg+4*jing;break;
case '5': lg=lg+5*jing;break;
case '6': lg=lg+6*jing;break;
case '7': lg=lg+7*jing;break;
case '8': lg=lg+8*jing;break;
case '9': lg=lg+9*jing;break;
case 'A': lg=lg+10*jing;break;
case 'B': lg=lg+11*jing;break;
case 'C': lg=lg+12*jing;break;
case 'D': lg=lg+13*jing;break;
case 'E': lg=lg+14*jing;break;
case 'F': lg=lg+15*jing;break;}
jing*=j; //位权升一级,为下次使用做好准备
}
return Long.toString<lg>;
}//end String goto_10<> method
}
〔2 程序流程图
三、详细设计
import java.awt.*;
import java.awt.event.*;
class This_number_too_big extends Exception
{}//自定义的一个结果溢出异常类
class Jsp2003 extends Frame implements ItemListener,ActionListener {
public Jsp2003<> {
addWindowListener<new WindowAdapter<> {
public void windowClosing<WindowEvent e> {
dispose<>;
System.exit<0>;
}
}>;
}
static Jsp2003 mainFrame = new Jsp2003<>;
.
剩余13页未读,继续阅读
资源评论
qq_25286613
- 粉丝: 0
- 资源: 4万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于SpringBoot+Vue3快速开发平台、自研工作流引擎源码设计.zip
- docker安装部署全流程
- 基于树莓派的人脸识别系统python源码+项目部署说明+超详细代码注释.zip
- Python和R爬取分析赶集网北京二手房数据.zip
- Python和R爬取分析赶集网北京二手房数据.zip
- Java知识体系最强总结(2021版).txt
- Python知识点Python知识点Python知识点Python知识点Python知识点PythonPython知识点.txt
- Java开发基于seetaface6的人脸识别(活体检测)的封装源码.zip
- JSP在线失物招领管理平台源码.zip
- JSP在线旅游美食展现管理系统源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功