1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
vlabodo [156]
3 years ago
14

A Musician class has been built that takes the name, number of albums sold, and number of weeks that artist has been on the Top4

0 list. The Musician class also has a boolean instance variable isPlatinum that determines if the musician has gone platinum, meaning they’ve sold over a million copies of the same record. The Billboard class currently has a top10 ArrayList that will store the top 10 musicians as a list. In the Billboard class, create an add method that will add a musician to the list if there are less than 10 musicians in the list, and if the musician has Platinum status. If there are 10 musicians in the list, then the method should call the replace method. Otherwise, a message should be displayed to the user that the musician could not be added to the top10 list. The replace method compares the total number of weeks that the musician has been on the top40 list. If the musician with the lowest number of weeks on the top40 is lower than the number of weeks on the top40 of the new musician, then the old musician is replaced by the new one. There should be a message to the user that the old musician has been replaced by the new one. Otherwise, the user should be notified that the new musician cannot be added because they don’t have enough weeks on the top40. This method should be created in the Billboard class. Use the BillboardTester class to test if the new musicians being added are being correctly replaced, or omitted from the Top 10.
Computers and Technology
1 answer:
MatroZZZ [7]3 years ago
5 0

Answer:

See explaination for program code

Explanation:

Java code below:

Musician.java :

public class Musician {

private String name;

private int weeksInTop40;

private int albumsSold;

private boolean isPlatinum;

public Musician(String name, int weeksInTop40, int albumsSold) {

this.name = name;

this.weeksInTop40 = weeksInTop40;

this.albumsSold = albumsSold;

setPlatinum(albumsSold);

}

public void setPlatinum(int albumsSold) {

if(albumsSold >= 1000000) {

isPlatinum = true;

}else {

isPlatinum = false;

}

}

public int getWeeksInTop40() {

return this.weeksInTop40;

}

public String getName() {

return this.name;

}

public boolean getIsPlatinum() {

return this.isPlatinum;

}

public String toString() {

return this.name;

}

}

Billboard.java :

import java.util.ArrayList;

public class Billboard {

private ArrayList<Musician> top10 = new ArrayList<Musician>();

public void add(Musician newMusician) {

if(this.top10.size()<10 && newMusician.getIsPlatinum()==true) {

/**

* Less than 10 musician are present in the list currently

* And also the newMusician is platinum

* */

this.top10.add(newMusician);

}else {

if(newMusician.getIsPlatinum()==false) {

System.out.println("The new musician "+newMusician+" cannot be added because not enough records are sold");

}else {

/**

* We need to call the replace method

* */

replace(newMusician);

}

}

}

public void replace(Musician newMusician) {

/**

* First we need to find what is the lowest number of weeks

* an musician was there in top40.

* */

int lowestOnTop40 = Integer.MAX_VALUE;

int index=-1;

for(int i=0;i<this.top10.size();i++) {

if(this.top10.get(i).getWeeksInTop40()<lowestOnTop40) {

lowestOnTop40 = this.top10.get(i).getWeeksInTop40();

index = i;

}

}

/**

* We have at what position the lowest number of week on top value in variable

* lowestOnTop40 at index

* We need to compare this value with newMusician's number of weeks on top 40

* */

if(lowestOnTop40 < newMusician.getWeeksInTop40()) {

System.out.println("The old musician "+this.top10.get(index)+" has been replaced by new musician "+newMusician);

this.top10.set(index, newMusician);

}else {

System.out.println("The new musician "+newMusician+" cannot be added because not enough weeks on top40.");

}

}

public void printTop10() {

System.out.println(top10);

}

}

BillboardTester.java :

public class BillboardTester {

public static void main(String[] args) {

Billboard top10 = new Billboard();

top10.add(new Musician("Beyonce", 316, 100000000));

top10.add(new Musician("The Beatles", 365, 600000000));

top10.add(new Musician("Drake", 425, 150000000));

top10.add(new Musician("Pink Floyd", 34, 250000000));

top10.add(new Musician("Mariah Carey", 287, 200000000));

top10.add(new Musician("Rihanna", 688, 250000000));

top10.add(new Musician("Queen", 327, 170000000));

top10.add(new Musician("Ed Sheeran", 536, 150000000));

top10.add(new Musician("Katy Perry", 317, 143000000));

top10.add(new Musician("Justin Bieber", 398, 140000000));

//This musician should not be added to the top10 because they don't have enough records sold

top10.add(new Musician("Karel the Dog", 332, 60));

//This musician should replace the artist

top10.add(new Musician("Tracy the Turtle", 332, 150000000));

//This musician should not replace an artist, but is a Platinum artist

top10.add(new Musician("Alex Eacker", 100, 23400000));

top10.printTop10();

}

}

You might be interested in
How was kapilvastu named​
mixas84 [53]

Answer:  Kapilvastu was named after Vedic sage Kapilamuni

4 0
3 years ago
What is the Most popular game out today?
belka [17]

Answer:

Roblox

Explanation:

People over a million people are playing that game FAM!!!

7 0
3 years ago
Read 2 more answers
If a company gave you a free version of their software and encouraged you to try and improve it and share it with the only commu
dimulka [17.4K]

Answer:

Explanation:

crm

8 0
3 years ago
Used prevalently on the web, it allows for secure messages to be sent between parties without having to agree on, or share, a se
Sati [7]

Answer: A- Public Key Encryption

Explanation: The Public key Encryption is used prevalently on the web, it allows for secure messages to be sent between parties without having to agree on, or share, a secret key. It uses an asymmetric encryption scheme in which the encryption key is made public, but the decryption key is kept private.

7 0
4 years ago
Read 2 more answers
4. What is the connection between productivity and Microsoft Office/ Office 365?
ikadub [295]
Microsoft 365 plans for home and personal include the robust Office desktop apps that you're familiar with, like Word, PowerPoint, and Excel. ... Office 2019 is sold as a one-time purchase, which means you pay a single, up-front cost to get Office apps for one computer.

Hope this helps :)
3 0
3 years ago
Other questions:
  • Briefly outline what LCD screen contain on the inside and why shouldn't it be opened by someone who is not qualified to work wit
    13·2 answers
  • When called upon to give an impromptu speech, it is a good idea to do all of the following, except:
    11·2 answers
  • A writing team wants to present the six-month sales figures for its company's 14 sales representatives in a report. Because mana
    11·1 answer
  • Callie Crystal owns and operates one of the most successful local coffee shops in Denver, called The Edgewater Café. Each time a
    5·2 answers
  • Select the education and qualifications that are most helpful for business analysis careers. Check all that apply
    11·2 answers
  • This is used to copy information from cell to cell in the spread sheet
    7·1 answer
  • Lasses give programmers the ability to define their own types. <br><br> a. True<br> b. False
    10·1 answer
  • Using a computer application is known as​
    11·1 answer
  • Which backup requires a small amount of space and is considered to have an involved restoration process?
    15·1 answer
  • Why does python code generate fewer types of syntax errors than code in other programming languages?
    9·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!