public class OperationsBetween { // You must define the following: // 1.) Two private instance variables, min and max // // 2.) A constructor which takes initial values for // min and max // // 3.) An instance method named sum, which sums the // values between min and max and returns the // result. For example, if min = 3 and max = 5, // then this should return 12 (3 + 4 + 5). If // min is greater than max, then this should // return 0. // // 4.) An instance method named product, which // multiplies the values between min and max and // returns the result. For example, if min = 6 // and max = 9, then this should return 3024 // (6 * 7 * 8 * 9). If min is greater than // max, then this should return 1. A stub has // been provided that simply returns 1; this is // just to allow things to compile while you're // working on the sum method. public int product() { // You'll need to replace this code with something // else to make product() work; this is just to make // things compile while you work on sum() return 1; } // DO NOT MODIFY main! public static void main(String[] args) { OperationsBetween between = new OperationsBetween(Integer.parseInt(args[0]), Integer.parseInt(args[1])); System.out.println(\"Sum: \" + between.sum()); System.out.println(\"Product: \" + between.product()); }}
Step 1: Get OperationsBetween.javaCompiling
Download the OperationsBetween.java file, and open it in jGrasp(or a text editor of your choice). This program takes twocommand-line arguments representing the minimum and maximum numberin a numeric range. Currently, the code does not compile. As afirst step, you need to get this code to compile. To this end,you'll need to implement the following:
- Instance variables
- Constructor
- A “stub†for the sum method, which will allow the call to sumin the main method to compile. A stub has already been written forthe product method; you should write something similar forsum.
Once the code has the above elements and is compiling, you'reready to move on to the next step.
Step 2: Implement the sum Method
In the previous step, you wrote a stub for sum to get the codecompiling. Now replace the code in the stub with a loop that willcompute the sum between min and max. You will need to use a loopfor this purpose, and a for loop is likely the best fit. You shouldstart from min, and then iterate up to max, using a temporaryvariable that you increment along the way. You will also needanother variable to store the result. Comments in the file containfurther details.
Once sum (and only sum) is correctly implemented, you should seethe following output if run with the command-line arguments 34:
Sum: 7Product: 1
Step 3: Implement the product Method
Replace the code in the stub for product with a loop that willcompute the product between min and max. This code should lookvery similar to the code you wrote for sum. Furtherdetails are in the file.
Once both product and sum are correctly implemented, you shouldsee the following output if run with the command-line arguments 58:
Sum: 26Product: 1680
Further example output is shown below for the command-linearguments 3 2 (note that the minimum end of the range is greaterthan the maximum end of the range):
Sum: 0Product: 1
Further example output is shown below for the command-linearguments 3 3 (the minimum end of the range is equal to the maximumend of the range):
Sum: 3Product: 3
import static org.junit.Assert.assertEquals;import org.junit.Test;public class OperationsBetweenTest { public static OperationsBetween makeOp(int min, int max) { return new OperationsBetween(min, max); } @Test public void testSumOutOfRange() { assertEquals(0, makeOp(0, -1).sum()); } @Test public void testSumRange1() { assertEquals(2, makeOp(2, 2).sum()); } @Test public void testSumRange2() { assertEquals(5, makeOp(2, 3).sum()); } @Test public void testSumRange3() { assertEquals(9, makeOp(2, 4).sum()); } @Test public void testProductOutOfRange() { assertEquals(1, makeOp(0, -1).product()); } @Test public void testProductRange1() { assertEquals(3, makeOp(3, 3).product()); } @Test public void testProductRange2() { assertEquals(6, makeOp(2, 3).product()); } @Test public void testProductRange3() { assertEquals(24, makeOp(2, 4).product()); }}