#include"JWI_Klassen_Bestellposten.h" #include"JWI_Klassen_Datum.cpp" class Bestellung { // Attribute public: // notwendig, damit die abgeleiteten Klassen die Daten verändern können int bnr; // Bestellnummer der Kunden- bzw. Nachbestellung int gnr; // Nummer des Geschäftspartners (Kunde bzw. Lieferant) class Datum datum; // Datum der Bestellung int bearbeitet; // zeigt an, ob die Bestellung schon bearbeitet wurde // (1=bearbeitet, 0=nicht bearbeitet) BestellpostenListe postenliste; // Liste der Bestellposten, die der Bestellung zugeordnet werden // Operationen public: // Konstruktor Bestellung(int bestellungsnr=0, int geschaeftspartnernr=0) : bnr(bestellungsnr), gnr(geschaeftspartnernr), bearbeitet(0) { datum.SetzeAufAktuellesDatum(); // Liste wird durch die Aufzählung unter Attributen initialisiert } // Destruktor ~Bestellung(void) { postenliste.SetzeAufAnfang(); for(int i=1; i <= postenliste.Laenge(); i++) { postenliste.ElementLoeschen(); }; } // Daten ändern void DatenAendern(void); // Daten abfragen int HoleBestellungsNr(void); Datum HoleDatum(void); BestellpostenListe HoleBestellpostenListe(void); int HoleBearbeitet(void); // Hinzufügen eines Bestellpostens zur Bestellung, // d.h. ein Bestellposten wird an die postenliste angehängt void PostenAnhaengen(Bestellposten bestp); // Setze Bearbeitet auf 1, d.h. Bestellung bearbeitet ist wahr void SetzeBearbeitet(void) {bearbeitet = 1;}; }; // abgeleitete Klassen class Kundenbestellung: public Bestellung { // Operationen: public: // abgeleiteter Constructor Kundenbestellung(int bestellungsnr=0, int geschaeftspartnernr=0) :Bestellung(bestellungsnr, geschaeftspartnernr) {} // Destructor ~Kundenbestellung(void) {} // spezielle Daten abfragen (nur notwendig fur den angepaßen Namen der Operation) int HoleKundenNr(void); // füllt zu einer erzeugten Instanz die Daten aus; // die betellnummer, d.h. Nummer der Kundenbestellung, wird von der Verwaltungsklasse, // von der aus diese Operation aufgerufen wird, vorgegeben void Neu(int bestellungsnr); }; class Nachbestellung: public Bestellung { // Operationen: public: // abgeleiteter Konstruktor Nachbestellung(int bestellungsnr=0, int geschaeftspartnernr=0) : Bestellung(bestellungsnr, geschaeftspartnernr) {} // Destructor ~Nachbestellung(void) {} // Daten abfragen int HoleLieferantenNr(void); // neue Bestellung ausfüllen // - die Nummer der Nachbestellung wird von der Klasse Verwaltung vorgegeben void Neu(int bestellungsnr); // druckt die Nachbestellung void Drucken(void); }; // von der Klasse Liste werden weitere Klasse abgeleitet, die als Karteien bezeichtnet werden // diese Beszeichnung soll andeuten, daß diese Klasse durch Operationen erweitert werden // können, die diese Liste ggf. auf einem externen Datenträger anlegen: class NachbestellungenKartei: public Liste{}; class KundenbestellungenKartei: public Liste{};