77范文网 - 专业文章范例文档资料分享平台

java计算器实验报告(3)

来源:网络收集 时间:2019-01-07 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

boolean isNumGroup=false; boolean canBeBack; double memory;

//记录是否为数字分组 //是否可以使用退格键

//用于内存操作时保存的数据

b) 各功能函数简介

reset函数

reSet() 是把各属性设置为原始值,当按下

void reSet() { answerText.setText(\ textBuffer = new StringBuffer(\ numDot=0; remFun = operator = 0; firstValue = secondValue = result = 0.0; enterSecond = false; forFirOrSec = 1; b_remFir = b_remSec = b_remFun = false; remFir = remSec = 0.0; canBeBack = true; }

showScreen函数

showScreen() 是当按下了数字键后,在屏幕上显示。如果有数字分组项,则调用数字分组函数。如为整数则在其后只显示一个小数点,例如:数值5 应该显示为 5. 若为小数,则直接显示。

void showScreen() { if (numDot==0) answerText.setText(textBuffer.toString()+\ else answerText.setText(textBuffer.toString()); if (isNumGroup == true) { showNumGroup(); } }

showScreenValue函数

showScreenValue() 是用于显示计算后的结果值,具体的功能同上。

void showScreenValue() {

}

int resInteger = (int)result;

if ( Math.abs(result-resInteger) == 0 ) { StringBuffer tmp = new StringBuffer(Double.toString(result)); tmp.deleteCharAt(tmp.length()-1); answerText.setText(tmp.toString()); }

else answerText.setText(Double.toString(result)); if (isNumGroup == true) { showNumGroup(); }

showNumGroup函数

数字分组的显示:每隔三位显示一个逗号以示分隔。

void showNumGroup() { int i,cnt=0; String string = answerText.getText(); String interge,fraction; interge = fraction = string; for (i=0;i3) { cnt = 0; sb.insert(i,\

}

} } }

sb.reverse();

answerText.setText(sb.toString()+\

deleteNumGroup函数

deleteNumGroup() 是当已经数字分组时,再次按下该键,消除数字分组的效果;

当输入了四则运算符时,先进行判断各种双目运算的可能性,若不是第一次运算操作则先把上一次的操作完成并在屏幕上显示,并记录下当前的操作符,否则存入操作符。

void AddFunction(int op) { //如果此时第二个数存在.则运算,例如输入2+3=5后按*4 +

if (b_remFir==true && b_remFun==false && enterSecond==true) { if (operator == 1) result = remFir + secondValue; else if (operator == 2) result = remFir - secondValue; else if (operator == 3) result = remFir * secondValue; else if (operator == 4) result = remFir / secondValue; }

b_remFir = true; remFir = result; enterSecond = false; forFirOrSec = 2; operator = op; showScreenValue();

void deleteNumGroup() { StringBuffer sb = new StringBuffer(answerText.getText()); for (int i=0;i

AddFunction函数

}

//如果此时第二个数存在.则运算,例如输入2+3后按*键

else if (b_remFir==false && b_remFun==false && enterSecond==true) { if (operator == 1) result = firstValue + secondValue; else if (operator == 2) result = firstValue - secondValue; else if (operator == 3) result = firstValue * secondValue; else if (operator == 4) result = firstValue / secondValue; b_remFir = true; remFir = result; enterSecond = false; forFirOrSec = 2; operator = op; showScreenValue(); } else { operator = op; forFirOrSec = 2; }

b_remFun = false; remFun = 0; textBuffer = new StringBuffer(\

AddNum函数

把屏幕上的值存入result 和 firstValue secondValue 中。

当按下了等于号时,先对各种键盘的输入方法进行判断,并对每种情况进行正确的操作。

void AddNum()

{ if (forFirOrSec == 1) { result = firstValue = Double.parseDouble(textBuffer.toString()); b_remFir = false; remFir = 0; } else if (forFirOrSec == 2) { enterSecond = true; secondValue = Double.parseDouble(textBuffer.toString()); b_remSec = false; remSec = 0; } }

OnGo函数

void OnGo() { //如果记着第一,二个数和运算符,即上次算完后未输入数,而再次按=

if (b_remFir==true && b_remSec==true && b_remFun==true) { if (remFun==1) result = remFir + remSec; else if (remFun==2) result = remFir - remSec; else if (remFun==3) result = remFir * remSec; else if (remFun==4) result = remFir / remSec; }

b_remFir=true; b_remSec=true; b_remFun=true; remFir = result; remSec = remSec; remFun = remFun;

//只记的第一数,如算完2+3=5后按*4=

else if (b_remFir==true && b_remSec==false && b_remFun==false) { if (operator == 1) result = remFir + secondValue; else if (operator == 2) result = remFir - secondValue; else if (operator == 3) result = remFir * secondValue; else if (operator == 4) result = remFir / secondValue; b_remFir=true; b_remSec=true; b_remFun=true; remFir = result; remSec = secondValue; remFun = remFun; } //记住了第一个数,未输入第二个数,输入了运算符.如算完2+3=5后按*=结果为5*5=25;

else if (b_remFir==true && b_remSec==true && b_remFun==false) { secondValue = remFir; if (operator == 1) result = remFir + secondValue; else if (operator == 2) result = remFir - secondValue; else if (operator == 3) result = remFir * secondValue; else if (operator == 4) result = remFir / secondValue; }

b_remFir=true; b_remSec=true; b_remFun=true;

remFir = result; remSec = secondValue; remFun = remFun;

//第一二个数和运算符都不记的,记全重新输入,如算完2+3=5后输入4*6= else if (b_remFir==false && b_remSec==false && b_remFun==false) { if (enterSecond == false) secondValue = firstValue;

}

}

if (operator == 1) result = firstValue + secondValue; else if (operator == 2) result = firstValue - secondValue; else if (operator == 3) result = firstValue * secondValue; else if (operator == 4) result = firstValue / secondValue; b_remFir=true; b_remSec=true; b_remFun=true;

remFir = result; remSec = secondValue; remFun = remFun;

showScreenValue();

textBuffer = new StringBuffer(\firstValue = secondValue = 0; forFirOrSec = 1;

enterSecond = false; canBeBack = false;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库java计算器实验报告(3)在线全文阅读。

java计算器实验报告(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/409650.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: