题 目: 计算器

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

java简单计算器课程设计报告_JAVA课程设计之计算器设计报告相关推荐

  1. java游戏课程设计报告_java课程设计报告游戏_相关文章专题_写写帮文库

    时间:2019-05-14 00:00:44 作者:admin 课 程 设 计 课程名称 Java语言课程设计 题目名称 人事管理系统的设计与实现 学生学院 应用数学学院 专业班级 学 号 学生姓名 ...

  2. java qq课程设计报告_JAVA课程设计报告语音QQ仿真

    JAVA课程设计报告语音QQ仿真 <Java 程序设计>课程设计报告 题 目: 语音 QQ 仿真 学 院:计算机科学与工程 专 业:物联网工程 学生姓名: xx 学 号: 13003701 ...

  3. java的课程总结报告_java课程总结报告

    java课程总结报告 java课程总结报告怎么写?相信很多人都想知道吧?以下是小编为您整理java课程总结报告的相关资料,欢迎阅读! java课程总结报告1 一开始想做计算器那个课题,原因很简单,就是 ...

  4. java课程设计培训班_Java课程设计

    课程设计--博客作业五子棋(201521123009 张晨晨) •团队课程设计博客链接 •个人负责模块或任务说明 五子棋的绘制 棋盘的绘制 重新开始功能的实现 悔棋功能的实现 •自己的代码提交记录截图 ...

  5. java课程设计 成绩_JAVA课程设计 学生成绩管理

    学生成绩管理 可实现功能: 添加学生功能:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学.Java与体育四门课,可分课程输入成绩. 根据学生学号查找学生成绩功能 ...

  6. java文本编辑器课程设计报告_java课程设计报告 心得体会——计算器、文本编辑器.doc...

    java课程设计报告 心得体会--计算器.文本编辑器.doc 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内 ...

  7. java课程设计实验报告_java课程设计实验报告样例

    分数_______ 嘉应学院计算机学院实验报告 课程名称:面向对象程序设计课程设计(Java) 实验名称:"动物换位"程序设计 指导教师:肖振球 实验地点:_居家学习_实验时间:2 ...

  8. 图书借阅java设计报告_JAVA课程设计报告图书借阅系统.pdf

    课 程 设 计 课程设计名称: java课程设计 专 业 班 级 : 计科10 级4 班 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间: 2012.6.18-2012.6.30 计 ...

  9. java贪吃蛇课程设计报告_Java课程设计贪吃蛇讲解

    Java课程设计是必不可少的一个重要学习环节,Java程序设计的目的就是加深Java学习者对Java理论基础内容的理解和掌握.今天我们要讲的Java课程设计就是贪吃蛇的小程序设计,以下是具体讲解: 1 ...

最新文章

  1. CSS3颜色不透明度如何设置
  2. C#基础--类/接口/成员修饰符,多态、重载、重写,静态和非静态
  3. Java多线程初学者指南(5):join方法的使用
  4. 【演讲实录】下一代企业级应用架构管理体系
  5. Linux根文件组织架构
  6. sql server 利用 For Xml Path('') 多行数据拼接成一个字符串
  7. dylib java_使用单声道可执行文件捆绑.dylib文件
  8. 爆款 | Medium上6900个赞的AI学习路线图,让你快速上手机器学习
  9. Python和Matlab小波分析
  10. write和read返回值详解
  11. java pv uv_什么是pv和uv?
  12. 医学报告生成论文总结【4-24】
  13. AutoCAD .NET 二次开发实例:批量文本查找替换
  14. 思岚A1与A2性能及建图测试比较
  15. Linux系统调用(syscall)原理(转载)
  16. 外贸ERP系统的操作有什么特点?中小企业适合选择吗?
  17. 什么是混合云战略,混合云战略有什么优势?
  18. amt是什么意思_变速箱中的at、mt和amt是什么意思啊?
  19. 华为手机鸿蒙系统手机_鸿蒙系统面世之后,以前的华为手机可以用鸿蒙系统吗?不好意思!...
  20. 百度网盘外链采集分析 爬取百度网盘用户分享 问题记录

热门文章

  1. 【Matlab】极点配置控制(PPC)
  2. 如何批量修改文件后缀名
  3. 据说:只有程序员才能看懂的图!
  4. cookie和session那些事
  5. 活灵活现用Git--基础篇
  6. python学习遇到的英文词汇
  7. DaggerXXXComponent找不到问题
  8. Haru Free PDF Library——生成PDF的库
  9. 配置 不使用rsa 密码_了解使用RSA的密码学
  10. AJAX 请求简讯