Konsolen Menü struckturieren

js-mueller

Erfahrenes Mitglied
Hi

ich möchte ein Programm für die Konsole schreiben. Da ich noch neu in C++ bin weiss ich noch nicht sehr viel über möglichkeiten deswegen frag ich hier mal nach.
Also mir geht es nicht darum das man sich toll "durcklicken" kann, sondern wie ich das von der technik her umsetze.
Im moment mach ich das immer so das ich mit cin nen int wert einlese und dann mit ner switch anweisung den int Wert auswerte und die entsprechenen Prozeduren ausführe.
Aber irgendwie kommt mir das ziemlich aufgebläht und schlecht vor. Es ist nicht so richtig vielseitig einsetzbar.
Ich hoffe ihr habt ein paar Ideen wie man eine Menü führung in der Konsole realisieren kann. Ich möchte aber noch sagen das ich nCurses kenne, aber es gerne selbst programmieren möchte und nicht einfach was vorgefertigtes haben möchte. Hat ja keinen Lerneffekt...

Ich hoffe ihr habt nen paar schöne ideen
 
tschuldigung für den Doppelpost, aber ich muss sagen bin echt erstaunt das keiner für mich nen Tipp auf Lager hat.
Sonst gibt es doch immer recht viel verwertbares zu lesen.
 
Na ja, ich selbst habe aus folgenden Gründen nicht geantwortet: Erstens kenne ich nCurses nicht (Was ist das?) und ausserdem scheint deine Lösung auch ganz gut zu funktionieren -- ich würde es vermutlich genauso angehen: Mit switch-Anweisungen. Was willst du mehr bei einer Konsolen(!)-Anwendung?
Abgesehen davon werden längst nicht alle Fragen bereits innerhalb von 24 Stunden beantwortet. Also geduldige dich noch ein bißchen, vielleicht hat ja noch jemand eine gute Idee (im Gegensatz zu mir! :-) )
 
nCurses ist eine Bibliothek unter Linux mit der man sich schöne Programme mit Menüs baun kann usw.
Also was ich an meinem System sehr unvorteilhaft finde. Wenn das Programm etwas größer wird und sagen wir mal 15 Menüpunkte hat, dann wird die main Funktion recht gross weil die switch anweisung so anwechst. Es steht ja in jedem Unterpunkt nen kompletter Code für einen abschnitt.
Es müssen ja nichtmal 15 Hauptpunkte sein, können ja auch untermenüs sein, aber aufgeführt werden Sie da ja trotzdem.
 
was besseres als in eventuellen Funktionen aufgeteilten switch Anweisungen fällt mir nichts ein ... wozu auch ist doch recht übersichtlich ...
 
...Da ich noch neu in C++ bin weiss...
Du möchtest doch ne C++ Lösung oder?
Also da du ja schon angedeutet hast, daß du mehrere Programme machen willst, würde ich eine "Universallösung" vorschlagen.
Ich weiß leider nicht wie weit deine Kenntnisse für OOP reichen, außerdem würdest du Funktionszeiger benötigen. (Is nicht Jedermanns Sache).
Also ich erklär mal kurz:
Du erstellst dir eine Klasse, die sich selbst verwaltet, also das ganze Menü verwaltet sich selbst inerhalb der Klasse.
Die Klasse hat als "Hauptattribut einen Vektor/Array, zur Aufnahme der Menüpunkte und ihrer zugehörigen Funktionen.
Dann hat die Klasse Methoden zum Zeichnen des Menüs (auf der Konsole wohlgemerkt, nicht das hier jemand was falsches versteht), zum einlesen und verarbeiten der Benutzereingaben und zum Aufrufen der Funktionen der Menüpunkte (die ohne weiteres außerhalb der Klasse liegen können, bzw. sogar sollen, dafür die Funktionszeiger).

Das klingt jetzt zwar ziemlich kompliziert, ist aber denke ich auch sehr universell einsetzbar.
Da ich deinen Wissenstand nicht kenne, weiß ich auch nicht ob das für dich zu kompliziert ist, aber ich habe meinen Gedanken einfach mal freien Lauf gelassen :-), also wenn du jetzt denkst: "was will der eigentlich von mir?" dann vergiss meinen Post einfach, aber wenn du denkst, klingt ja interessant, dann melde dich einfach nochmal.

Gruß Homer
 
Uh, harter Stoff. Daniel, er schreibt im ersten Post, dass er C++-Anfänger ist. Hast aber recht. Das wäre die richtige Herangehensweise.

Ich weiß leider nicht wie weit deine Kenntnisse für OOP reichen, außerdem würdest du Funktionszeiger benötigen.
Funktionszeiger sind aber eher was für C, nicht für C++. Obwohl sie auch da ziemlich nützlich sein können. :)
 
Uh, harter Stoff. Daniel, er schreibt im ersten Post, dass er C++-Anfänger ist. Hast aber recht. Das wäre die richtige Herangehensweise.
Schon klar, aber wenn ein wenig Grundkenntnisse von Klassen vorhanden ist, dann ist das auch kein Hexenwerk.

Funktionszeiger sind aber eher was für C, nicht für C++. Obwohl sie auch da ziemlich nützlich sein können.
Das stimmt schon die gibts schon ewig seit C.
Aber in verbindung mit OOP bzw. C++ sind Funktionszeiger ein mächtiges Werkzeug, wer sie einzusetzen weiß :-).

Gruß Homer
 
Danke ich werd mir das mal so angucken.
Mit OOP kenn ich mich schon ein bischen aus nur mit Polymorphie hackts noch son bischen, aber dass wird sich auch noch demnächst lösen lassen.
Nur eine kleine Frage was ist ein vektor und wie verwende ich ihn?
 
Zurück