Menu
Coddy logo textTech

Zusammenfassung: Point Manager

Teil des Abschnitts Object Oriented Programming der C-Journey von Coddy — Lektion 11 von 61.

challenge icon

Aufgabe

Einfach

Lassen Sie uns ein vollständiges Point-Modul erstellen, das eine 2D-Koordinate verwaltet. Diese Wiederholungsaufgabe führt alles zusammen, was Sie darüber gelernt haben, Structs wie Objekte zu behandeln – unter Verwendung von Pointern zur Zustandsänderung und const-Pointern für schreibgeschützte Operationen.

Sie werden drei Dateien erstellen:

  • point.h: Deklarieren Sie ein Point-Struct mit zwei Integer-Elementen: x und y. Deklarieren Sie außerdem zwei Funktionen, die als Methoden fungieren:
    • point_move — nimmt einen Pointer auf Point sowie zwei Integer (dx und dy) entgegen und verschiebt die Position des Punktes, indem diese Werte zu x und y addiert werden.
    • point_print — nimmt einen const-Pointer auf Point entgegen und zeigt dessen Koordinaten an (diese Funktion sollte den Punkt nicht verändern).
    Verwenden Sie Include-Guards mit dem Symbol POINT_H.
  • point.c: Implementieren Sie beide Funktionen. Überlegen Sie genau, welche Funktion einen regulären Pointer benötigt (um den Punkt zu verändern) und welche einen const-Pointer verwendet (um sicher ohne Änderung zu lesen).
  • main.c: Erstellen Sie einen Point, bewegen Sie ihn und zeigen Sie seine Position in verschiedenen Stadien an.

Sie erhalten vier Integer-Eingaben: das initiale x, das initiale y, den dx-Wert (Betrag der horizontalen Verschiebung) und den dy-Wert (Betrag der vertikalen Verschiebung).

Initialisieren Sie in Ihrer Hauptdatei einen Point mit den Startkoordinaten, geben Sie seine ursprüngliche Position aus, verschieben Sie ihn um die angegebenen Beträge und geben Sie dann seine neue Position aus.

Die Funktion point_print sollte in diesem Format ausgeben:

Point: ({x}, {y})

Zum Beispiel wäre bei den Eingaben 3, 5, 2 und -1 die Ausgabe:

Point: (3, 5)
Point: (5, 4)

Probier es selbst

#include <stdio.h>
#include "point.h"

int main() {
    // Eingabewerte lesen
    int x, y, dx, dy;
    scanf("%d", &x);
    scanf("%d", &y);
    scanf("%d", &dx);
    scanf("%d", &dy);
    
    // TODO: Erstelle einen Point mit den Anfangskoordinaten (x, y)
    
    // TODO: Gib die Anfangsposition mit point_print aus
    
    // TODO: Bewege den Punkt um (dx, dy) mit point_move
    
    // TODO: Gib die neue Position mit point_print aus
    
    return 0;
}

Alle Lektionen in Object Oriented Programming