Logikfrage kleines Kassensystem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Hallo,
ich schreibe derzeit an einem kleinen Kassensystem, habe nun jedoch eine kleine Logikfrage.
Ich möchte selbstverständlich die einzelnen Produkte in Klassen unterteilen, habe also eine Klasse PProduct.

Im Prinzip ist es ja kein Ding dort eine Lokale namens "Amount" reinzumachen, die die Menge enthält. Jedoch möchte ich es auch möglich machen, einzelne Produkte zu rabattieren. Diese sollen dann natürlich getrennt gehandhabt werden. Habt ihr eine Idee wie ich dann die Klasse unterteilen kann? Im Endeffekt wird es im VErkaufsprozess eine Liste namens products[] geben, dort soll dann im Endeffekt einmal ein Eintrag mit Menge 3 und einmal mit Menge 1 z.B. sein.

Irgendeine Idee wie man das unterscheidet?
Hoffe habe es halbwegs verständlich erklärt ;) Nebenbei erwähnt: Keine Unterrichtsaufgabe, dort lernen wir nur das schreckliche C# und dort derzeit Aufgaben im Niveau von Taschenrechnern.

LG Chris
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Naja, in meinen Augen kann ein Apfel keine Menge haben. Wenn ich eine Kiste von Äpfeln simulieren will, würde ich das auch so modellieren: Ein Container (z.B. eine Liste) von Exemplaren der Klasse Apfel. Die Länge der Liste wäre dann die vorhandene Menge. Zwei Sorten Äpfel wären dann zwei Listen.

Alternativ: Exemplar einer Klasse Produkt mit Name "Apfel Sorte 1". Dann das Exemplar als Schlüssel in ein Dictionary und als Wert die vorhandene Menge. Das kommt dann wahrscheinlich eher an die Bedürfnisse einer Warenwirtschaft heran.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Also die Frage ist ja, was ein Produkt ausmacht! Ist das eben ein Apfel / Waschmaschine / ein Reiskorn, oder soll da auch schon mit Mengen gearbeitet werden?

Ich würde mich für erstes entscheiden und dann eine Art Wrapper-Klasse "Artikel" implementieren, die Mengen und Zusammenstellungen von Produkten ermöglicht (1xApfel, 2xBirnen, 2xBananen = "Fruchtkiste 'Gesundbrunnen'").

Dazu gehört dann wiederum eine Art Einkaufskorb, in dem jedem Artikel eine Menge zugewiesen wird. (3x "Fruchtkiste 'Gesundbrunnen'", 2x...). Bezüglich des Einkauskorbes könnte man dann noch Regeln implementieren, die ab einer Anzahl Artikel Rabatte ermöglicht usw., entweder global oder für jeden Artikel im Korb separat.

Im Prinzip alles eine Frage der Komplexität. Wie fein will man abbilden?

Ich denke Gerold könnte Dir da Tipps geben; afaik ist der odch Spezialist für Kassensysteme :-)
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Gerold hat mal einige Tipps zum Thema Warenwirtschaft hier im Forum niedergeschrieben. Das Thema ist durch die vielen Sonderfälle leider alles andere als trivial.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Pekh hat geschrieben:Zwei Sorten Äpfel wären dann zwei Listen.
Oder eine Unterklasse (sagt man das so?) von Apple, z.B. Macintosh ;)
Antworten