Skip to content
Snippets Groups Projects
shopping.py 2.74 KiB
Newer Older
  • Learn to ignore specific revisions
  • Mike Gerlach's avatar
    Mike Gerlach committed
    # 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.