2013-04-17 4 views
0

Я застрял на домашнем задании, которое является моим последним проектом семестра. Мне нужно создать программу с классом песни и классом MP3_Player. Проблема, с которой я сталкиваюсь, заключается в том, что вы берете на себя вход пользователя и помещаете его в список массива, а также распечатываете его. Может кто-то помочь подтолкнуть меня в правильном направлении.Сканер и массивList

package program3; 

import java.util.Scanner; 





/** 
* 
* @author Seth 
*/ 
public class Main { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
    // TODO code application logic here 


    Scanner sc = new Scanner(System.in); 

    System.out.print("Enter the song's title:"); 
     String title = sc.nextLine(); 
    System.out.print("Enter the song's artist:"); 
     String artist = sc.nextLine(); 
    System.out.print("Enter the song's duration:"); 
     float duration = sc.nextFloat(); 
    System.out.print("Enter the size of the songs file: "); 
     int fileSize = sc.nextInt(); 

    Song song = new Song(title, artist, duration, fileSize); 
     song.add(song); 

    for (int i = 0; i<song.length; i++){ 
     System.out.println("Song " + i + " title is: " + 
      song.getTitle() + ", the artist is " + 
      song.getArtist() + " and the duration is " + 
      String.valueOf(song.getDuration()) + "."); 
    } 

} 

} 






package program3; 

import java.util.ArrayList; 



/** 
* 
* @author Seth 
*/ 
public class MP3_Player { 

private int freeSpace; 
private int storageCapacity; 

ArrayList<Song> songList = new ArrayList<Song>(); 



public MP3_Player() 
{ 
    storageCapacity = 10; 
    freeSpace = storageCapacity; 

} 

public MP3_Player(int storage) 
{ 
    storageCapacity = storage; 
    freeSpace = storageCapacity; 

}  

public String toString() 
{ 
    return "MP3 player with capacity " + storageCapacity + 
      ", " + freeSpace + " left, contains:\n" + 
    songList.toString().replace("[","").replace("]","").replace(",","\n"); 
} 

public int getFreeSpace() 
{ 
    return freeSpace; 
} 

public int getStorageCapacity() 
{ 
    return storageCapacity; 
} 

public ArrayList<Song> getSongList() 
{ 
    return songList; 
} 

public void setStorageCapacity(int newStorageCapacity) 
{ 
    storageCapacity = newStorageCapacity; 
} 

public void setFreeSpace(int newFreeSpace) 
{ 
    if (newFreeSpace >= 0) { 
     freeSpace = newFreeSpace; 
    } 
} 


public void addSong(Song s) 
{ 
    if(s.getFileSize() <= freeSpace) 
    { 
     songList.add(s); 
     System.out.println(s.getTitle() + " added to the MP3 player."); 
     freeSpace -= s.getFileSize(); 
    } 
    else 
    { 
     System.out.println("Cannot add " + s.getTitle() + 
       " not enough free space."); 
    } 

} 


public void removeSong(Song s) 
{ 
    boolean songRemoval = false; 
    for (Song i : songList) 
    { 
     if(s.equals(i)) 
     { 
      freeSpace += s.getFileSize(); 
      songRemoval = true; 
      System.out.println(s.getTitle() + 
        " is removed from the MP3 Player."); 
     } 
     else if(s.equals(i)) 
     { 
      System.out.println("This song isn't stored in the MP3 Player."); 
     } 
    } 
    if(songRemoval) 
    {songList.remove(s); 
} 
} 
} 
+0

Что нужно вводить пользователю? Просто песня? Или все подробности песни? –

+0

Пользователь должен вводить все. Предполагается, что программа запрашивает название песни и размер файла. Тогда, если есть свободное пространство, то программа должна добавить песню в ArrayList. Кроме того, если пользователь вводит заголовок, который уже существует, он должен удалить заголовок из ArrayList (метод удаления, я думаю, что у меня есть правильно). – user2288502

+0

Затем вы должны обновить свой конструктор аргументом filesize. –

ответ

1

Так вот решение вашей проблемы ... (по мне) :-)

  1. Start, задавая пользователю, сколько песен он хочет add.say N.
  2. Теперь цикл N раз и повторите следующие шаги
  3. Make пользователя ввести детали для песни говорят, песня имеет 4 вещи, чтобы добавить название, исполнитель, somemoredetails, размер
  4. сделать класс звук добавить все детали и теперь после этого цикла вы w имеют N объектов песни.
  5. Итак, как вы печатаете все песни с их информацией.
  6. Вот код:

    //loop through the arraylist like this 
    for (Song s:arraylistofobjcts){ 
        s.o.p("Songs"+s.getTitle()+s.getArtist()+s.getWriter()+s.getFileSize()) 
    } 
    

    // Вот это ..

    **So this the song class** 
    

** общественного класса Song {

private String title,writer,artist; 
    private int size; 

public Song(String title,String writer, String artist,int size){ 

    this.setTitle(title); 
    this.setWriter(writer); 
    this.setArtist(artist); 
      this.setSize(size); 
} 
public int getSize() { 
    return this.size; 
} 
public void setSize(int size) { 
    this.size = size; 
} 
public String getTitle() { 
    return this.title; 
} 
public void setTitle(String title) { 
    this.title = title; 
} 
public String getArtist() { 
    return this.artist; 
} 
public void setArtist(String artist) { 
    this.artist = artist; 
} 
public String getWriter() { 
    return this.writer; 
} 
public void setWriter(String writer) { 
    this.writer = writer; 
} 

} **

cheers

Смежные вопросы