java简单计算器课程设计报告_JAVA课程设计之计算器设计报告
题 目: 计算器
院(系):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课程设计之计算器设计报告相关推荐
- java游戏课程设计报告_java课程设计报告游戏_相关文章专题_写写帮文库
时间:2019-05-14 00:00:44 作者:admin 课 程 设 计 课程名称 Java语言课程设计 题目名称 人事管理系统的设计与实现 学生学院 应用数学学院 专业班级 学 号 学生姓名 ...
- java qq课程设计报告_JAVA课程设计报告语音QQ仿真
JAVA课程设计报告语音QQ仿真 <Java 程序设计>课程设计报告 题 目: 语音 QQ 仿真 学 院:计算机科学与工程 专 业:物联网工程 学生姓名: xx 学 号: 13003701 ...
- java的课程总结报告_java课程总结报告
java课程总结报告 java课程总结报告怎么写?相信很多人都想知道吧?以下是小编为您整理java课程总结报告的相关资料,欢迎阅读! java课程总结报告1 一开始想做计算器那个课题,原因很简单,就是 ...
- java课程设计培训班_Java课程设计
课程设计--博客作业五子棋(201521123009 张晨晨) •团队课程设计博客链接 •个人负责模块或任务说明 五子棋的绘制 棋盘的绘制 重新开始功能的实现 悔棋功能的实现 •自己的代码提交记录截图 ...
- java课程设计 成绩_JAVA课程设计 学生成绩管理
学生成绩管理 可实现功能: 添加学生功能:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学.Java与体育四门课,可分课程输入成绩. 根据学生学号查找学生成绩功能 ...
- java文本编辑器课程设计报告_java课程设计报告 心得体会——计算器、文本编辑器.doc...
java课程设计报告 心得体会--计算器.文本编辑器.doc 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内 ...
- java课程设计实验报告_java课程设计实验报告样例
分数_______ 嘉应学院计算机学院实验报告 课程名称:面向对象程序设计课程设计(Java) 实验名称:"动物换位"程序设计 指导教师:肖振球 实验地点:_居家学习_实验时间:2 ...
- 图书借阅java设计报告_JAVA课程设计报告图书借阅系统.pdf
课 程 设 计 课程设计名称: java课程设计 专 业 班 级 : 计科10 级4 班 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间: 2012.6.18-2012.6.30 计 ...
- java贪吃蛇课程设计报告_Java课程设计贪吃蛇讲解
Java课程设计是必不可少的一个重要学习环节,Java程序设计的目的就是加深Java学习者对Java理论基础内容的理解和掌握.今天我们要讲的Java课程设计就是贪吃蛇的小程序设计,以下是具体讲解: 1 ...
最新文章
- CSS3颜色不透明度如何设置
- C#基础--类/接口/成员修饰符,多态、重载、重写,静态和非静态
- Java多线程初学者指南(5):join方法的使用
- 【演讲实录】下一代企业级应用架构管理体系
- Linux根文件组织架构
- sql server 利用 For Xml Path('') 多行数据拼接成一个字符串
- dylib java_使用单声道可执行文件捆绑.dylib文件
- 爆款 | Medium上6900个赞的AI学习路线图,让你快速上手机器学习
- Python和Matlab小波分析
- write和read返回值详解
- java pv uv_什么是pv和uv?
- 医学报告生成论文总结【4-24】
- AutoCAD .NET 二次开发实例:批量文本查找替换
- 思岚A1与A2性能及建图测试比较
- Linux系统调用(syscall)原理(转载)
- 外贸ERP系统的操作有什么特点?中小企业适合选择吗?
- 什么是混合云战略,混合云战略有什么优势?
- amt是什么意思_变速箱中的at、mt和amt是什么意思啊?
- 华为手机鸿蒙系统手机_鸿蒙系统面世之后,以前的华为手机可以用鸿蒙系统吗?不好意思!...
- 百度网盘外链采集分析 爬取百度网盘用户分享 问题记录