Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package midq1;
- import java.util.Scanner;
- public class PlayASong {
- public static void main(String[] args) {
- Artist artistob = new Artist("Pablo Albo","pablo@gmail.com","pop",2);
- artistob.enterSongDetails();
- artistob.printDetails();
- Operator operatorob = new Operator("Simon","simon@playasong.com","123","accountant");
- operatorob.printDetails();
- operatorob.calculateRevenue(artistob);
- }
- }
- abstract class User{
- Scanner ob = new Scanner(System.in);
- protected String obname;
- protected String obemail;
- public User(String pname, String pemail) {
- this.obname = pname;
- this.obemail = pemail;
- }
- public User(User newUser) {
- this.obname = newUser.obname;
- this.obemail = newUser.obemail;
- }
- abstract public void printDetails();
- }
- interface Calculation{
- void calculateRevenue(Artist artistob);
- }
- class Operator extends User implements Calculation{
- private String obempNumber;
- private String objob;
- public Operator(String nname, String nemail, String nempno, String njob) {
- super(nname, nemail);
- this.obempNumber = nempno;
- this.objob = njob;
- }
- public void printDetails() {
- System.out.println("Operator name is "+ this.obname);
- System.out.println("Operator email is "+this.obemail);
- System.out.println("Operator employee number is "+this.obempNumber);
- System.out.println("Operator designation is "+this.objob);
- System.out.println("\n");
- }
- public void calculateRevenue(Artist artistObject) {
- System.out.print("Enter number of downloads: ");
- int album = ob.nextInt();
- System.out.println("\n");
- System.out.println("Artist: "+artistObject.obname);
- double revenue = artistObject.calcRateAverage() * album;
- System.out.printf("Album revenue is LKR %.2f",revenue);
- }
- }
- class Artist extends User{
- private String obgenre;
- private int obnumSongs;
- private String obsongList[][];
- public Artist(String nname, String nemail, String ngenre, int nnumSongs) {
- super(nname, nemail);
- this.obgenre = ngenre;
- this.obnumSongs = nnumSongs;
- }
- public void enterSongDetails() {
- String songrate = null;
- this.obsongList = new String[this.obnumSongs][2];
- for (int i = 0;i < obsongList.length; ++i) {
- System.out.println("Enter song:");
- this.obsongList[i][0] = ob.nextLine();
- try {
- System.out.println("Enter rate:");
- songrate = ob.nextLine();
- Double.parseDouble(songrate);
- } catch(NumberFormatException e) {
- System.out.print("Please enter a number for song rate: ");
- songrate = ob.nextLine();
- } finally {
- this.obsongList[i][1] = songrate;
- System.out.println("\n");
- }
- }
- }
- public void printDetails() {
- System.out.println("Artist's name is "+this.obname);
- System.out.println("Artist's email is "+this.obemail);
- System.out.println("Artist's genre is "+this.obgenre);
- System.out.println("Number of songs is "+this.obnumSongs);
- System.out.println("Song list is:");
- for (int c = 0;c < this.obnumSongs; ++c) {
- System.out.println(this.obsongList[c][0]+"\t"+this.obsongList[c][1]);
- }
- System.out.println("\n");
- }
- public double calcRateAverage() {
- double songavg = 0.00;
- for (int s = 0; s < obsongList.length; ++s) {
- songavg = songavg + Double.parseDouble(this.obsongList[s][1]);
- }
- songavg = songavg / obsongList.length;
- return songavg;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement