创建java计算器,我想用答案替换为第一个数字?
所以我创建了一个java计算器,现在如何通过内存类访问答案并替换为第一个数字?示例:1+1=2,然后使用答案(2)作为我的第一个数字,使方程为2+1=3创建java计算器,我想用答案替换为第一个数字?,java,eclipse,class,methods,calculator,Java,Eclipse,Class,Methods,Calculator,所以我创建了一个java计算器,现在如何通过内存类访问答案并替换为第一个数字?示例:1+1=2,然后使用答案(2)作为我的第一个数字,使方程为2+1=3 import java.util.*; public class calculatortest { private Num num; private Ope ope; private Mem mem; public static void main(String args[]){ calcula
import java.util.*;
public class calculatortest
{
private Num num;
private Ope ope;
private Mem mem;
public static void main(String args[]){
calculatortest c = new calculatortest();
c.start();
}
public calculatortest()
{
}
public void start()
{
while(true)
{
describeProgram();
getInput();
getMemory();
}
}
private void describeProgram()
{
System.out.println("this is my program and it starts from here");
}
private void getInput()
{
String number1;
String operator2;
String number2;
Scanner scanner = new Scanner(System.in);
System.out.print("Number 1: ");
number1 = scanner.next();
System.out.print("Operator: ");
operator2 = scanner.next();
System.out.print("Number 2: ");
number2 = scanner.next();
Num num1= new Num(number1);
Num num2 = new Num(number2);
Ope ope = new Ope(num1, operator2, num2);
Num answer = ope.equation;
if (answer.type == 'i') {
System.out.println("Answer: " + answer.iNum);
} else if (answer.type == 'd') {
System.out.println("Answer: " + answer.dNum);
}
}
private void getMemory()
{
System.out.println("Enter 'YES' to use previous answer OR 'NO' to exit!");
Scanner scanner = new Scanner(System.in);
String number1 = scanner.next();
if (number1.equals("YES")){
mem.getStorednumber();
} else if(number1.equals("NO")){
System.exit(0);
}
}
}
class Num //Type checking the numbers
{
public char type;
public double dNum;
public int iNum;
public Num(String value)
{
if (value.contains(".")) { //I if the values contain a decimal point run double
type = 'd';
dNum = Double.parseDouble(value);
} else
{ // Else run as integer
type = 'i';
iNum = Integer.parseInt(value);
}
}
public Num(int value) {
type = 'i';
iNum = value;
}
public Num(double value) {
type = 'd';
dNum = value;
}
class Ope{
public String operator2;
public Num num1, num2;
public Num equation;
public Ope(Num num1, String operator2, Num num2 )
{
this.num1 = num1;
this.operator2 = operator2;
this.num2 = num2;
equation = answer();
}
public Num answer() {
if(operator2.equals("+"))
{
if(num1.type == 'i' && num2.type == 'i'){
int answer = num1.iNum + num2.iNum;
return new Num(answer);
}
else if
(num1.type == 'i' && num2.type =='d'){
double answer = num1.iNum + num2.dNum;
return new Num(answer);
}
else if
(num1.type == 'd' && num2.type =='i'){
double answer = num1.dNum + num2.iNum;
return new Num(answer);
}
else if
(num1.type == 'd' && num2.type =='d'){
double answer = num1.dNum + num2.dNum;
return new Num(answer);
}
}
else if(operator2.equals("-"))
{
if(num1.type == 'i' && num2.type == 'i'){
int answer = num1.iNum - num2.iNum;
return new Num(answer);
}
else if
(num1.type == 'i' && num2.type =='d'){
double answer = num1.iNum - num2.dNum;
return new Num(answer);
}
else if
(num1.type == 'd' && num2.type =='i'){
double answer = num1.dNum - num2.iNum;
return new Num(answer);
}
else if
(num1.type == 'd' && num2.type =='d'){
double answer = num1.dNum - num2.dNum;
return new Num(answer);
}
}
else if(operator2.equals("*"))
{
if(num1.type == 'i' && num2.type == 'i'){
int answer = num1.iNum * num2.iNum;
return new Num(answer);
}
else if
(num1.type == 'i' && num2.type =='d'){
double answer = num1.iNum * num2.dNum;
return new Num(answer);
}
else if
(num1.type == 'd' && num2.type =='i'){
double answer = num1.dNum * num2.iNum;
return new Num(answer);
}
else if
(num1.type == 'd' && num2.type =='d'){
double answer = num1.dNum * num2.dNum;
return new Num(answer);
}
}
else if(operator2.equals("/"))
{
if(num1.type == 'i' && num2.type == 'i')
{
int answer = num1.iNum / num2.iNum;
System.out.println("Modulo " + num1.iNum % num2.iNum);
return new Num(answer);
}
else if
(num1.type == 'i' && num2.type =='d'){
double answer = num1.iNum / num2.dNum;
return new Num(answer);
}
else if
(num1.type == 'd' && num2.type =='i'){
double answer = num1.dNum / num2.iNum;
return new Num(answer);
}
else if
(num1.type == 'd' && num2.type =='d'){
double answer = num1.dNum / num2.dNum;
return new Num(answer);
}
}
return null;
}
}
class Mem /// THIS IS WERE THE PROBLEMS PERTAINS.
{
void getStorednumber() {
System.out.println(" memory answer is ");
}
}
你的类
Mem
应该存储答案…对吗?那么,你是怎么做到的
class Mem {
private Num storedAnswer;
public void setStoredAnswer(Num newAnswer) {
storedAnswer = newAnswer;
}
public Num getStoredAnswer() {
return storedAnswer;
}
}
要使计算器执行此操作,请执行以下操作:
number_a = (put your number here)
number_b = (put your number here)
class Calculator
def add(number_a, number_b)
number_a + number_b
end
def subtract(number_a, number_b)
number_a - number_b
end
end
如果我的数字是2,数字是1,那么:
number_a = 2
number_b = 1
class Calculator
def add(number_a, number_b)
number_a + number_b
end
def subtract(number_a, number_b)
number_a - number_b
end
end
在文本编写器中编写计算器。如果你运行它,它将无法工作,除非你做多一点编辑。希望它有帮助。您需要给它一个变量,适当的类编码意味着您应该将其设置为私有并创建公共get/set方法。私人住宅;如果我理解不存在的问题,那么通过使用返回值和传递参数就可以很容易地做到这一点。