CMS-kursen

Uppgift: garaget

Bygg ett garage som håller reda på bilar, med klasser som har var sitt ansvar.

Uppgift

Bygg ett program med två klasser: Bil och Garage.

Klassen Bil

  • Egenskaper: märke, färg och pris.
  • En konstruktor som tar emot alla tre.
  • Metoden info() som returnerar en beskrivning av bilen.

Klassen Garage

  • En privat array med bilarna.
  • stallIn($bil) ställer in en bil i garaget.
  • taUtBil($index) tar ut bilen på en viss plats och returnerar den.
  • saljBil($index) tar bort bilen och returnerar priset.
  • lista() skriver ut alla bilar, numrerade.
  • antal() returnerar antalet bilar.

Programmet nedan ska fungera när du är klar:

Förväntad utskrift, ungefär:

1. Bil [märke: BMW, färg: Blå, pris: 350000 kr]
2. Bil [märke: Volvo, färg: Silver, pris: 280000 kr]
3. Bil [märke: Audi, färg: Grön, pris: 420000 kr]
Tog ut: Bil [märke: BMW, färg: Blå, pris: 350000 kr]
Sålde en bil för 280000 kr
Bilar kvar: 1
1. Bil [märke: Audi, färg: Grön, pris: 420000 kr]

Tips:

  • array_splice($array, $index, 1) tar bort ett element och numrerar om resten. Den returnerar en array med det borttagna elementet.
  • Vad ska hända om någon försöker ta ut en bil på en plats som inte finns?

Extra

  • Lägg till metoden totaltVarde() som summerar priset på alla bilar.
  • Lägg till metoden sok($marke) som returnerar alla bilar av ett visst märke.
  • Spara garaget till en JSON-fil och läs in det igen.

Klar när

  • Testprogrammet körs utan fel och varningar.
  • Arrayen med bilar är privat och nås bara genom garagets metoder.
  • Ett ogiltigt index hanteras utan att programmet kraschar.