Einfacher c++ algo

js-mueller

Erfahrenes Mitglied
Hi

ich habe mal vor zum üben nen kleinen konsolen taschenrechner zu basteln.
Im moment habe ich diesen code
Code:
int main()
{       int menu;

        cout << "Taschenrechner v. 0.1" << endl << endl;
        cout << "<1> Addieren" << endl;
        cout << "<2> Multiplizieren" << endl;
        cin >> menu;

        if(menu == 1){
                cout << "Sie haben addieren gewählt";
        }
        else if(menu == 2){
                cout << "Sie haben Multiplizieren gewählt";
        }
        return 0;
}
Das Soll nur die menu strucktur werden erstmal :)
das was mich bewgt ist, wie kann ich die konsole "löschen". Also das wenn ich die option addieren wähle, ich ein neues menu "addieren" bekomme und nicht darüber noch das alte menu habe. Ich hoffe ihr versteht was ich meine, ich möchte halt net alles untereinander schreiben. Welchen befehl brauche ich dafür?
Und wie kann ich die optionen verwerten, ohne das ich enter drücken muss? Wäre schon schöner ohne die neter bestätiung.

Danke schonmal für die hifle
 
Zu 1:

Die Konsole kannst du mit system("cls") löschen. Sicher gibt es da noch ander Möglichkeiten, aber das ist denke ich am einfachsten. Geht aber denke ich nur unter Windows nicht unter UNIX.

Zu 2:

Versuch es mal mit getch() oder kbhit()


Gruss Homer
 
thx
brauch ich für system(clx) oder die anderen beiden befehle noch nen neuen header die ich einbinden muss?

edit:

ich habe 3 neue fragen
1. Wie kann ich mein programm beenden?
2. Wie kann ich zum menu zurückkehren? Wenn ich main(); aufrufe, bekomme ich immer einen error
3. Gibts die msdn auch auf deutsch :D
 
Zuletzt bearbeitet:
dein programm beenden?
mit return;
das beendet eine funktion, und in dem fall auch dein programm, wenn es die main() funktion ist...


poste mal den code, normal sollte es gehen, wenn du die main() funktion einfach wieder aufrufst :rolleyes:
aber du kannst ja auch sprung marken setzen, ist vieleicht nicht der beste weg, aber es geht

Code:
int main()
{       int menu;
marker:
        cout << "Taschenrechner v. 0.1" << endl << endl;
        cout << "<1> Addieren" << endl;
        cout << "<2> Multiplizieren" << endl;
        cout << "<3> Beenden" << endl;
        cin >> menu;

        if(menu == 1){
                cout << "Sie haben addieren gewählt";
                goto marker;
        }
        else if(menu == 2){
                cout << "Sie haben Multiplizieren gewählt";
                goto marker;
        }
        else if(menu == 3)
                return 0;

        return 0;
}
 
Das mit dem Menü würd ich am besten mit ner Schleife machen!
Wie willste denn bitte die Funktion main() aufrufen? In der bist
du doch immer!?!!
Am besten du besorgst dir erstmal ein Grundlagen Tut über C++

Hier mal der Code, so wie ich das machen würde =)
Code:
int main()
{       
        char menu;
        while(menu != '0')
        {
          cout << "Taschenrechner v. 0.1" << endl << endl;
          cout << "<1> Addieren" << endl;
          cout << "<2> Multiplizieren" << endl;
          cout << "<0> Ende << endl;
          cin >> menu;
          switch(menu)
            {
             case '1': cout << "Sie haben addieren gewählt";
             break;
             case '2': cout << "Sie haben Multiplizieren gewählt";
             break;
             case '0': menu = '0';
             break;   
             default: cout << "Falsche Eingabe!" << endl;
             }
          }
return 0;
}

Hoff mal da ist alles richtig, hab das jetzt schnell ausm Kopf gemacht!
Greetz...
 
Zuletzt bearbeitet:
K thx so funktioniert das ganz gut :)

Ich wollte mal nachfragen wie das mit funktionen aussieht.
Ich bin an der stelle in meinem buch noch net angekommen. Wollte mal vorfragen ;)
Also wo deklariere ich die am besten? Vor oder nacht main() ?
also ich hab mal geshen das vor main void funktion(){} steht und nach main die funktion erst richtig definiert wird, also was se kann usw. Aber wenn ich sowas mache funktioniert das net. Er sagt immer das die funktion schon definiert wurde, also wenn er die nach dem main parsed
 
Code:
#include <iostream.h>

int funktion(int x);

int main()
{
     cout << funktion(1) << endl;
     return 0;
}

int funktion(int x)
{
     return x;
}

int funktion(int x); <- ist ein sogenannter prototyp
das muss funktionieren...

es kommt auf die größe meines programms an... wenn es groß ist, und sich viel in der main funktion abspielt, nehm ich immer prototypen und mach den rest unter main... aber das ist eigentlich egal.. das programm läuft dadurch weder stabiler, noch schneller.. oder so^^
 
Zuletzt bearbeitet:
Also ich scheib die immer vor main()
weil du die 1. sowieso dort deklariern musst
und 2. wenn du z.B. C++Builder nutzt, dann
werden immer wieder Funktionen für Ereignisse
unten angehängt und du kommst voll durcheinander.

Greetz...
 
So das ist mein code im moment. Jetzt habe ich ein Problem. Er ruft immer die leere funktion auf. Also er geht net in ie funktion id eich unter mein definiert habe.

Code:
#include <iostream.h>

int addieren (int menu);

int main()
{
    int menu;

    switch( menu )
    {
        case '0':

                break;

        case '1':

            addieren(menu);

                break;

        default:

            system("cls");

            cout << "Taschenrechner v. 0.1" << endl << endl;
            cout << "<1> Addieren" << endl;
            cout << "<2> Multiplizieren" << endl;
            cout << "<0> Ende" << endl;
            cin >> menu;

                break;
    }

    return 0;
}

int addieren(int menu)
{
    system("cls");

    cout << "Sie haben addieren gewählt" << endl;
    cout << endl << endl;
    cout << "<1> Neue Addition" << endl;
    cout << "<0> Ende" << endl;
    cin >> menu;

    return menu;
}
 
Öhm, du hast auch die Reihenfolge n bißchen durcheinander gebracht,
so wie ich das sehe...

Du musst je erst der Variable menu einen Wert geben, also
über cin >> in deinem Fall
und dann switch() mit der Variable aufrufen.

Und warum du den Wert von menu als Parameter an die Funktion
Addieren() übergibst ist mir auch nicht ganz verständlich!!!
 
Zurück