Kyaria

Parkhaus Simulation

Apr 12th, 2019
7,293
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.49 KB | None | 0 0
  1. fun main(args: Array<String>){
  2.  
  3.     var park = Parkhaus()
  4.  
  5.     var park1 = Parkschein(15, 20, 16, 35)
  6.     var park2 = Parkschein(14, 30, 17, 20)
  7.     var park3 = Parkschein(13, 10, 18, 35)
  8.     var park4 = Parkschein(12, 30, 19, 10)
  9.     var park5 = Parkschein(11, 50, 20, 35)
  10.  
  11.     park.parkscheine.add(park1)
  12.     park.parkscheine.add(park2)
  13.     park.parkscheine.add(park3)
  14.     park.parkscheine.add(park4)
  15.     park.parkscheine.add(park5)
  16.  
  17.     var time_kurz = park.kuerzesteParkzeit()
  18.     var time_durch = park.durchschnittlicheParkzeit()
  19.     var einnahmen = park.einnahmen()
  20.  
  21.     println("Kürzeste Parkzeit: $time_kurz Min. (ca. ${time_kurz / 60} Std.), Durchschnittliche Parkzeit: $time_durch Min. (ca. ${time_durch / 60} Std.), Einnahmen: $einnahmen€.")
  22.  
  23.     var welcherBug = park.ueberpruefen()
  24.  
  25.     if(welcherBug)
  26.         println("Alles in Ordnung")
  27.     else
  28.         println("Mind. ein Parkschein ist nicht in Ordnung")
  29.  
  30.     var park6 = Parkschein(13, 0, 12, 0)
  31.     park.parkscheine.add(park6)
  32.  
  33.     welcherBug = park.ueberpruefen()
  34.  
  35.     if(welcherBug)
  36.         println("Alles in Ordnung")
  37.     else
  38.         println("Mind. ein Parkschein ist nicht in Ordnung")
  39.  
  40. }
  41.  
  42. class Uhrzeit(val min: Int = 0,val stu: Int = 0){
  43.  
  44.     val minute: Int = min
  45.     val stunde: Int = stu
  46. }
  47.  
  48.  
  49. class Parkschein(val stuE: Int, val minE: Int, val stuA: Int, val minA: Int) {
  50.  
  51.     val einfahrtZeit = Uhrzeit(minE, stuE)
  52.     var ausfahrtZeit = Uhrzeit(minA, stuA)
  53.  
  54.     fun parkzeit() : Int{
  55.  
  56.         var tmp: Int
  57.         var minute: Int
  58.         var stunde: Int
  59.  
  60.         if (einfahrtZeit.stunde <= ausfahrtZeit.stunde)
  61.             tmp = (ausfahrtZeit.stunde - einfahrtZeit.stunde)
  62.         else
  63.             tmp = (24 - einfahrtZeit.stunde) + ausfahrtZeit.stunde
  64.  
  65.         stunde = tmp
  66.         minute = ausfahrtZeit.minute - einfahrtZeit.minute
  67.  
  68.         tmp = 0
  69.  
  70.         return (stunde * 60) + minute
  71.     }
  72.  
  73.     fun angefangendeStunden() : Int{
  74.  
  75.         var tmp: Int = 0
  76.  
  77.         if (einfahrtZeit.stunde < ausfahrtZeit.stunde)
  78.             tmp += (ausfahrtZeit.stunde - einfahrtZeit.stunde)
  79.         else if(einfahrtZeit.stunde  == ausfahrtZeit.stunde)
  80.             tmp += 1
  81.         else
  82.             tmp += ((24 - einfahrtZeit.stunde) + ausfahrtZeit.stunde)
  83.  
  84.  
  85.         if(((60 - einfahrtZeit.minute) + ausfahrtZeit.minute) > 60)
  86.             tmp += 1
  87.  
  88.         return tmp
  89.     }
  90.  
  91. }
  92.  
  93. class Parkhaus{
  94.  
  95.     val parkscheine =  arrayListOf<Parkschein>()
  96.     val tarif = 3.5
  97.  
  98.     fun kuerzesteParkzeit(): Int{
  99.  
  100.         var tmp: Int = parkscheine[0].parkzeit()
  101.  
  102.         for ( p in parkscheine) {
  103.  
  104.             if(tmp > p.parkzeit())
  105.                 tmp = p.parkzeit()
  106.         }
  107.  
  108.         return tmp
  109.     }
  110.  
  111.     fun durchschnittlicheParkzeit(): Int{
  112.  
  113.         var tmp: Int = 0
  114.  
  115.         for ( p in parkscheine)
  116.                 tmp += p.parkzeit()
  117.  
  118.         return (tmp / parkscheine.size)
  119.     }
  120.  
  121.     fun einnahmen(): Double{
  122.  
  123.         var tmp: Int = 0
  124.  
  125.         for ( p in parkscheine)
  126.             tmp += p.angefangendeStunden()
  127.  
  128.         return (tarif * tmp)
  129.     }
  130.  
  131.     fun ueberpruefen(): Boolean{
  132.  
  133.         var test: Boolean = true
  134.  
  135.         for ( p in parkscheine){
  136.  
  137.             if(p.einfahrtZeit.stunde > p.ausfahrtZeit.stunde) {
  138.                 test = false
  139.  
  140.             }else if(p.einfahrtZeit.stunde == p.ausfahrtZeit.stunde){
  141.                 if(p.einfahrtZeit.minute > p.ausfahrtZeit.minute)
  142.                     test = false
  143.             }
  144.         }
  145.  
  146.         return test
  147.     }
  148. }
Advertisement