LU12.A02 - Hofladen

In einem Hofladen sind verschiedene Produkte verfügbar. Zum Speichern der Produkte definieren wir eine @dataclass mit diesen Attributen:

  • Name des Artikels name (Text)
  • Preis des Artikels price (Dezimalzahl)
  • Bestand stock (Ganzzahl)

Ihr Programm soll die Artikel im Hofladen verwalten.

Der Benutzer gibt zuerst den Namens eines Artikels ein. Falls der Name Exit ist, wird das Programm beendet. Falls der Artikel noch nicht existiert, muss der Benutzer den Preis eingeben. Andernfalls wird der aktuelle Bestand ausgegeben. Zuletzt gibt der Benutzer die Veränderung des Bestands ein.

Artikelname > Milch
Preis       > 5.75
Menge       > 5

Artikelname > Wurst
Preis       > 21.10
Menge       > 12

Artikelname > Milch
Bestand     : 5
Menge       > -2

Artikelname > Exit

main:

  1. Erstelle eine leere Liste für die Artikelliste
  2. Eingabe des Artikelnamen
  3. Solange Artikelnamen nicht Exit ist
    1. Suche in der Liste mit dem Artikelnamen nach dem Artikel und weise diesen Artikel Artikel zu –> find_article(article_name, article_list):
    2. Falls Artikel None ist
      1. Erstelle ein neuen Artikel mit dem Artikelnamen, Preis=0.00 und Bestand=0
      2. Speichere das Objekt in der Artikelliste
      3. Eingabe des Artikel.Preis –> input_float(prompt)
    3. Sonst
      1. Ausgabe des aktuellen Bestands
    4. Eingabe der Menge –> input_int(prompt)
    5. Addiere die Menge zum Artikel.Bestand
    6. Eingabe des Artikelnamens
  4. Gib die Artikelliste als Returnwert zurück

find_article(article_name, article_list):

  1. Iteriere über alle Artikel in der Artikelliste
    1. Wenn der Artikelnamen dem Artikel.Artikelnamen entspricht
      1. Gib den gefundenen Artikel zurück
  2. Gib None zurück

⇒ GitHub Repo für externe Besucher

GitHub Repository https://github.com/templates-python/m319-lu12-a02-farmshop

Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden


Marcel Suter

  • modul/m319/learningunits/lu12/aufgaben/hofladen.txt
  • Zuletzt geändert: 2024/12/12 14:05
  • von kmaurizi