Advertisement
Kyaria

Praktikum 2 - The Playlist V1.2

May 19th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 5.92 KB | None | 0 0
  1. import java.util.*
  2.  
  3. fun main(args: Array<String>) {
  4.  
  5.     val verwaltung = Musikverwaltung()
  6.  
  7.     val song1 = Song("Led Zeppelin", "Led Zeppelin", 3.0, 90)
  8.     val song2 = Song("Led Zeppelin II", "Led Zeppelin", 2.45, 80)
  9.     val song3 = Song("Led Zeppelin III", "Led Zeppelin", 4.34, 72)
  10.     val song4 = Song("[Led Zeppelin IV]", "Led Zeppelin", 7.52, 85)
  11.     val song5 = Song("Houses of the Holy", "Led Zeppelin", 5.53, 94)
  12.     val song6 = Song("Physical Graffiti", "Led Zeppelin", 2.54, 100)
  13.     val song7 = Song("Presence", "Led Zeppelin", 1.20, 67)
  14.     val song8 = Song("In Through the Out Door", "Led Zeppelin", 4.30, 93)
  15.     val song9 = Song("Coda", "Led Zeppelin", 2.10, 91)
  16.     val song10 = Song("Taylor Swift", "Taylor Swift", 2.45, 87)
  17.     val song11 = Song("Fearless", "Taylor Swift", 1.25, 67)
  18.     val song12 = Song("Speak Now", "Taylor Swift", 2.37, 53)
  19.     val song13 = Song("Red", "Taylor Swift", 2.50, 85)
  20.     val song14 = Song("1989", "Taylor Swift", 3.50, 96)
  21.     val song15 = Song("reputation", "Taylor Swift", 1.30, 68)
  22.     val song16 = Song("One of the Boys", "Katy Perry", 2.50, 67)
  23.     val song17 = Song("Teenage Dream", "Katy Perry", 2.35, 87)
  24.     val song18 = Song("PRISM", "Katy Perry", 1.23, 99)
  25.     val song19 = Song("Witness", "Katy Perry", 2.42, 48)
  26.     val song20 = Song("Ur So Gay", "Katy Perry", 1.53, 59)
  27.  
  28.     //val songList = mutableListOf<Song>(song1, song2, song3, song4, song5, song6, song7, song8, song9, song10, song11, song12, song13, song14, song15, song16, song17, song18, song19, song20)
  29.  
  30.     verwaltung.songliste.add(song1)
  31.     verwaltung.songliste.add(song2)
  32.     verwaltung.songliste.add(song3)
  33.     verwaltung.songliste.add(song4)
  34.     verwaltung.songliste.add(song5)
  35.     verwaltung.songliste.add(song6)
  36.     verwaltung.songliste.add(song7)
  37.     verwaltung.songliste.add(song8)
  38.     verwaltung.songliste.add(song9)
  39.     verwaltung.songliste.add(song10)
  40.     verwaltung.songliste.add(song11)
  41.     verwaltung.songliste.add(song12)
  42.     verwaltung.songliste.add(song13)
  43.     verwaltung.songliste.add(song14)
  44.     verwaltung.songliste.add(song15)
  45.     verwaltung.songliste.add(song16)
  46.     verwaltung.songliste.add(song17)
  47.     verwaltung.songliste.add(song18)
  48.     verwaltung.songliste.add(song19)
  49.     verwaltung.songliste.add(song20)
  50.  
  51.     val newPlaylist = Playlist(mutableListOf<Song>(song1, song2, song3))
  52.     val zufallPlaylist: Playlist = verwaltung.zufallPlaylist()
  53.  
  54.     newPlaylist.alleAbspielen()
  55.     println("Spieldauer von newPlaylist: ${newPlaylist.gesamteSpieldauer()}")
  56.  
  57.     println("-----SEPERATOR-----")
  58.  
  59.     zufallPlaylist.alleAbspielen()
  60.     println("Spieldauer von zufallPlaylist: ${zufallPlaylist.gesamteSpieldauer()}")
  61.  
  62.     val besterSong: Song = verwaltung.besterSong()
  63.  
  64.     println("Der beste Song in der Datenbank ist: ${besterSong.titel}, ${besterSong.interpret}, ${besterSong.spieldauer}, ${besterSong.bewertung}")
  65.  
  66.     do{
  67.  
  68.         println("Bitte geben Sie einen Suchbegriff ein!")
  69.         val eingabe = readLine().toString()
  70.  
  71.         if(eingabe != "stopp") {
  72.             val seekSong = verwaltung.suchen(eingabe)
  73.             seekSong.abspielen()
  74.         }
  75.     }
  76.     while(eingabe != "stopp")
  77.  
  78. }
  79.  
  80. class Song(val titel: String, val interpret: String, val spieldauer: Double, _bewertung: Int) {
  81.  
  82.     var bewertung = _bewertung
  83.         set(value) {
  84.             if (value < 0)
  85.                 field = 0
  86.             else if (value > 100)
  87.                 field = 100
  88.             else
  89.                 field = value
  90.         }
  91.  
  92.     fun abspielen() {
  93.  
  94.         var decke: Double
  95.  
  96.         if (spieldauer % 1 == 0.toDouble())
  97.             decke = spieldauer
  98.         else
  99.             decke = spieldauer + 1
  100.  
  101.         val deckeFin = decke.toInt()
  102.  
  103.         for (i in 1..deckeFin)
  104.             println("Spiele: $titel von $interpret (Bewertung: $bewertung Punkte)")
  105.     }
  106.  
  107.     fun change(newValue: Int) {
  108.  
  109.         if (newValue < 0)
  110.             bewertung = 0
  111.         else if (newValue > 100)
  112.             bewertung = 100
  113.         else
  114.             bewertung = newValue
  115.     }
  116.  
  117.     fun search(searchString: String): Boolean {
  118.  
  119.         var istDrin = false
  120.  
  121.         if (titel.contains(searchString))
  122.             istDrin = true
  123.  
  124.         if (interpret.contains(searchString))
  125.             istDrin = true
  126.  
  127.         return istDrin
  128.     }
  129.  
  130. }
  131.  
  132. class Musikverwaltung() {
  133.  
  134.     val songliste: MutableList<Song> = mutableListOf<Song>()
  135.  
  136.     fun hinzufuegen(song: Song) {
  137.  
  138.         songliste.add(song)
  139.     }
  140.  
  141.     fun suchen(begriff: String): Song{
  142.  
  143.         for(s in songliste){
  144.  
  145.             if(s.titel.contains(begriff) || s.interpret.contains(begriff)) {
  146.  
  147.                 return s
  148.             }
  149.         }
  150.  
  151.         return songliste.get(0)
  152.     }
  153.  
  154.     fun besterSong(): Song{
  155.  
  156.         var tmp = songliste.get(0)
  157.  
  158.         for(s in songliste){
  159.  
  160.             if(s.bewertung > tmp.bewertung)
  161.                 tmp = s
  162.         }
  163.  
  164.         return tmp
  165.     }
  166.  
  167.     fun zufallPlaylist(): Playlist{
  168.  
  169.         val zufallGen = Random()
  170.  
  171.         val newSongliste: MutableList<Song> = mutableListOf<Song>()
  172.         var laengePlaylist = zufallGen.nextInt(songliste.size)
  173.  
  174.         var istVorhanden = false
  175.  
  176.         for(i in 0..laengePlaylist){
  177.  
  178.             for (s in newSongliste){
  179.  
  180.                 if(songliste.get(zufallGen.nextInt(songliste.size)) == s)
  181.                     istVorhanden = true
  182.             }
  183.  
  184.             if(!istVorhanden)
  185.                 newSongliste.add(songliste.get(zufallGen.nextInt(songliste.size)))
  186.             else
  187.                 laengePlaylist++
  188.         }
  189.  
  190.         return Playlist(newSongliste)
  191.     }
  192. }
  193.  
  194. class Playlist(val songliste: MutableList<Song>) {
  195.  
  196.     fun gesamteSpieldauer(): Double {
  197.  
  198.         var temp = 0.toDouble()
  199.  
  200.         for (s in songliste) {
  201.  
  202.             temp += s.spieldauer
  203.         }
  204.  
  205.         return temp
  206.     }
  207.  
  208.     fun alleAbspielen() {
  209.  
  210.         for (s in songliste) {
  211.  
  212.             s.abspielen()
  213.         }
  214.     }
  215. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement