Answered step by step
Verified Expert Solution
Question
1 Approved Answer
import java.util.ArrayList; public class MusicExchangeTestProgram2 { public static void main(String args[]) { ArrayList catalog; // Create a new music exchange center MusicExchangeCenter mec = new
import java.util.ArrayList; public class MusicExchangeTestProgram2 { public static void main(String args[]) { ArrayListcatalog; // Create a new music exchange center MusicExchangeCenter mec = new MusicExchangeCenter(); // Create some users and give them some songs User discoStew = User.DiscoStew(); User sleepingSam = User.SleepingSam(); User ronnieRocker = User.RonnieRocker(); User countryCandy = User.CountryCandy(); User peterPunk = User.PeterPunk(); // Register the users discoStew.register(mec); ronnieRocker.register(mec); sleepingSam.register(mec); countryCandy.register(mec); peterPunk.register(mec); // Log on all users discoStew.logon(mec); sleepingSam.logon(mec); ronnieRocker.logon(mec); countryCandy.logon(mec); peterPunk.logon(mec); System.out.println("Status: " + mec); // Simulate a user requesting a list of songs catalog = discoStew.requestCompleteSonglist(mec); System.out.println("Complete Song List: "); for (String s: catalog) System.out.println(" " + s); // Simulate a user downloading 3 songs from the list System.out.println(" Disco Stew before downloading: " + discoStew); discoStew.downloadSong(mec, "Bite My Arms Off", "Peter Punk"); discoStew.downloadSong(mec, "Meadows", "Sleeping Sam"); discoStew.downloadSong(mec, "If I Had a Hammer", "Country Candy"); discoStew.downloadSong(mec, "Sandy Toes", "Country Candy"); ronnieRocker.logoff(mec); // log off Ronnie, next download should fail discoStew.downloadSong(mec, "Only You Can Rock Me", "Ronnie Rocker"); System.out.println("Disco Stew after downloading: " + discoStew); ronnieRocker.logon(mec); // log on Ronnie, next download should work discoStew.downloadSong(mec, "Only You Can Rock Me", "Ronnie Rocker"); System.out.println("Disco Stew after downloading Ronnies: " + discoStew + " "); // Simulate a user requesting a list of songs by a specific artist catalog = discoStew.requestSonglistByArtist(mec, "Jaw"); System.out.println("Songs by Jaw: "); for (String s: catalog) System.out.println(" " + s); } }
public class User { private String userName; private boolean online; public User() { this(""); } public User(String u) { userName = u; online = false; } public String getUserName() { return userName; } public boolean isOnline() { return online; } public String toString() { String s = "" + userName + ": XXX songs ("; if (!online) s += "not "; return s + "online)"; } // Various Users for test purposes public static User DiscoStew() { User discoStew = new User("Disco Stew"); discoStew.addSong(new Song("Hey Jude", "The Beatles", 4, 35)); discoStew.addSong(new Song("Barbie Girl", "Aqua", 3, 54)); discoStew.addSong(new Song("Only You Can Rock Me", "UFO", 4, 59)); discoStew.addSong(new Song("Paper Soup Cats", "Jaw", 4, 18)); return discoStew; } public static User SleepingSam() { User sleepingSam = new User("Sleeping Sam"); sleepingSam.addSong(new Song("Meadows", "Sleepfest", 7, 15)); sleepingSam.addSong(new Song("Calm is Good", "Waterfall", 6, 22)); return sleepingSam; } public static User RonnieRocker() { User ronnieRocker = new User("Ronnie Rocker"); ronnieRocker.addSong(new Song("Rock is Cool", "Yeah", 4, 17)); ronnieRocker.addSong(new Song("My Girl is Mean to Me", "Can't Stand Up", 3, 29)); ronnieRocker.addSong(new Song("Only You Can Rock Me", "UFO", 4, 52)); ronnieRocker.addSong(new Song("We're Not Gonna Take It", "Twisted Sister", 3, 9)); return ronnieRocker; } public static User CountryCandy() { User countryCandy = new User("Country Candy"); countryCandy.addSong(new Song("If I Had a Hammer", "Long Road", 4, 15)); countryCandy.addSong(new Song("My Man is a 4x4 Driver", "Ms. Lonely", 3, 7)); countryCandy.addSong(new Song("This Song is for Johnny", "Lone Wolf", 4, 22)); return countryCandy; } public static User PeterPunk() { User peterPunk = new User("Peter Punk"); peterPunk.addSong(new Song("Bite My Arms Off", "Jaw", 4, 12)); peterPunk.addSong(new Song("Where's My Sweater", "The Knitters", 3, 41)); peterPunk.addSong(new Song("Is that My Toenail ?", "Clip", 4, 47)); peterPunk.addSong(new Song("Anvil Headache", "Clip", 4, 34)); peterPunk.addSong(new Song("My Hair is on Fire", "Jaw", 3, 55)); return peterPunk; } }
import javafx.util.Pair; public class MusicExchangeTestProgram3 { public static void main(String args[]) { // Create a new music exchange center MusicExchangeCenter mec = new MusicExchangeCenter(); // Create some users and give them some songs User discoStew = User.DiscoStew(); User sleepingSam = User.SleepingSam(); User ronnieRocker = User.RonnieRocker(); User countryCandy = User.CountryCandy(); User peterPunk = User.PeterPunk(); // Register the users discoStew.register(mec); ronnieRocker.register(mec); sleepingSam.register(mec); countryCandy.register(mec); peterPunk.register(mec); // Log on all users discoStew.logon(mec); sleepingSam.logon(mec); ronnieRocker.logon(mec); countryCandy.logon(mec); peterPunk.logon(mec); System.out.println("Status: " + mec); // Simulate users downloading various songs discoStew.downloadSong(mec, "Bite My Arms Off", "Peter Punk"); discoStew.downloadSong(mec, "Meadows", "Sleeping Sam"); discoStew.downloadSong(mec, "If I Had a Hammer", "Country Candy"); discoStew.downloadSong(mec, "Is that My Toenail ?", "Peter Punk"); sleepingSam.downloadSong(mec, "Anvil Headache", "Peter Punk"); sleepingSam.downloadSong(mec, "Is that My Toenail ?", "Disco Stew"); sleepingSam.downloadSong(mec, "If I Had a Hammer", "Country Candy"); countryCandy.downloadSong(mec, "Anvil Headache", "Peter Punk"); countryCandy.downloadSong(mec, "Meadows", "Sleeping Sam"); countryCandy.downloadSong(mec, "If I Had a Hammer", "Peter Punk"); countryCandy.downloadSong(mec, "Only You Can Rock Me", "Ronnie Rocker"); countryCandy.downloadSong(mec, "Is that My Toenail ?", "Disco Stew"); peterPunk.downloadSong(mec, "Is that My Toenail ?", "Country Candy"); peterPunk.downloadSong(mec, "Rock is Cool", "Ronnie Rocker"); peterPunk.downloadSong(mec, "What?", "Ronnie Rocker"); peterPunk.downloadSong(mec, "Meadows", "Sleeping Sam"); // Display the downloaded songs System.out.println(" Here are the downloaded songs: "); for (Song s: mec.getDownloadedSongs()) System.out.println(s); // Display the downloaded songs alphabetically System.out.println(" Here are the unique downloaded songs alphabetically: "); for (Song s: mec.uniqueDownloads()) System.out.println(s); // Display the downloaded songs in order of popularity System.out.println(" Here are the downloaded songs by populariry: "); for (Pairp: mec.songsByPopularity()) System.out.println("(" + p.getKey() + " downloads) " + p.getValue()); // Display the royalties System.out.println(" Here are the royalties: "); mec.displayRoyalties(); } }
public class MusicExchangeTestProgram { public static void main(String args[]) { // Create a new music exchange center MusicExchangeCenter mec = new MusicExchangeCenter(); // Create some users and give them some songs User discoStew = User.DiscoStew(); User sleepingSam = User.SleepingSam(); User ronnieRocker = User.RonnieRocker(); User countryCandy = User.CountryCandy(); User peterPunk = User.PeterPunk(); // Register the users, except SleepingSam discoStew.register(mec); ronnieRocker.register(mec); countryCandy.register(mec); peterPunk.register(mec); // Display the state of things before anyone logs on System.out.println("Status: " + mec); System.out.println("On-Line Users: " + mec.onlineUsers()); System.out.println("Available Songs: " + mec.allAvailableSongs() + " "); // Attempt to log on two registered users and one unregistered user discoStew.logon(mec); sleepingSam.logon(mec); // Should not work ronnieRocker.logon(mec); System.out.println("Status: " + mec); System.out.println("On-Line Users: " + mec.onlineUsers()); System.out.println("Available Songs: " + mec.allAvailableSongs() + " "); // Log on two more users countryCandy.logon(mec); peterPunk.logon(mec); System.out.println("Status: " + mec); System.out.println("On-Line Users: " + mec.onlineUsers()); System.out.println("Available Songs: " + mec.allAvailableSongs()); System.out.println("Available Songs By Jaw: " + mec.availableSongsByArtist("Jaw") + " "); // Log off three users (one is not even logged in) countryCandy.logoff(mec); discoStew.logoff(mec); sleepingSam.logoff(mec); System.out.println("Status: " + mec); System.out.println("On-Line Users: " + mec.onlineUsers()); System.out.println("Available Songs: " + mec.allAvailableSongs()); System.out.println("Available Songs By Jaw: " + mec.availableSongsByArtist("Jaw") + " "); // Log off the last two users peterPunk.logoff(mec); ronnieRocker.logoff(mec); System.out.println("Status: " + mec); System.out.println("On-Line Users: " + mec.onlineUsers()); System.out.println("Available Songs: " + mec.allAvailableSongs()); System.out.println("Available Songs By Jaw: " + mec.availableSongsByArtist("Jaw") + " "); } }
public class Song { private String title; private String artist; private int duration; public Song() { this("", "", 0, 0); } public Song(String t, String a, int m, int s) { title = t; artist = a; duration = m * 60 + s; } public String getTitle() { return title; } public String getArtist() { return artist; } public int getDuration() { return duration; } public int getMinutes() { return duration / 60; } public int getSeconds() { return duration % 60; } public String toString() { return("\"" + title + "\" by " + artist + " " + (duration / 60) + ":" + (duration%60)); } }(1) The Song/ User Classes Here are simple Song and User classes that represent a song that is available at the Music Exchange Center and a user of the Music Exchange Center that logs in to download music: public class Song t private String private String private int title; artist; duration; public Song ) this("", "", 0, 0) public Song (String t, String a, int m, int s) owner- null; title-ti artist = a; duration= m * 60 + s; public String getTitle) return title; public String getArtist) return artist; public int getDuration) return duration; ) public int getMinutes) return duration 60 public int getSeconds ) I return duration % 60; (1) The Song/ User Classes Here are simple Song and User classes that represent a song that is available at the Music Exchange Center and a user of the Music Exchange Center that logs in to download music: public class Song t private String private String private int title; artist; duration; public Song ) this("", "", 0, 0) public Song (String t, String a, int m, int s) owner- null; title-ti artist = a; duration= m * 60 + s; public String getTitle) return title; public String getArtist) return artist; public int getDuration) return duration; ) public int getMinutes) return duration 60 public int getSeconds ) I return duration % 60
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started