JAVA程序设计课程作业 - 标准计算器的实现报告(3)

2019-04-08 18:24

break; default:

answerd = Double.parseDouble(textAnswer.getText()); }

textAnswer.setText(\ prekey = key = 2; }

//为'/'操作时

if (temp == buttonDiv) { switch (prekey) {

case 0:

answerd += Double.parseDouble(textAnswer.getText()); break; case 1:

answerd -= Double.parseDouble(textAnswer.getText()); break; case 2:

answerd *= Double.parseDouble(textAnswer.getText()); break; case 3:

if (Double.parseDouble(textAnswer.getText()) == 0) { textAnswer.setText(\除数不能为零\ clickable = false; } else

answerd /= Double.parseDouble(textAnswer.getText()); break; default:

answerd = Double.parseDouble(textAnswer.getText()); }

textAnswer.setText(\ prekey = key = 3; } }

//当输入'='操作时

if (temp == buttonEqual && clickable == true) { //如果连续按'=',则进行连续运算 if (prekey == 5) {

if (key == 0)//最后一次是加法计算,所以连续加 {

answerd += vard;

textAnswer.setText(df.format(answerd));

}

if (key == 1) {

answerd -= vard;

textAnswer.setText(df.format(answerd)); }

if (key == 2) {

answerd *= vard;

textAnswer.setText(df.format(answerd)); }

if (key == 3) {

if (Double.parseDouble(textAnswer.getText()) == 0) {

textAnswer.setText(\除数不能为零\ clickable = false; //禁用键盘 } else {

answerd /= vard;

textAnswer.setText(df.format(answerd)); } } }

else {

vard = Double.parseDouble(textAnswer.getText());//vard为最后一次输入的数 if (key == 0) {

answerd += Double.parseDouble(textAnswer.getText());// 计算结果 textAnswer.setText(df.format(answerd)); //answerd格式化 }

if (key == 1) {

answerd -= Double.parseDouble(textAnswer.getText()); textAnswer.setText(df.format(answerd)); }

if (key == 2) {

answerd *= Double.parseDouble(textAnswer.getText());

textAnswer.setText(df.format(answerd)); }

if (key == 3) {

if (Double.parseDouble(textAnswer.getText()) == 0) {

textAnswer.setText(\除数不能为零\ clickable = false; } else {

answerd /= Double.parseDouble(textAnswer.getText()); textAnswer.setText(df.format(answerd)); } } }

prekey = 5; }

//'%'操作,对第二个操作数除以100即可

if (temp == buttonMod && clickable == true) {

if (answerd == 0)//为零时仍为零 {

String s = textAnswer.getText(); textAnswer.setText(s); } else {

//检查有无小数点 boolean isDot = false;

for (int i = 0; i < textAnswer.getText().length(); i++) if ('.' == textAnswer.getText().charAt(i)) {

isDot = true; break; }

//如果有‘.‘是double数,除100 if (isDot == true) {

double dtemp = Double.parseDouble(textAnswer.getText()); dtemp = dtemp / 100.0;

textAnswer.setText(Double.toString(dtemp)); } else

{

//如果是int数但能被100整除,则去掉末尾两个零

if (Integer.parseInt(textAnswer.getText()) % 100 == 0) {

int itemp = Integer.parseInt(textAnswer.getText()); itemp /= 100;

textAnswer.setText(Integer.toString(itemp)); }

//如果是int数,但不能被100整除,则按double数处理 else {

double dtemp = Double.parseDouble(textAnswer.getText()); dtemp = dtemp / 100.0;

textAnswer.setText(Double.toString(dtemp)); } } } }

//开根号运算

if (temp == buttonSqrt && clickable == true) {

String s = textAnswer.getText();

if (s.charAt(0) == '-') //判断是否为负数,即第一位为负数 {

textAnswer.setText(\负数不能开根号\ clickable = false; } else

textAnswer.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(textAnswer.getText())))); }

//倒数运算

if (temp == buttonDao && clickable == true) {

if (textAnswer.getText().charAt(0) == '0' && textAnswer.getText().length() == 1)//'0'为char类型要一致 {

textAnswer.setText(\零不能求倒数\ clickable = false; } else {

boolean isDec = true;

int i, j, k;

String s = Double.toString(1 / Double.parseDouble(textAnswer.getText())); for (i = 0; i < s.length(); i++) if (s.charAt(i) == '.') break;

for (j = i + 1; j < s.length(); j++) //小数点后有无数字 if (s.charAt(j) != '0') {

isDec = false; break; }

if (isDec == true) {

String stemp = \ for (k = 0; k < i; k++)

stemp += s.charAt(k); //取出整数部分

textAnswer.setText(stemp); //将stemp传给textAnswer } else

textAnswer.setText(s); } }

//按下'+/-'按钮时处理

if (temp == buttonAddAndSub && clickable == true) {

boolean isNumber = true;

String s = textAnswer.getText(); for (int i = 0; i < s.length(); i++)

if (! (s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' || s.charAt(i) == '-')) {

isNumber = false; break; }

if (isNumber == true)

{ //如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉

if (s.charAt(0) == '-') {

textAnswer.setText(\

for (int i = 1; i < s.length(); i++)//从符号后一位把s考到textAnswer中 {

char a = s.charAt(i);

textAnswer.setText(textAnswer.getText() + a); }


JAVA程序设计课程作业 - 标准计算器的实现报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:石材幕墙施工方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: