its having 2 issues 1) compareTo method is incorrect (A method named compareTo which returns a positive int, a negative int, or zero depending on order of this object and the otherMoney argument. ) 2) 2 of the values (highlighted) are ordered incorrectly see the picture

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

I have the following code:

public class Money {
    private int dollar;
    private int cent;
    final static int MIN_CENT_VALUE = 0;
    final static int MAX_CENT_VALUE = 99;

    public Money() {
        this.dollar = 0;
        this.cent = 0;
    }

    public Money(int dollar, int cent) {
        this.dollar = dollar;
        if (cent >= MIN_CENT_VALUE && cent <= MAX_CENT_VALUE) {
            this.cent = cent;
        } else {
            cent = 0;
        }
    }

    public int getDollar() {
        return this.dollar;
    }

    public void setDollar(int dol) {
        this.dollar = dol;
    }

    public int getCent() {
        return this.cent;
    }

    public void setCent(int c) {
        if (c >= MIN_CENT_VALUE && c <= MAX_CENT_VALUE) {
            this.cent = c;
        }
    }

    public Money add(Money otherMoney) {
        Money m = new Money();
        m.dollar = dollar + otherMoney.dollar;
        m.cent = cent + otherMoney.cent;
        if (m.cent >= 100) {
            m.dollar++;
            m.cent -= 100;
        }

        return m;
    }

    public Money subtract(Money otherMoney) {
        Money m = new Money();
        m.dollar = dollar - otherMoney.dollar;
        m.cent = cent - otherMoney.cent;
        if (m.dollar < 0 || m.cent < 0) {
            return null;
        }
        return m;
    }

    public boolean equals(Money otherMoney) {
        return this == otherMoney;
    }

    public int compareTo(Money otherMoney) {
        if (this.dollar < otherMoney.dollar) {
            return this.dollar - otherMoney.dollar;
        } else if (this.dollar == otherMoney.dollar) {
            return 0;
        } else {
            return this.dollar- otherMoney.dollar;
        }
    }

    public String toString() {
        if (this.cent<10){
            return "$" + this.dollar + ".0" + this.cent;
        }
        return "$" + this.dollar + "." + this.cent;
    }

    public static Money max(Money[] m) {
        int max = m[0].dollar;
        int index = 0;
        for (int i = 0; i < m.length; i++) {
            if (max < m[i].dollar) {
                max = m[i].dollar;
                index = i;
            }
        }
        return m[index];
    }

    public static void selectionSort(Money arr[]) {
        int n = arr.length;

        for (int i = 0; i < n - 1; i++) {
            int min = i;
            for (int j = i + 1; j < n; j++)
                if (arr[j].dollar < arr[min].dollar)
                    min = j;

            // Swap the found minimum element with the first element
            Money temp = new Money();
            temp = arr[min];
            arr[min] = arr[i];
            arr[i] = temp;
        }
    }

    public static void printList(Money[] m, int i) // This method takes an array of object as parameter

    {
        for (Money mm : m){
            System.out.print(mm + "  ");
        }

        System.out.println();
    }
}

its having 2 issues

1) compareTo method is incorrect (A method named compareTo which returns a positive int, a negative int, or zero
depending on order of this object and the otherMoney argument. )

2) 2 of the values (highlighted) are ordered incorrectly

see the picture 

Output differs. See highlights below. Special character legend
$5.45 + $10.95 is $16.40
$5.45 $10.95 is null
$10.95 $5.45 is $5.50
equals method result: false
Your output
Expected output
compareTo method result: -5
Unsorted list
$4.80 $4.90 $17.56 $8.88 $22.14 $14.99 $22.08 $16.80 $17.53 $14
The Max is $24.09
Sorted list
$4.80 $4.90 $6.49 $8.88 $9.50 $14.99 $14.38 $15.70 $16.08 $16.8
▶
4
$5.45 + $10.95 is $16.40
$5.45 $10.95 is null
$10.95
$5.45 is $5.50
equals method result: false
compareTo method result: -550
Unsorted list
$4.80 $4.90 $17.56 $8.88 $22.14 $14.99 $22.08 $16.80 $17.53 $14
$24.09 $16.08 $6.49 $15.70 $9.50
The Max is $24.09
Sorted list
$4.80 $4.90 $6.49 $8.88 $9.50 $14.38 $14.99 $15.70 $16.08 $16.8
$17.53 $17.56 $22.08 $22.14 $24.09
4
▶
Transcribed Image Text:Output differs. See highlights below. Special character legend $5.45 + $10.95 is $16.40 $5.45 $10.95 is null $10.95 $5.45 is $5.50 equals method result: false Your output Expected output compareTo method result: -5 Unsorted list $4.80 $4.90 $17.56 $8.88 $22.14 $14.99 $22.08 $16.80 $17.53 $14 The Max is $24.09 Sorted list $4.80 $4.90 $6.49 $8.88 $9.50 $14.99 $14.38 $15.70 $16.08 $16.8 ▶ 4 $5.45 + $10.95 is $16.40 $5.45 $10.95 is null $10.95 $5.45 is $5.50 equals method result: false compareTo method result: -550 Unsorted list $4.80 $4.90 $17.56 $8.88 $22.14 $14.99 $22.08 $16.80 $17.53 $14 $24.09 $16.08 $6.49 $15.70 $9.50 The Max is $24.09 Sorted list $4.80 $4.90 $6.49 $8.88 $9.50 $14.38 $14.99 $15.70 $16.08 $16.8 $17.53 $17.56 $22.08 $22.14 $24.09 4 ▶
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Unreferenced Objects
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education