Create a program that has an App Class which holds your main
Create a program that has an App Class which holds your main() method and create a Band class.
Create an array of 5 Band objects in your main() method.
Each band should have it\'s own compete() method along with a a drummer, vocalist, and piano player.
Each band should have the names of the drummer, vocalist, and piano player.
The complete method() assigns a random score between 0 and 20 to to each band.
Create a method to calculate the top 2 winners from highest score to least and write each band\'s information to a \"winners.txt\" file.
A grabInfo() method should be called to display a band\'s information.
Solution
// Band.java
import java.util.Random;
public class Band implements Comparable<Band> {
   // constructor with all the fields
    public Band(String drummer, String vocalist, String piano) {
        this.drummer = drummer;
        this.vocalist = vocalist;
        this.piano = piano;
    }
   
    // default constructor
    public Band() {}
   private String drummer;
    private String vocalist;
    private String piano;
   
    private int score;
   private Random rand = new Random();
   
    // assign a random score between 0 to 20.
    public void complete()
    {
        this.score = rand.nextInt(20);
    }
   
    // getter and setters
    public String getDrummer() {
        return drummer;
    }
   public void setDrummer(String drummer) {
        this.drummer = drummer;
    }
   public String getVocalist() {
        return vocalist;
    }
   public void setVocalist(String vocalist) {
        this.vocalist = vocalist;
    }
   public String getPiano() {
        return piano;
    }
   public void setPiano(String piano) {
        this.piano = piano;
    }
   public int getScore() {
        return score;
    }
   public void setScore(int score) {
        this.score = score;
    }
   // compare to method to sort array for highest to lowest
    @Override
    public int compareTo(Band arg0) {
        if(getScore() > arg0.getScore())
        {
            return -1;
        }
        if (getScore() < arg0.getScore())
        {
            return 1;
        }
        return 0;
    }
   @Override
    public String toString() {
        return \"Band [drummer=\" + drummer + \", vocalist=\" + vocalist
                + \", piano=\" + piano + \", score=\" + score + \"]\";
    }
   
    public void grabInfo() {
        System.out.println(\"Band [drummer=\" + drummer + \", vocalist=\" + vocalist
                + \", piano=\" + piano + \", score=\" + score + \"]\");
    }
   
   
   
 }
// App.java
import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Arrays;
 public class App {
   private static void getTopBand(Band[] bands )
    {
        Arrays.sort(bands);
       
        System.out.println(\"Top two bands:\");
       
        for(int i = 0; i < 2; i++)
        {
            bands[i].grabInfo();
        }
       
        try{
        PrintWriter writer = new PrintWriter(\"winners.txt\", \"UTF-8\");
        for(int i = 0; i < 5; i++)
            {
                writer.println(bands[i]);
            }
        writer.close();
        } catch (IOException e) {
            System.out.println(\"Unable to open file\");
        }
    }
   
    public static void main(String[] args) {
       Band[] bands = new Band[5];
       
        bands[0] = new Band(\"Drummer1\", \"Vocalist1\", \"Piano1\");
        bands[0].complete();
       
        bands[1] = new Band(\"Drummer2\", \"Vocalist2\", \"Piano2\");
        bands[1].complete();
       
        bands[2] = new Band(\"Drummer3\", \"Vocalist3\", \"Piano3\");
        bands[2].complete();
       
        bands[3] = new Band(\"Drummer4\", \"Vocalist4\", \"Piano4\");
        bands[3].complete();
       
        bands[4] = new Band(\"Drummer5\", \"Vocalist5\", \"Piano5\");
        bands[4].complete();
       
       
        getTopBand(bands);
       
    }
}
/*
Sample output
Top two bands:
 Band [drummer=Drummer1, vocalist=Vocalist1, piano=Piano1, score=19]
 Band [drummer=Drummer5, vocalist=Vocalist5, piano=Piano5, score=19]
winners.txt
Band [drummer=Drummer1, vocalist=Vocalist1, piano=Piano1, score=19]
 Band [drummer=Drummer5, vocalist=Vocalist5, piano=Piano5, score=19]
 Band [drummer=Drummer4, vocalist=Vocalist4, piano=Piano4, score=13]
 Band [drummer=Drummer2, vocalist=Vocalist2, piano=Piano2, score=7]
 Band [drummer=Drummer3, vocalist=Vocalist3, piano=Piano3, score=7]
*/



