Einkaufswagen


Story

Wir müssen einen Einkaufswagen für einen Tante-Emma-Laden modellieren. Der Einkaufswagen soll die Liste der hinzugefügten Artikel führen und den Preis korrekt berechnen.

Artikel werden über SKU-Codes (Stock Keeping Unit) zum Einkaufswagen hinzugefügt. Die Artikel im Laden sind:

Name Preis SKU
Potatoes 10.00 STAPOT
Rice 30.00 STARIC
Coffee 14.99 STACOF
Newspaper 2.99 MEDNEW

Aufgaben

Der Einkaufswagen soll die folgenden Operationen ermöglichen:

  • Artikel zum Einkaufswagen hinzufügen: Liest eine SKU und fügt sie dem Einkaufswagen hinzu.
  • Gesamtbetrag prüfen: Der Gesamtwert der Artikel im Einkaufswagen als Zahl mit zwei Nachkommastellen (z. B. 3.99).
  • Die Artikel im Einkaufswagen prüfen: Eine Liste der Namen der Artikel im Einkaufswagen, alphabetisch geordnet, ohne Duplikate, getrennt durch ein Komma und ein Leerzeichen.

Terminologie

  • Item: Ware, die zum Einkaufswagen hinzugefügt werden kann.
  • SKU: Die SKU ist ein Bezeichner, der aus den ersten drei Großbuchstaben des Produkttyps + den ersten drei Großbuchstaben des Produktnamens besteht.
  • Preis: Der Wert eines Artikels als Zahl mit zwei Nachkommastellen.

Implementierungen

Alternative Version

Eine alternative Version bzw. Erweiterung der Story verwendet Rabattcoupons, die zum Einkaufswagen hinzugefügt werden können.

Story

Damit die Kunden zufrieden bleiben, hat der Tante-Emma-Laden Rabattcoupons eingeführt. Um diese Rabatte zu unterstützen, muss unser Einkaufswagen in der Lage sein, Rabattcoupons zu lesen und auf die aktuellen Artikel anzuwenden. Die unterstützten Coupons sind:

Typ SKU Regel
Festpreisrabatt FIX_TEN Zieht 10.00 vom Gesamtbetrag des Einkaufswagens ab
Produktrabatt HALF_STAPOT Reduziert alle STAPOT-Artikel auf den halben Preis

Aufgaben

Der Einkaufswagen soll eine neue Operation scan coupon haben, die eine SKU entgegennimmt und sie zum Einkaufswagen hinzufügt. Beachte, dass total_amount keine negative Zahl sein darf; der Mindestwert für total_amount ist 0.

Terminologie

  • Coupon: Rabatt, der auf den Einkaufswagen angewendet werden kann. Coupons sind eindeutig und lassen sich nur einmal anwenden. Wenn der Coupon-Typ ein Festpreisrabatt ist, ist der zweite Teil der SKU der Rabattbetrag in Großbuchstaben.

Implementierungen