您的位置:首页 > 编程语言 > Java开发

Java计算器实现加减乘除功能

2017-03-03 17:44 567 查看
package com
4000
.cn.java;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
import java.util.Scanner;
/**
* @version 计算器V1.1
* @author 860616034
*
*/

public class Calculator {
// 运算符
public static String operator2;
// 第一个计算数字
public static String oneNumber;
// 第二个计算数字
public static String twoNumber;
// 计算数的长度
public static String setlength;

// string转double 第一个数
private static double one;
// string转double 第二个数
private static double two;
// 计算器的位数
private static int number;

public static void main(String[] args) {
// 定义string变量
String operator = "";
boolean bresult = true;
// 创建Scanner的对象 System.in是标准输入
Scanner input = new Scanner(System.in);

// double one = 0;
double result = 0;

Calculator ca = new Calculator();
// 输入要计算的位数
// ca.getInput(input);
ca.getInput1();
// ca.getInput2();

// 用于程序循环执行
while (true) {
// 用户输入第一个数
ca.getOneNumber(input);

// 提示用户请输入运算符
ca.getOperator(operator, input);

// 提示用户输入要计算的第二个数
ca.getTwoNumber(input);

// switch循环实现运算
switch (operator2) {
case "+":
result = one + two;
break;
case "-":
result = one - two;
break;
case "*":
result = one * two;
break;
case "/":
result = one / two;
// 除数特殊,被除数不能为0,提示用户
if (two == 0) {
System.out.println("被除数不能为0,结果错误!");
// 为false不输出结果
bresult = false;
}
break;
default:
break;
}
// 为true输出计算结果
if (bresult) {
System.out.println("结果是:" + oneNumber + " " + operator2 + " " + twoNumber + " = " + result);
}
}
}

// 判断字符串长度的方法
public static boolean getLength(String oneNumber) {
if (oneNumber.length() > number) {
System.out.println("输入错误,不能超过" + number + "位");
return false;
}
return true;
}

// 输入运算的进行判断的方法
public void getOperator(String operator, Scanner input) {
System.out.println("请输入运算符:");
operator = input.nextLine();
// 对运算符进行判断是否有该运算符
// String[] op = { "+", "-", "*", "/" };
// Set<String> strSet = new HashSet<String>(Arrays.asList(op));
if (operator.equals("+") || operator.equals("-") || operator.equals("*") || operator.equals("/")) {
// if (strSet.contains(operator)) {
operator2 = operator;
} else {
System.out.println("运算符输入错误,请重新输入");
getOperator(operator, input);
}
}

// 输入第二个数进行判断的方法
public void getTwoNumber(Scanner input) {
// public void getTwoNumber(String twoNumber, Scanner input) {
System.out.println("请输入第二个数字:");
twoNumber = input.nextLine();
// 判断输入的字符是否超过16个
boolean isTwoNumber = getLength(twoNumber);
if (!isTwoNumber) {
getTwoNumber(input);
} else if (twoNumber.equals("exit")) {
System.out.println("退出程序,欢迎下次使用");
return;
} else {
try {
Calculator.two = Double.parseDouble(twoNumber);
} catch (Exception e) {
System.out.println("请输入有效数字");
getTwoNumber(input);
}
}
}

public void getOneNumber(Scanner input) {
System.out.println("请输入第一个数字:");
oneNumber = input.nextLine();
// 判断输入的字符是否超过16个
boolean isLength = getLength(oneNumber);
if (!isLength) {
getOneNumber(input);
} else if (oneNumber.equals("exit")) {
System.out.println("退出程序,欢迎下次使用");
System.exit(0);
} else {
try {
Calculator.one = Double.parseDouble(oneNumber);
} catch (Exception e) {
System.out.println("请输入有效数字");
getOneNumber(input);
}
}
}

// 控制台输入
public void getInput(Scanner input) {
System.out.println("请输入计算器计算的位数:");
Calculator.setlength = input.nextLine();
try {
Calculator.number = Integer.parseInt(setlength);
} catch (Exception e) {
System.out.println("请输入正确的有效数字");
getInput(input);
}
}

public void getInput1() {
try {
Properties prop = new Properties();
// System.out.println(Test.class.getResource ("").getFile ());
InputStream is = new BufferedInputStream(new FileInputStream("bin/com/cn/java/a.xml"));
// 加载Properties文件信息属性列表
prop.load(is);
String str = prop.getProperty("length");
//System.out.println(prop.getProperty("length"));
// 关闭流释放测内存
is.close();
number = Integer.parseInt(str);
} catch (Exception e) {
System.out.println("请输入有效位数数字");
return;
}
}

}


需要配置xml文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java