Problem mit "Taschenrechner"



  • Wenn ich folgenden Code am anfang setze kommt er erst ab

    cout<< "|= /-Quadratzahl     (7) |                      =|"<<endl;
              cout<< "|= /-Pythagoras      (8) |                      =|"<<endl;
    

    was ust falsch??

    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    #include <stdlib.h>
    #include <math.h>
    #define pi 3.14159265358979323846
    
    int main()
    {
        int exit;
       double zahl1;
       double zahl2;
       double zahl3;
       double zahl4;
       int auswahl1;
       int auswahl2;
    
       menu:
       {
           system("cls");
           cout<< "-Hauptmenu-" <<endl;
           cout<< "|================================================|"<<endl;
           cout<< "|= /-Rechner         (1) | /-Lalalalalal^^ (9)  =|"<<endl;
           cout<< "|= ----------------------|--------------------  =|"<<endl;
           cout<< "|= /-Exit            (0) |                      =|"<<endl;
           cout<< "|================================================|"<<endl;
    
          cin >> auswahl1;
    
          if (auswahl1==0)
          {
              goto close;
          }
          if (auswahl1==1)
          rechner:
          {
              system("cls");
              cout<< "|================================================|"<<endl;
              cout<< "|= /-Grundrechenarten:   | /-Flaecheninhalte:   =|"<<endl;
              cout<< "|= ----------------------|--------------------  =|"<<endl;
              cout<< "|= /-Addition        (1) | /-Dreieck       (9)  =|"<<endl;
              cout<< "|= /-Subtraktion     (2) | /-Rechteck     (10)  =|"<<endl;
              cout<< "|= /-Multiplikation  (3) | /-Quadrat      (11)  =|"<<endl;
              cout<< "|= /-Division        (4) | /-Raute        (12)  =|"<<endl;
              cout<< "|= /-Alles           (5) | /-Trapez       (13)  =|"<<endl;
              cout<< "|= /-Wurzel          (6) | /-Kreis        (14)  =|"<<endl;
              cout<< "|= /-Quadratzahl     (7) |                      =|"<<endl;
              cout<< "|= /-Pythagoras      (8) |                      =|"<<endl;
              cout<< "|=                       |                      =|"<<endl;
              cout<< "|= ======================|====================  =|"<<endl;
              cout<< "|= /-Umfaenge:           | /-Formeln:           =|"<<endl;
              cout<< "|= ----------------------|--------------------  =|"<<endl;
              cout<< "|= /-Kreis          (15) | /-Kreis        (21)  =|"<<endl;
              cout<< "|= /-Rechteck       (16) | /-Rechteck     (22)  =|"<<endl;
              cout<< "|= /-Quadrat        (17) | /-Quadrat      (23)  =|"<<endl;
              cout<< "|= /-Raute          (18) | /-Raute        (24)  =|"<<endl;
              cout<< "|= /-Trapez         (19) | /-Trapez       (25)  =|"<<endl;
              cout<< "|= /-Dreieck        (20) | /-Dreieck      (26)  =|"<<endl;
              cout<< "|=                       | /-Prozent      (27)  =|"<<endl;
              cout<< "|=                       |                      =|"<<endl;
              cout<< "|= ======================|====================  =|"<<endl;
              cout<< "|= /-Prozentrechnung:    |                      =|"<<endl;
              cout<< "|= ----------------------|--------------------  =|"<<endl;
              cout<< "|= /-Grundwert      (28) |                      =|"<<endl;
              cout<< "|= /-Prozentwert    (29) |                      =|"<<endl;
              cout<< "|= /-Prozentsatz    (30) |                      =|"<<endl;
              cout<< "|= ----------------------|--------------------  =|"<<endl;
              cout<< "|= /-Exit            (0) |                      =|"<<endl;
              cout<< "|================================================|"<<endl<<endl;
             cin >> auswahl2;
    


  • Geht es noch ungenauer?
    Kannst Du Dein Problem etwas besser Beschreiben!



  • ich rate mal blind, dass du so viel auf einmal ausgibst das das davor nicht mhr angezeigt wird.

    C++ler schrieb:

    Wenn ich folgenden Code am anfang setze kommt er erst ab [...]

    Heißt das: "Wenn das Programm gestartet wird, wird nur folgender Text angezeigt: ..."?



  • Ja er biginnt nicht bei der Überschrift grundrechenarten sondern bei der (7) quadratzahlen:

    http://www.uploadking.de/out.php/i41765_Problem.jpg



  • menu:
    
              goto close;
    
          rechner:
    

    *pfui* und *bäh*
    😉



  • das hilft mir beim problem recht wenig



  • 1. Der zeigt schon den ersten Eintrag an, Du musst nur mal nach oben Scrollen, weil das Menü nach oben geschoben wird.

    2. Bist Du im falschen Forum, C++ wäre besser.

    3. Warum verwendest Du nicht Pi aus Math.h?



  • und vor allem: lass das eklige "goto" weg.



  • denjo303 schrieb:

    und vor allem: lass das eklige "goto" weg.

    Stimmt, absolut böse.
    Eine Unsitte aus VB. 🙄



  • Ich kann nicht scrollen.
    Das ist ja das problem.und vergrößern auch nicht.



  • ich kenn mich mit Konsole nicht so aus, aber kann man den Buffer nicht nach unten erweitern das die Konsole ein wenig länger wird??



  • Wenn die Anzahl der Zeilen nicht reicht, hilft vielleicht noch ein Menu, wo man zwischen GrundrechenArten, Formeln, ProzentRechnung etc.... auswählen kann. Das macht Dein Programm vielleicht auch etwas übersichtlicher für den Nutzer.

    Und:! Gegen ein gut überlegtes goto ist nichts einzuwenden. Das spart manchmal nen Haufen Arbeit.

    Mfg, tom.



  • TomMeier schrieb:

    Und:! Gegen ein gut überlegtes goto ist nichts einzuwenden. Das spart manchmal nen Haufen Arbeit.

    Du hast NULL Ahnung vom Programmieren ... GOTO habe ich das letzte mal auf dem AmigaBASIC verwendet - vor 15 Jahren ... mit GOTO hast Du mehr Probleme also Du damit löst



  • TomMeier schrieb:

    Und:! Gegen ein gut überlegtes goto ist nichts einzuwenden. Das spart manchmal nen Haufen Arbeit.

    Mfg, tom.

    Das ist richtig richtig schlechter Stil. Wenns arbeit erspart, wieso überspringt man einen Code den man vorher mühevoll geschrieben hat?

    Es gibt viel elegantere Lösungen wie ganz einfache if verzweigungen, switch etc..
    Dagegen ist ein schmieriges goto nur für die mülltonne. Du läufts mit goto immer gefahr variablen initialisierungen zu überspringen/vergessen was Katastrophale folgen haben kann!



  • Sicher, läßt es sich hier eleganter lösen.
    Gut wäre es die Menus in einzelne Funktionen zu packen, und von da aus zu verzweigen.
    Aber wenn man anfängt zu programmieren, dürfen Programme auch ein wenig holprig
    aussehen. Man verwendet bei neuen ProgrammierSprachen immer zuerst, was man schon
    kennt.
    C++´ler hat auch nicht nicht nach einer Einschätzung seines ProgrammierStils ge-
    fragt.

    MfG, tom.



  • TomMeier schrieb:

    Aber wenn man anfängt zu programmieren, dürfen Programme auch ein wenig holprig
    aussehen. Man verwendet bei neuen ProgrammierSprachen immer zuerst, was man schon
    kennt.
    C++´ler hat auch nicht nicht nach einer Einschätzung seines ProgrammierStils ge-
    fragt.

    MfG, tom.

    Ach Gott, liebes Lieschen.

    Genau das sollte nicht der Fall sein, er sollte sich nach Möglichkeit an den Stil halten.
    Wenn er heute Goto verwendet, dann wird er aus Bequemlichkeit "Goto" wohl noch in 10 Jahren verwenden.
    Das ist nicht gut.
    Er kann aus einer if-Anweisung oder switch-case dierekt auf eine Methode oder Funktion zugreifen, warum dieses Goto?
    Und die Einschätzung seines Programmierer-Stils bekommt er hier Gratis, kost nix und ist frei Haus, hat nix mit Klugschiss zu tun.



  • TomMeier schrieb:

    Man verwendet bei neuen ProgrammierSprachen immer zuerst, was man schon kennt.

    wir machen das schon seit mehr als 30 Jahren so - seit mehr als 30 Jrahen stürzt auch immer alles ein



  • TomMeier schrieb:

    Man verwendet bei neuen ProgrammierSprachen immer zuerst, was man schon kennt.

    Ich bin auch der meinung man sollte sich gleich richtig an was neues gewöhnen und nicht versuchen das alte wissen zur überbrückung zu nutzen. das haut meisstens nie hin.



  • Mag alles richtig sein. 🙂
    Nur geholfen hat es ihm leider nicht.
    Schade!



  • Wenn er die Vorschläge von uns nicht umsetzt wird er immer da stehen bleiben wo er im Moment ist.

    Er soll doch bitttttteeeeeeee die Größe seiner Console verändern...Büddddde...

    www.rb-softarticle.com/GehtDoch.bmp


Log in to reply