2013-04-17 155 views
0

我被困在一个作业,这是我最后一个学期的项目。我必须创建一个包含Song类和MP3_Player类的程序。我遇到的问题是从用户处获取输入并将其放入arrayList中,并将其打印出来。有人能帮助我朝着正确的方向前进吗?扫描仪和arrayList

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

然后,您必须使用文件大小参数更新您的构造函数。 –

回答

1

因此,这里是你的问题的解决方案......(据我):-)

  1. 开始通过询问用户,他要多少歌曲add.say N.
  2. 现在循环N次重复下面的步骤
  3. 制作用户输入一首歌曲的细节说首歌有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** 
    

**公共类宋{

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; 
} 

} **

欢呼声