diff --git a/lab02/shopping.py b/lab02/shopping.py new file mode 100644 index 0000000000000000000000000000000000000000..d35baa248fee4c85fb65a07c6162fcf7e347b235 --- /dev/null +++ b/lab02/shopping.py @@ -0,0 +1,92 @@ +# Programmieren 2 Praktikum 2/3 Gerlach, Mike (768100) + +class Person(object): + + def __init__(self, name, kundennummer = 0): + self.name = name + self.kundennummer = kundennummer + + def str(self): + print("Name des Kunden: {}, Kundennummer: {}".format(self.name, self.kundennummer)) + + def add(self, kundennummer): + self.kundennummer = kundennummer + +class Produkt(object): + + def __init__(self, bezeichnung, preis): + self.bezeichnung = bezeichnung + self.preis = preis + + def str(self): + print("{}, {} €".format(self.bezeichnung, self.preis)) + +class Einkaufswagen(Produkt): + + def __init__(self, bezeichnung="", preis="", warenkorb = []): + super().__init__(bezeichnung,preis) + self.warenkorb = warenkorb + self.preis = preis + self.bezeichnung = bezeichnung + + def str(self): + print("Einkaufswagen: {}".format(self.warenkorb)) + + def add(self, Produkt): + self.warenkorb.append(Produkt.bezeichnung) + self.warenkorb.append(Produkt.preis) + + @staticmethod + def warenwert(Einkaufswagen, Person): + summeProdukte = 0 + for ware in Einkaufswagen.warenkorb: + summeProdukte = summeProdukte + 1 + summeProdukte = summeProdukte / 2 + + newList = [] + + for i in range(1, len(Einkaufswagen.warenkorb), 2): + newList.append(Einkaufswagen.warenkorb[i]) + summePreise = 0 + + + for ware in newList: + summePreise = summePreise + ware + + if Person.kundennummer != 0: + rabatt = summePreise * 0.1 + summePreise = summePreise - rabatt + return ("Anzahl der Produkte: {}, Gesamtpreis in Euro: {} mit 10%-Rabatt".format(int(summeProdukte), summePreise)) + + else: + return("Anzahl der Produkte: {}, Gesamtpreis in Euro: {}".format(int(summeProdukte), summePreise)) + + +def main(): + anton = Person("Anton") + karl = Person("Karl") + brot = Produkt("Brot", 2.35) + butter = Produkt("Butter", 1.59) + nutella = Produkt("Nutella", 2.79) + brot.str() + butter.str() + nutella.str() + e1 = Einkaufswagen() + e1.add(brot) + e1.add(brot) + e1.add(butter) + e1.add(nutella) + e1.str() + anton.add(4123) + anton.str() + print(Einkaufswagen.warenwert(e1, anton)) + print(Einkaufswagen.warenwert(e1, karl)) + +if __name__ == '__main__': + main() + +# Zu den Fragen auf dem Arbeitsblatt: +# 3.2.8: Die Funktion "warenwert" sollte zur Klasse Einkaufswagen gehören, da diese schon von Klasse Produkt erbt und man diese auch noch von der Klasse Person +# erben lassen könnte. +#3.2.9: Ich würde die Methode als eine Klassenmethode implementieren, da diese dann sowohl über einen erzeugten Einkaufswagen wie auch über die Klasse Einkaufswagen +# aufrufbar ist. \ No newline at end of file