Java简单计算器实现

最近在看大话设计模式,看到一个面试写计算器的案例。心血来潮自己也写了个。不足之处希望大家指出来

——用博客记录成长!

首先是四个算法类

package counter2;
/**
 * 加法
 * @author xhyzdZz
 *
 */
public class OperationAdd{

	public OperationAdd(double strA,double strB) {
//		double result = 0;
		System.out.println("进入add方法");
//		result = strA + strB;
		System.out.println(strA + strB);
	}
}




package counter2;
/**
 * 减法
 * @author xhyzdZz
 *
 */
public class OperationSub{

	public OperationSub(double strA,double strB) {
//		double result = 0;
//		result = strA - strB;
		System.out.println("进入sub方法...");
		System.out.println(strA - strB);
	}
}




package counter2;

/**
 * 除法
 * @author xhyzdZz
 *
 */
public class OperationDiv{

	public OperationDiv(double strA,double strB) {
//		double result = 0;
//		result = strA - strB;
		System.out.println("进入div方法...");
		System.out.println(strA / strB);
	}
}



package counter2;
/**
 * 乘法
 * @author xhyzdZz
 *
 */
public class OperationMul{

	public OperationMul(double strA,double strB) {
//		double result = 0;
//		result = strA - strB;
		System.out.println("进入mul方法...");
		System.out.println(strA * strB);
	}
}




然后是算法类

import java.util.Scanner;

/**
 * 输入方法
 *
 **/
public class input {

	public static String strOperders;//声明一个变量接收运算符

	public void inputMun() {
		try {

			Scanner sc = new Scanner(System.in);
			System.out.println("input number A:");
			double strNumberA = sc.nextInt();
                        //判断输入的运算符是否正确,错误则循环重新输入
			do {
				System.out.println("input +-*/:");
				String strOperder = sc.next();
				strOperders = strOperder;
				System.out.println("===========" + strOperders);
			} while (isOperade(strOperders));
			System.out.println("input number B:");
			double strNumberB = sc.nextInt();
			switch (strOperders) {
			case "+"://判断输入实例化对应的类,调用构造函数
				OperationAdd opa = new OperationAdd(strNumberA, strNumberB);
				break;
			case "-":
				OperationSub ops = new OperationSub(strNumberA, strNumberB);
				break;
			case "*":
				OperationMul opm = new OperationMul(strNumberA, strNumberB);
				break;
			case "/":
				OperationDiv opd = new OperationDiv(strNumberA, strNumberB);
				break;
			default:
				System.out.println("输入错误!");
				break;
			}
		} catch (NullPointerException e) {
			System.out.println(e);
		}
	}

	
	 //判断输入是否包含+-*/
	public boolean isOperade(String name) {
		String str = "+-*/";
		System.out.println(str.contains(name));
		if (str.contains(name)) {
			return false;
		}
		System.out.println("输入有误,请重新输入!");
		return true;
	}

}

最后是界面类,输入Y继续或者N结束

package counter2;

import java.util.Scanner;

public class Main {

	private static String pd = null;

	public static void main(String[] args) {
		input in = new input();
		Scanner sc = new Scanner(System.in);
		do {
			in.inputMun();
			System.out.println("Y and N:");
			pd = sc.next();
		} while (pd.equals("Y"));
	}

}

——用博客记录成长!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的Android Java 计算器实现代码: ```java import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { EditText editText; Button button0, button1, button2, button3, button4, button5, button6, button7, button8, button9; Button buttonAdd, buttonSub, buttonMul, buttonDiv, buttonC, buttonCE, buttonPoint, buttonEqual; double value1 = Double.NaN, value2 = Double.NaN; boolean addition , subtraction , multiplication , division ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = findViewById(R.id.editText); button0 = findViewById(R.id.button0); button1 = findViewById(R.id.button1); button2 = findViewById(R.id.button2); button3 = findViewById(R.id.button3); button4 = findViewById(R.id.button4); button5 = findViewById(R.id.button5); button6 = findViewById(R.id.button6); button7 = findViewById(R.id.button7); button8 = findViewById(R.id.button8); button9 = findViewById(R.id.button9); buttonAdd = findViewById(R.id.buttonAdd); buttonSub = findViewById(R.id.buttonSub); buttonMul = findViewById(R.id.buttonMul); buttonDiv = findViewById(R.id.buttonDiv); buttonC = findViewById(R.id.buttonC); buttonCE = findViewById(R.id.buttonCE); buttonPoint = findViewById(R.id.buttonPoint); buttonEqual = findViewById(R.id.buttonEqual); button0.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "0"); } }); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "1"); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "2"); } }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "3"); } }); button4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "4"); } }); button5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "5"); } }); button6.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "6"); } }); button7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "7"); } }); button8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "8"); } }); button9.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.setText(editText.getText() + "9"); } }); buttonPoint.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { editText.setText(editText.getText() + "."); } }); buttonAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { compute(); addition = true; editText.setText(null); } }); buttonSub.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { compute(); subtraction = true; editText.setText(null); } }); buttonMul.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { compute(); multiplication = true; editText.setText(null); } }); buttonDiv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { compute(); division = true; editText.setText(null); } }); buttonEqual.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { compute(); editText.setText(String.valueOf(value1)); value1 = Double.NaN; } }); buttonCE.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (editText.getText().length() > 0) { CharSequence currentText = editText.getText(); editText.setText(currentText.subSequence(0, currentText.length() - 1)); } } }); buttonC.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { value1 = Double.NaN; value2 = Double.NaN; editText.setText(null); } }); } private void compute() { if (!Double.isNaN(value1)) { value2 = Double.parseDouble(editText.getText().toString()); if (addition) { value1 += value2; } else if (subtraction) { value1 -= value2; } else if (multiplication) { value1 *= value2; } else if (division) { value1 /= value2; } } else { value1 = Double.parseDouble(editText.getText().toString()); } } } ``` 此代码将创建一个基本的界面和常规的按钮,使您能够执行简单的加法,减法,乘法和除法操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值