Question

In: Computer Science

public class OperationsBetween { // You must define the following: // 1.) Two private instance variables,...

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.java Compiling

Download the OperationsBetween.java file, and open it in jGrasp (or a text editor of your choice). This program takes two command-line arguments representing the minimum and maximum number in a numeric range. Currently, the code does not compile. As a first 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 sum in the main method to compile. A stub has already been written for the product method; you should write something similar for sum.

Once the code has the above elements and is compiling, you're ready 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 code compiling. Now replace the code in the stub with a loop that will compute the sum between min and max. You will need to use a loop for this purpose, and a for loop is likely the best fit. You should start from min, and then iterate up to max, using a temporary variable that you increment along the way. You will also need another variable to store the result. Comments in the file contain further details.

Once sum (and only sum) is correctly implemented, you should see the following output if run with the command-line arguments 3 4:

Sum: 7
Product: 1

Step 3: Implement the product Method

Replace the code in the stub for product with a loop that will compute the product between min and max. This code should look very similar to the code you wrote for sum. Further details are in the file.

Once both product and sum are correctly implemented, you should see the following output if run with the command-line arguments 5 8:

Sum: 26
Product: 1680

Further example output is shown below for the command-line arguments 3 2 (note that the minimum end of the range is greater than the maximum end of the range):

Sum: 0
Product: 1

Further example output is shown below for the command-line arguments 3 3 (the minimum end of the range is equal to the maximum end of the range):

Sum: 3
Product: 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());
    }
}

Solutions

Expert Solution

public class OperationsBetween {
    // You must define the following:
    // 1.) Two private instance variables, min and max
    private int min, max;
    //
    // 2.) A constructor which takes initial values for
    //     min and max

    public OperationsBetween(int min, int max) {
        this.min = min;
        this.max = 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.
    //
    public int sum() {
        int total = 0;
        for (int i = min; i <= max; i++) {
            total += i;
        }
        return total;
    }
    // 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() {
        int result = 1;
        for (int i = min; i <= max; i++) {
            result *= i;
        }
        return result;
    }

    // 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());
    }
}



Related Solutions

public class OperationsBetween { // You must define the following: // 1.) Two private instance variables,...
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...
1. Implement the Vehicle class.  Add the following private instance variables to the Accoun class:...
1. Implement the Vehicle class.  Add the following private instance variables to the Accoun class: • An instance variable called wheelsCount of type int • An instance variable called vType of type String • An instance variable called isTruck of type boolean .  Add getters and setters for the three instance variables  Add the following methods to the Account class: • A void method called initialize that takes a parameter of type int, a String,and one double...
Complete the required methods: public class SongList { // instance variables private Song m_last; private int...
Complete the required methods: public class SongList { // instance variables private Song m_last; private int m_numElements; // constructor // Do not make any changes to this method! public SongList() { m_last = null; m_numElements = 0; } // check whether the list is empty // Do not make any changes to this method! boolean isEmpty() { if (m_last == null) return true; else return false; } // return the size of the list (# of Song nodes) // Do...
Write a class called Pen that contains the following information: Private instance variables for the price...
Write a class called Pen that contains the following information: Private instance variables for the price of the pen (float) and color of the pen (String). A two-argument constructor to set each of the instance variables above. If the price is negative, throw an IllegalArgumentException stating the argument that is not correct. Get and Set methods for each instance variable with the same error detection as the constructor. public class Pen {
You need to make an AngryBear class.(In java) The AngryBear class must have 2 instance variables....
You need to make an AngryBear class.(In java) The AngryBear class must have 2 instance variables. The first instance variable will store the days the bear has been awake. The second instance variable will store the number of teeth for the bear. The AngryBear class will have 1 constructor that takes in values for days awake and number of teeth. The AngryBear class will have one method isAngry(); An AngryBear is angry if it has been awake for more than...
Define a class for the student record. The class should instance variables for Quizzes, Midterm, Final...
Define a class for the student record. The class should instance variables for Quizzes, Midterm, Final and total score for the course and final letter grade. The class should have input and output methods. The input method should not ask for the final numeric grade, nor should it ask for final letter grade. The classes should have methods to compute the overall numeric grade and the final letter grade. These two methods will be void methods that set the appropriate...
Develop the following class: Class Name: ImprovedArrayBasedStack Access Modifier: public Implements: ImprovedStackInterface Instance variables Name: top...
Develop the following class: Class Name: ImprovedArrayBasedStack Access Modifier: public Implements: ImprovedStackInterface Instance variables Name: top Access modifier: private Data type: int Name: stack Access modifier: private Data type: T[] (an array of parameterized type) Constructors Name: ImprovedArrayBasedStack Access modifier: public Parameters: none (default constructor) Task: sets the value of top to -1 sets the stack to refer to an array of Objects with 100 elements which are type cast to T[] Name: ImprovedArrayBasedStack Access modifier: public Parameters: size (data...
java: create a conplete class named patient. the patient class shouls include teo private instance variables...
java: create a conplete class named patient. the patient class shouls include teo private instance variables named PatientID of type int lastName of type string. include all the parts of a well-formed class described. set the instance variable defaults to appropriate values.
1. Define a class counterType to implement a counter. Your class must have a private data...
1. Define a class counterType to implement a counter. Your class must have a private data member counter of type int and functions to set counter to the value specified by the user, initialize counter to 0, retrieve the value of counter, and increment and decrement counter by one. The value of counter must be nonnegative. 2. Some of the characteristics of a book are the title, author(s), publisher, ISBN, price, and year of publication. Design a class bookType that...
public class AddValueToArray { // You must define the addValueTo method, which will add // a...
public class AddValueToArray { // You must define the addValueTo method, which will add // a given value to each element of the given array. // // TODO - define your code below this comment // // DO NOT MODIFY main! public static void main(String[] args) { int[] array = new int[]{3, 8, 6, 4}; int valueToAdd = Integer.parseInt(args[0]); addValueTo(valueToAdd, array); for (int index = 0; index < array.length; index++) { System.out.println(array[index]); } } }
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT