Answered step by step
Verified Expert Solution
Question
1 Approved Answer
public class Song { private String title; private String artist; private int duration; public Song() { this(, , 0, 0); } public Song(String t, String
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)); } }
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; } }
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") + " "); } }(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 [ 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 t; artist - a; duration -m * 60 + s; public String getTitle) return title public String getArtist) f return artist; public int getDuration() ( return duration; ) public int getMinutes) return duration / 60 public int getSeconds ) f return duration % 60; public String toString ) return ("\"" + title "\" by " + artist ""+ (duration / 60) + ":" + (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