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
Ancestor(X,father(X)) and ancestor(david,george) is they unify or not
Tanya [424]
This is not a computer and technology question but ill still answer it!! They are not
6 0
3 years ago
Caches are important to providing a high-performance memory hierarchy to processors. Below is a list of 32-bits memory address r
LiRa [457]

Answer:

See explaination

Explanation:

please kindly see attachment for the step by step solution of the given problem.

5 0
3 years ago
Do most facebook and twitter users access the platform from their personal computers?
vlabodo [156]
No???? Yes. Maybe. I don't know. Why is this relevant? <span />
8 0
3 years ago
Read 2 more answers
What is ur Favorite anime
jok3333 [9.3K]

Answer:

one piece lol

Explanation:

8 0
3 years ago
​ In addition to analyzing logic and program code, a project team usually holds a session with users, called a _____, to review
andreev551 [17]

Answer:

design walk-through

Explanation:

In addition to analyzing logic and program code, a project team usually holds a session with users, called a <u>design walk-through</u>, to review the interface with a cross-section of people who will work with the new system and ensure that all the necessary features have been included.

A design walk-through is a quality practice that allows designers to obtain an early validation of design decisions related to the development and treatment of content, design of the graphical user interface, and the elements of product functionality.

8 0
3 years ago
Other questions:
  • Which of these is a social consequence of effective communication
    12·1 answer
  • I’m which scenario would someone most likely be using presentation software ?
    6·2 answers
  • (EASY 15 POINTS) What are two indications in a browser that a secure connection is being used?
    6·1 answer
  • Where is a 3D modeler most likely to work?
    6·1 answer
  • ALGUEM SABE COMO MUDA O NOME DE PERFIL!?!?!? SE SOUBER ME AJUDA!!
    14·1 answer
  • The process of adding a header to the data inherited from the layer above is called what option below
    8·1 answer
  • Benching system are prohibited in
    5·1 answer
  • 14. Which of the following statements is true? A. The most secure email message authenticity and confidentiality isprovided by s
    11·1 answer
  • To date, what has most propelled the digital revolution?
    10·1 answer
  • Hi. I'm a beginner in python. Can anyone tell me what I'm missing or doing wrong, because I can't figure out why my messages in
    5·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!