Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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.