-
Notifications
You must be signed in to change notification settings - Fork 119
Аудиториска вежба 3
AleksandarStojmenski edited this page Mar 7, 2018
·
2 revisions
- Пишување едноставни класи во C#
- Имплементација и користење на својства (Properties)
- Композиција со користење на
List<T>
Да се развие класа за работа со песни и албуми од песни. За секоја песна се чува името на песната, должината (во секунди) и рејтинг. Албумот има име, година на издавање и листа со песни.
Во класата албум да се напишат следните методи:
-
addSong
- за додавање нова песна во албумот -
findSong
- за пребарување песна во албумот (ако не се пронајде песната се фрла исклучок од типSongNotFoundException
)
class Song
{
public string Name { get ; set ; }
public float Rating { get ; set ; }
public int Duration { get ; set ; }
public Song () { }
public Song ( string name , float rating , int duration )
{
Name = name ;
Rating = rating ;
Duration = duration ;
}
public override string ToString ()
{
return string . Format ( " {0} - {1} " , Name , Duration ) ;
}
}
class Album
{
public string Name { get; set; }
public int Year { get; set; }
public List<Song> Songs { get; set; }
public Album(string name, int year)
{
Name = name;
Year = year;
Songs = new List<Song>();
}
public void AddSong(Song song)
{
Songs.Add(song);
}
public void AddSong(string name, int duration, float rating)
{
Song song = new Song(name, duration, rating);
Songs.Add(song);
}
public Song FindSong(string name)
{
foreach (Song song in Songs)
{
if (song.Name.Equals(name, StringComparison.OrdinalIgnoreCase))
{
return song;
}
}
throw new SongNotFoundException(name);
}
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append(Name);
sb.Append('\n');
sb.Append(Year);
sb.Append('\n');
sb.Append("Songs:\n");
int i = 1;
foreach (Song song in Songs)
{
sb.Append(string.Format("{0}. ", i++));
sb.Append(song);
sb.Append('\n');
}
return sb.ToString();
}
}