# Calculator with Methods

The main method of your calculator program has started to get a little messy. In this assignment, you

will clean it up some by moving some of your code into new methods. Methods allow you to organize

your code, avoid repetition, and make aspects of your code easier to modify.

While the calculator program is very simple, this assignment attempts to show you how larger, realworld

programs are structured. As a new programmer in a job, you will likely not be developing new

programs by yourself, completely from scratch. Instead, it is likely that you will be asked to modify or

write a new method within an existing program. It will help to ease your transition from school to

work if you have been exposed to realistic program organization.

The new methods you will need to implement are listed below. While programming is often a very

creative exercise, there are also times when you will need to be able to code to requirements such that

what you write will integrate seamlessly with what other developers working on the same project will

write. Because of this, for this assignment you will need to implement these methods with the

exact signatures shown here.

public static int getMenuOption()

public static double getOperand(String prompt)

public static double add(double operand1, double operand2)

public static double subtract(double operand1, double operand2)

public static double multiply(double operand1, double operand2)

public static double divide(double operand1, double operand2)

public static double random(double lowerLimit, double upperLimit)

The getMenuOption method should display the menu to the user and read in their option. If the option

is invalid, the method should inform the user and re-prompt them. This should continue until the user

enters a valid option. Once the user has entered a valid choice, the getMenuOption method should

return that choice to the calling method.

The getOperand method should display the prompt to the user and then read in a double value from the

user. This value should be returned to the calling method. The intent is that you will be able to use this

method to gather operands for both the standard arithmetic functions (add, subtract, multiply, and

divide) and for the random number generation. For instance, in the case of subtract, you would do

something like this:

double operand1 = getOperand(“What is the first number? “);

double operand2 = getOperand(“What is the second number? “);

// call your subtract method and pass it these inputs

For the case of random number generation, you would do something like this:

double lowerLimit = getOperand(“What is the lower limit? “);

double upperLimit = getOperand(“What is the upper limit? “);

// all your random number generation method and pass it these inputs

The add, subtract, multiply, divide, and random methods are pretty straightforward. For the divide

method, if the second operand is zero, return the special value Double.NaN. This stands for “not a

number.” We will discuss this more in later chapters.

Once you have written these new methods, rewrite the main method of your calculator program to use

these methods whenever possible. The output (other than the special case of dividing by zero) should

be identical to the output for last week.

Because you are reorganizing the program rather than adding any new functionality, your calculator

should be able to pass the same tests that were included in the previous assignment

will clean it up some by moving some of your code into new methods. Methods allow you to organize

your code, avoid repetition, and make aspects of your code easier to modify.

While the calculator program is very simple, this assignment attempts to show you how larger, realworld

programs are structured. As a new programmer in a job, you will likely not be developing new

programs by yourself, completely from scratch. Instead, it is likely that you will be asked to modify or

write a new method within an existing program. It will help to ease your transition from school to

work if you have been exposed to realistic program organization.

The new methods you will need to implement are listed below. While programming is often a very

creative exercise, there are also times when you will need to be able to code to requirements such that

what you write will integrate seamlessly with what other developers working on the same project will

write. Because of this, for this assignment you will need to implement these methods with the

exact signatures shown here.

public static int getMenuOption()

public static double getOperand(String prompt)

public static double add(double operand1, double operand2)

public static double subtract(double operand1, double operand2)

public static double multiply(double operand1, double operand2)

public static double divide(double operand1, double operand2)

public static double random(double lowerLimit, double upperLimit)

The getMenuOption method should display the menu to the user and read in their option. If the option

is invalid, the method should inform the user and re-prompt them. This should continue until the user

enters a valid option. Once the user has entered a valid choice, the getMenuOption method should

return that choice to the calling method.

The getOperand method should display the prompt to the user and then read in a double value from the

user. This value should be returned to the calling method. The intent is that you will be able to use this

method to gather operands for both the standard arithmetic functions (add, subtract, multiply, and

divide) and for the random number generation. For instance, in the case of subtract, you would do

something like this:

double operand1 = getOperand(“What is the first number? “);

double operand2 = getOperand(“What is the second number? “);

// call your subtract method and pass it these inputs

For the case of random number generation, you would do something like this:

double lowerLimit = getOperand(“What is the lower limit? “);

double upperLimit = getOperand(“What is the upper limit? “);

// all your random number generation method and pass it these inputs

The add, subtract, multiply, divide, and random methods are pretty straightforward. For the divide

method, if the second operand is zero, return the special value Double.NaN. This stands for “not a

number.” We will discuss this more in later chapters.

Once you have written these new methods, rewrite the main method of your calculator program to use

these methods whenever possible. The output (other than the special case of dividing by zero) should

be identical to the output for last week.

Because you are reorganizing the program rather than adding any new functionality, your calculator

should be able to pass the same tests that were included in the previous assignment

You'll get 1 file (4.8KB)