Frage zu Klassen/Struct



  • Einen sehr guten Morgen gewünscht,

    Ich bräuchte ein kleines Feedback ob meine übungsaufgabe richtig ist(ist eine übung für ne prüfung..)
    FOlgende Aufgabe:

    http://s1.directupload.net/images/140709/ps4fydy4.png

    2,1)

    struct TC{
      int Ziel-PLZ;
      float LeerGew;
      float MaxGew;
      float MaxVol;
      float AktGew;
    }
    

    2,2)

    struct TP {
      int PLZ;
      float Gew;
      float Vol;
      TP *nxt;
    } Paket;
    ...
    
    class clC{
     public:
       Ins(Paket);
       Del(Paket);
    }
    

    2,3)

    clC Pak[10];
    

    Schonmal ein grosses Dankeschön im Vorraus!
    LG



  • newinc schrieb:

    int Ziel-PLZ;
    

    Das hier kann schon mal nicht stimmen. Der Bindestrich ist ein Operator und kann nicht Teil eines Bezeichners sein.

    newinc schrieb:

    struct TP {
      int PLZ;
      float Gew;
      float Vol;
      TP *nxt;
    } Paket;
    

    Hier instanziierst duch TP ein Mal. Das ist bestimmt nicht was du möchtest (denn das ist in der Aufgabe auch gar nicht gefordert).

    newinc schrieb:

    class clC{
     public:
       Ins(Paket);
       Del(Paket);
    }
    

    Den Methoden fehlt der Parametertyp. Dieser sollte laut Aufgabenstellung TP TC sein.

    Edit: Ich verstehe nicht ganz wieso die Aufgabenstellung erwartet, dass TC und clC unterschiedliche Klassen sein sollen...

    Der Rest entspricht der Aufgabenstellung soweit ich das beurteilen kann.



  • Leider eine schlechte Aufgabe. Sollst Du da jetzt Software entwickeln, oder die schlechte Architektur des Aufgabenstellers(AS) implementieren?

    TC hat einige Probleme. Erstmal ist das - ("minus") im Namen Ziel-PLZ nicht erlaubt. )
    Ausserdem nehme ich an, dass der AS einen TP
    in TC sehen will, damit ein TC als Kopf einer verketteten Liste von TP benutzt werden kann.

    Klasse clC müsste wohl ein TC besitzen. Ausserdem definierst Du ein Objekt der Klasse TP ("Paket") in Z. 6.
    Ein bestimmtes Objekt hat aber in der Schnittstelle von clC nix verloren, die verlangt Typen. Das müsste wohl irgendwie so aussehen

    class clC{
     TC container_;
     public:
       Ins(TP*);
       Del(TP*);
    };
    

    Diese Teilung in TC und clC ergibt meiner Meinung nach nur Sinn, wenn man schön Schnittstelle von Implementierung trennen will. Allerdings sollte die Aufgabe dann auch nur die Anforderung an die Schnittstelle beschreiben.

    Wirklich ärgerlich schlecht - ich hoffe das hat nix mit einer Hochschule zu tun...

    😉 Schönerweise, kannst Du aber wirklich mit den PLZ rechnen. Z.B. die Summe aller PLZs eines Containers berechnen! Oder mehrere PLZ gleichmässig skalieren z.b: mit 1/2 multiplizieren, oder so.
    Sa-gen-haft! 😉
    (Kurz: Das war Ironie. Eine PLZ ist kein int, sondern eine Zeichenkette.)


Log in to reply