简单的计算器功能

来源:互联网 发布:java 处理undefined 编辑:程序博客网 时间:2024/05/18 01:01
package com.yuxinyicheng.calculator;
/**
 *  需求:做一个简单的计算器
 *  1、能够实现加、减、乘、除
 *  2、能够连续的计算,例如:3+2 ,*6,-20
 *  3、计算器开机的时候显示0
 *  4、按下“=”号的时候,能够显示结果 
 *  
 * 分析:
 * 1,属性:
 *      两个整数型的变量;
 *      一个static类型的整型变量,用来存放结果,是static的原因是为了实现连续加
 *      一个char类型的变量,用来存放操作符
 *      
 *  2,方法:
 *     一个main方法
 *     一个静态的代码块(在没有对象的时候,计算机开机的时候就显示0)
 *    一个用来计算的方法
 *    三个重载的构造方法
 *     1,一个是传递两个整数型的参数(输入两个的时候)
 *     2,一个是传递两个整形的参数和操作符(输入完整的表达式)
 *     3,一个是猪传递操作符(用来实现按下“=”)   
 *  
 * */
public class Calculator {

private int integer1;
private int integer2;
private char operator;//定义操作符
private static int result=0;//用来存放计算的结果,是static类型

//刚开始的时候计算器显示0
static{
System.out.println("计算器开机显示:"+result);
}

//当输入操作符和一个数时候
public Calculator(char operator,int integer2){
this.integer1=result;
this.operator=operator;
this.integer2=integer2;
}

//当输入一个完整的表达式的时候
public Calculator(int integer1,char operator, int integer2){
this.integer1=integer1;
this.integer2=integer2;
this.operator=operator;
}

//按下等于号的情况
public Calculator(char operator){
if(operator=='='){
System.out.println("计算的结果为:"+result);
}
else{
throw new UnsupportedOperationException();
}
}

//加、减、乘、除的计算
public int calculate() throws UnsupportedOperationException,
ArithmeticException{

if(operator=='+'){
result=integer1+integer2;
}
else if(operator=='-'){
result=integer1-integer2;
}
else if(operator=='*'){
result=integer1*integer2;
}
else if(operator=='/'){
if(integer2==0){
throw new ArithmeticException();
}
else{
result=integer1/integer2;
}
}
else{
throw new UnsupportedOperationException();
}
return result;
}

public char getOperator() {
return operator;
}


public void setOperator(char operator) {
this.operator = operator;
}

public int getInteger1() {
return integer1;
}




public void setInteger1(int integer1) {
this.integer1 = integer1;
}




public int getInteger2() {
return integer2;
}




public void setInteger2(int integer2) {
this.integer2 = integer2;
}




public static int getResult() {
return result;
}




public static void setResult(int result) {
Calculator.result = result;
}




public static void main(String[] args) {
// 主方法捕获异常,并且进行测试


try {
//完成的表达式
Calculator cl1=new Calculator(3,'+',5);
int reslut=cl1.calculate();
System.out.println("计算的结果为:"+result);

//连续的计算
Calculator cl2=new Calculator('+',5);
result =cl2.calculate();
System.out.println("连续计算的结果是:"+result);

//测试除法
Calculator cl3=new Calculator('/',5);//除数不是0
result =cl3.calculate();
System.out.println("除数不是0的结果是:"+result);
// Calculator cl4=new Calculator('/',0);//除数为0
// result =cl4.calculate();
// System.out.println("除数不是0的结果是:"+result);

//测试"="
Calculator cl5=new Calculator('=');//是=
//Calculator cl6=new Calculator('*');//是=
} catch (UnsupportedOperationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ArithmeticException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


}
0 0