Auswahlmenü ästhetisch implementieren



  • Hallo Leute,
    Ich stehe gerade mehr vor einem ästhetischen Problem.

    Ich versuche in der Konsole ein Menü mit verschiedenen Auswahlpunkten darzustellen und den User per Nummerneingabe einen hiervon auswählen zu lassen.
    In der Aufgabenstellung wird empfohlen, dieses Menü mit einer eigenen Klasse zu implementieren und für das Hauptmenü eine Instanz hiervon zu erstellen.

    Kurz zu meinem Programm:
    Es gibt verschiedene Kontotypen als verschiedene Tochterklassen einer Kontoklasse.
    Diese haben verschiedene Eigenschaften wie Kontonummer und Kontostand.
    Mit Methoden können diese Eigenschaften ausgegeben und verändert werden.

    Bis jetzt habe ich bisher in der main.cpp verschiedene Funktionen implementiert, die den User Kontoinstanzen erstellen, sowie mit diesen arbeiten lässt.
    Diese werden all durch eine Funktion Hauptmenü als Endlosschleife aufgelistet und nach einer User Auswahl aufgerufen.
    In der main() Funktion wird somit auch nur das Hauptmenü aufgerufen.

    Jetzt frage ich mich aber, wie ich das Hauptmenü mit all seinen Funktionen in einer extra Klasse darstellen soll und ob das überhaupt sinnvoller ist? Denn dann muss meine Klasse Hauptmenü ja auch meine Kontoklassen importieren, damit sie darauf zugreifen kann und somit verschiebe ich den ganzen code von der main.cpp nur in eine andere Datei hauptmenue.cpp.

    Über einen Input von euch wäre ich sehr dankbar, auch wenn programmieren nur ein Nebenfach ist, möchte ich die Basics doch sauber lernen.

    Grüße,
    Max



  • (Disclaimer: Hab deinen Beitrag nur überflogen).
    Ich vermute mal, dass das mit der Klasse wie folgt gemeint ist:
    Die Klasse Hauptmenü verwaltet intern ein std::vector von Strings mit der Beschriftung der einzelnen Menüpunkte. Dieser vector wird im Konstruktor übergeben. Desweiteren mappt sie den Index des Menüpunktes und ein Callback, was ebenfalls im Konstruktor übergeben wird.
    Eine display() Funktion gibt dann die Strings aus und fordert den Benutzer auf, einen Index einzugeben. Dann wird das entsprechende Callback aufgerufen.
    In der main wird dann nur das Menü erstellt und die Strings, sowie die Funktionspointer übergeben.



  • bigmgg schrieb:

    In der Aufgabenstellung wird empfohlen, dieses Menü mit einer eigenen Klasse zu implementieren

    http://www.c-plusplus.net/forum/303169



  • Danke für eure Antworten.
    Das mit den Vektoren muss ich mir noch genauer ansehen. Aber so wie ich das verstanden habe, muss ich dann ja trotzdem in meiner main() noch das verhalten bei bestimmten Auswahlen im Menü definieren.
    Muss leider erst noch ein paar andere Hausaufgaben vorschieben. In ein paar Tagen komme ich darauf zurück



  • bigmgg schrieb:

    Das mit den Vektoren muss ich mir noch genauer ansehen. Aber so wie ich das verstanden habe, muss ich dann ja trotzdem in meiner main() noch das verhalten bei bestimmten Auswahlen im Menü definieren.

    Nicht zwangsweise. Wenn man einen Menüpunkt auch noch einen Funktionszeiger hinterlegt, oder um allgemeingültiger zu sein einen Funktor (siehe hierzu u.a. std::bind/std::function), kann man auch das Verhalten an den Menüeintrag binden.


Anmelden zum Antworten