您的位置:首页 > 移动开发 > 微信开发

不带有界面的简单的计算器小程序(Java语言实现)

2016-10-23 09:43 886 查看
在看《大话设计模式》这本书,在开篇的第一部分介绍面向对象时候,介绍了一位童鞋面试时面试官让他使用面向对象语言实现一个简单的计算器,然而这位同学却没能很好地理解考官的意思,导致面试失败。那么如何使用Java语言以面向对象的思想去实现这样的一个简单的计算器呢?

本文给出两种实现的方式。

实现1

import java.util.Scanner;

/*
* 《大话设计模式》中的计算器实现代码
* */
public class Operation {

public static double GetResult(double numA, double numB, String opr) {
double result = 0d;
switch (opr) {
case "+":
result = numA + numB;
break;
case "-":
result = numA - numB;
break;
case "*":
result = numA * numB;
break;
case "/":
result = numA / numB;
break;
}
return result;

}

public static void main(String[] args) {
System.out.println("请输入数字A:");
Scanner scan = new Scanner(System.in);
String strNumA = scan.nextLine();
System.out.println("请输入运算符号(+、-、*、/):");
String strOpr = scan.nextLine();
System.out.println("请输入数字B");
String strNumB = scan.nextLine();
String strResult = "";
double Result = GetResult(Double.parseDouble(strNumA), Double.parseDouble(strNumB), strOpr);
strResult = String.valueOf(Result);
System.out.println(strResult);
}

}
实现2:
import java.util.Scanner;

public class Calculator {
public static void main(String[] args) {
System.out.println("-----------------------------------");
System.out.println("请输入一个算术表达式,如:45*23");
Scanner in = new Scanner(System.in);
String str = in.nextLine();
StringBuffer buffer = new StringBuffer();
StringBuffer buffer1 = new StringBuffer();
char t = ' ';
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == '+' || str.charAt(i) == '-'
|| str.charAt(i) == '*' || str.charAt(i) == '/') {
t = str.charAt(i);

for (int j = i + 1; j < str.length(); j++) {
buffer1.append(str.charAt(j));
}
break;
} else {
buffer.append(str.charAt(i));
}
}
String c = buffer.toString();
String d = buffer1.toString();
double a = Double.parseDouble(c);
double b = Double.parseDouble(d);
double sum = 0;
if (t == '+') {
sum = a + b;
}
if (t == '-') {
sum = a - b;
}
if (t == '*') {
sum = a * b;
}
if (t == '/') {
sum = a / b;
}
System.out.println("程序运算...");
System.out.println(c+t+d+"="+sum);
System.out.print("-----------------------------------");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 面试