[HELP] Programm fertig leider viele Bugs.
-
du solltest vll auch beachten das man switches eher benutzen soll wenns mehr als 2 fälle sind. bei der menue1 sache sinds 12 das ist ok, aber bei 2en zB deiner "beenden" abfrage ists nur unübersichtlich.
Wie SideWinder schon sagte sind deine switches eh falsch.
Dazu kommt das du dir vll gedanken machen solltest eine schleife zu benutzen, in der du immer wieder die berechnungen und eingaben machst mis jemand bei der abfrage obs weiter gehen soll "nein" eingibt.
dazu solltest du dir überlegen ob du die einzelnen berechnungen nicht in funktionen packen solltest.Nur mal so als vorschlag
-
Jo, hier liegt ganz klar scherwer Fall von Spaghetticode vor (und das ganz ohne goto)
MfG SideWinder
-
JO danke ! Aber ka wie ich es machen soll. In der Schule sind wir erst bei Hello World. Hab mir versucht zuhause weitere Sachen bei zu bringen.
Naja kommt nur scheisse bei rum. 
-
mose was muss man rauchen um solch kranken code zu schreiben?
-
-
Wieso ist der code krank? der ist logisch aufgebaut ! Wenn manw eiss wie kann man den verstehen. Ahja sowas finde ich irgentwie feige. Die Person anzugreifen weil er so einen Code geschrieben hat. Besonders wenn er versucht sich das grad an zu eignen.
-
@mose: Nimms doch nicht persönlich, hier bist du im Internet. Der kann dich vollkommen anonym und zum Spaß angreifen und du regst dich auf obwohls gar nicht nötig ist. Lass ihn reden

MfG SideWiner
-
Mich regt es auf das so welche Leute nicht normal reden können. Müssen sofort die anderen angreifen ! Die sind im RL genau so drauf!
-
mose schrieb:
Wieso ist der code krank? der ist logisch aufgebaut ! Wenn manw eiss wie kann man den verstehen.
dass ist das problem: man kann nicht selber drauf kommen, sondern man muss den code selber geschrieben haben

gute Klammerung trägt viel zur lesbarkeit bei, da man genau sieht wo etwas anfängt und wo etwas aufhört.
und...das ganze ist viel zulang. das ist einfach nicht wartbar. stell dir vor: bei deinem copy&paste ist dir an einer stelle ein fehler unterlaufen, der jetzt natürlich überall vorkommt. anstatt an einer stelle korrigieren zu müssen, musst du es jetzt an x stellen tun. Und du wirst wohl zugeben, dass dies nicht sinn der sache sein kann.
-
mose lerne es kleine funktionen zu schreiben. dann siehts nicht mehr so krank aus.
-
JO da hasse recht. leider kann ich noch nichts anderes.
-
otze schrieb:
stell dir vor: bei deinem copy&paste ist dir an einer stelle ein fehler unterlaufen, der jetzt natürlich überall vorkommt. anstatt an einer stelle korrigieren zu müssen, musst du es jetzt an x stellen tun. Und du wirst wohl zugeben, dass dies nicht sinn der sache sein kann.
Schon geschehen die konstante Pi ist falsch. Kommt im programm min 7x vor.
Sowas solltest du wirklich vermeiden.
Kurt
-
LOL
-
SOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
Habe das alles überarbeitet. Naja ich hoffe es ist diesmahl besser. Ahja wenn ihr eine verbesserung habt bitte postet den Quelltext davon und erklärt die Befehle. Denn ich kann damit sonst nichts anfangen. DANKE#include <iostream> #include <cstdlib> #include<string> int main() { string figure[]={"das Rechteck","das Parallelogramm","das Dreieck","das Trapez", "den Kreis","den Sektor"," den Quader","das Prisma","den Zylinder", "die Pyramide","den Kegel","die Kugel"}; int Menue1; int Menue2; int Menue3; const float Pi=3.141592654; cout<<"[0]Beenden "<<endl; cout<<"[1]Rechteck"<<endl; cout<<"[2]Parallelogramm"<<endl; cout<<"[3]Dreieck"<<endl; cout<<"[4]Trapez"<<endl; cout<<"[5]Kreis: Flaecheninhalt"<<endl; cout<<"[6]Kreisausschnit (Sektor)"<<endl; cout<<"[7]Quader"<<endl; cout<<"[8]Prisma(gerades)"<<endl; cout<<"[9]Zylinder"<<endl; cout<<"[10]Pyramide"<<endl; cout<<"[11]Kegel"<<endl; cout<<"[12]Kugel"<<endl; cin>>Menue1; if(Menue1==0) return 0; switch(Menue1) cout<<"Sie haben "<<figure[Menue1-1]<<" gewaehlt."<<endl; switch(Menue1) case 1: cout<<"Formeln"<<endl; cout<<"Flaecheninhalt:A=a*b"<<endl; cout<<"Umfang: U=2a+2b"<<endl; { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; float a; float b; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Flaecheninhalt: A=a*b"<<endl; cout<<"[2]Umfang: U=2a+2b"<<endl; break; } cin>>Menue3; { cout<<"Bitte geben Sie den Faktor a an."<<endl; cin>>a; cout<<"Bitte geben Sie den Faktor b an."<<endl; cin>>b; } switch(Menue3) { case 1: cout<<"Der Flaecheninhalt ist: "<<(a*b)<<endl; break; case 2: cout<<"Der Umfang ist: "<<(a+a+b+b)<<endl; break; } } switch(Menue1) case 2: cout<<"Formeln"<<endl; cout<<"Flaecheninhalt:F=g*h"<<endl; cout<<"Umfang: U=2a+2b"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float a; float b; float h; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Flaecheninhalt:A=g*h"<<endl; cout<<"[2]Umfang:U=2a+2b"<<endl; break; cin>>Menue3; } { cout<<"Bitte geben Sie den Faktor a an."<<endl; cin>>a; cout<<"Bitte geben Sie den Faktor b an."<<endl; cin>>b; } switch(Menue3) { case 1: cout<<"Bitte geben Sie die Hoehe an"<<endl; cin>>h; cout<<"Die Flaeche ist: "<<(a*b*h)<<endl; break; case 2: cout<<"Der Umfang ist: "<<(a+a+b+b)<<endl; break; } } switch(Menue1) case 4: cout<<"Formeln"<<endl; cout<<"Flaecheninhalt:A=a+c/2*h"<<endl; cout<<"Umfang: U=a+b+c+d"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float a; float b; float c; float d; float h; const int zwei=2; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Flaecheninhalt:A=a+c/2*h"<<endl; cout<<"[2]Umfang:U=U=a+b+c+d"<<endl; cin>>Menue3; } cout<<"Bitte geben Sie den Faktor a an."<<endl; cin>>a; switch(Menue3) { case 1: cout<<"Bitte geben Sie Faktor c an"<<endl; cin>>c; cout<<"Bitte geben Sie die Höhe an"<<endl; cin>>h; cout<<"Die Flaeche ist: "<<(a+c/2*h)<<endl; break; case 2: cout<<"Bitte geben Sie Faktor c an"<<endl; cin>>c; cout<<"Bitte geben Sie Faktor d an"<<endl; cin>>d; cout<<"Der Umfang ist: "<<(a+b+c+d)<<endl; break; } } switch(Menue1) case 5: cout<<"Formeln"<<endl; cout<<"Flaecheninhalt:A=Pi*r^2=Pi*d^2/4"<<endl; cout<<"Umfang:U=Pi*d=2*Pi*r"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float r; float d; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Flaecheninhalt:A=Pi*r^2=Pi*d^2/4"<<endl; cout<<"[2]Umfang:U=Pi*d=2*Pi*r"<<endl; cin>>Menue3; } switch(Menue3) { case 1: cout<<"Bitte geben Sie den Radius an."<<endl; cin>>r; cout<<"Die Flaeche ist: "<<(Pi*r*r)<<endl; break; case 2: cout<<"Bitte geben Sie den Durchmesser an."<<endl; cin>>d; cout<<"Der Umfang ist: "<<(Pi*d)<<endl; break; } } switch(Menue1) case 6: cout<<"Formeln"<<endl; cout<<"Kreisausschnitt:A=Pi*r^2*Alpha/360^2"<<endl; cout<<"Umfang:U=Pi*r^2*Alpha/180"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float r; float Alpha; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Flaecheninhalt:A=Pi*r*r*Alpha/360*360"<<endl; cout<<"[2]Umfang:U=Pi*r*r*Alpha/180"<<endl; cin>>Menue3; } { cout<<"Bitte geben Sie den Radius an."<<endl; cin>>r; cout<<"Bitte geben Sie Alpha an."<<endl; cin>>Alpha; } switch(Menue3) { case 1: cout<<"Die Flaeche ist: "<<(Pi*r*r*Alpha/360*360)<<endl; break; case 2: cout<<"Der Umfang ist: "<<(Pi*r*r*Alpha/180)<<endl; break; } } switch(Menue1) case 7: cout<<"Formeln"<<endl; cout<<"Volumen: V= a*b*c"<<endl; cout<<"Oberflaeche: O=2ab+2ac+2bc"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float a; float b; float c; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Volumen: V=a*b*c"<<endl; cout<<"[2]Oberflaeche: O=2ab+2ac+2bc"<<endl; cin>>Menue3; } { cout<<"Bitte geben Sie Faktor a an."<<endl; cin>>a; cout<<"Bitte geben Sie Faktor b an."<<endl; cin>>b; cout<<"Bitte geben Sie Faktor c an."<<endl; cin>>c; } switch(Menue3) { case 1: cout<<"Das Volumen ist: "<<(a*b*c)<<endl; break; case 2: cout<<"Das Volumen ist: "<<(a*b+a*b+a*c+a*c+b*c+b*c)<<endl; break; } } switch(Menue1) case 8: cout<<"Formeln"<<endl; cout<<"Volumen: V=G*h"<<endl; cout<<"Oberflaeche: O=2G+M"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float g; float h; float u; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Volumen: V=G*h"<<endl; cout<<"[2]Oberflaeche: O=2G+M"<<endl; cin>>Menue3; } { cout<<"Grundfläche "<<endl; cout<<"____________________________"<<endl; cout<<"Bitte geben Sie Faktor g an."<<endl; cin>>g; cout<<"Bitte geben Sie Faktor h an."<<endl; cin>>h; cout<<"Mantelfläche"<<endl; cout<<"___________________________"<<endl; cout<<"Bitte geben Sie Faktor u an."<<endl; cin>>u; } switch(Menue3) { case 1: cout<<"Das Volumen ist: "<<(g*h/2*(u*h))<<endl; break; case 2: cout<<"Das Oberflaeche ist: "<<(g*h/2*g*h/2+u*h)<<endl; break; } } switch(Menue1) case 9: cout<<"Formeln"<<endl; cout<<"Volumen: V=Pi*r*r*h"<<endl; cout<<"Oberflaeche: O=M+2G=2*Pi*r*h+2*Pi*r*r"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float h; float r; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Volumen: V=Pi*r*r*h"<<endl; cout<<"[2]Oberflaeche: O=M+2G=2*Pi*r*h+2*Pi*r*r"<<endl; } cin>>Menue3; { cout<<"Bitte geben Sie Faktor h an."<<endl; cin>>h; cout<<"Bitte geben Sie Faktor r an."<<endl; cin>>r; } switch(Menue3) { case 1: cout<<"Das Volumen ist: "<<(Pi*r*r*h)<<endl; break; case 2: cout<<"Das Oberflaeche ist: "<<(2*Pi*r*h+2*Pi*r*r)<<endl; break; } } switch(Menue1) case 10: cout<<"Formeln"<<endl; cout<<"Volumen: V=1/3*G*h"<<endl; cout<<"Oberflaeche: O=G+M"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float a; float h; float hs; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Volumen: V=1/3*G*h"<<endl; cout<<"[2]Oberflaeche: O=G+M"<<endl; cin>>Menue3; } { cout<<"Bitte geben Sie Faktor a an."<<endl; cin>>a; cout<<"Bitte geben Sie Faktor h an."<<endl; cin>>h; cout<<"Bitte geben Sie Faktor hs an."<<endl; cin>>hs; } switch(Menue3) { case 1: cout<<"Das Volumen ist: "<<(1/3*a*a*h)<<endl; break; case 2: cout<<"Das Oberflaeche ist: "<<(a*a+a*hs/2)<<endl; break; } } switch(Menue1) case 11: cout<<"Formeln"<<endl; cout<<"Volumen: V=1/3G*h=1/3*Pi*r^2*h"<<endl; cout<<"Oberflaeche: O=G+M=Pe*r^2+Pi*r*S"<<endl; cout<<"Mantelflaeche: M=Pi*r*s"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float r; float h; float s; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Volumen: V=1/3G*h=1/3*Pi*r*r*h"<<endl; cout<<"[2]Oberflaeche: O=G+M=Pi*r*r+Pi*r*S"<<endl; cout<<"[3]Mantelflaeche: M=Pi*r*s"<<endl; cin>>Menue3; } { cout<<"Bitte geben Sie Faktor r an."<<endl; cin>>r; cout<<"Bitte geben Sie Faktor h an."<<endl; cin>>h; cout<<"Bitte geben Sie Faktor s an."<<endl; cin>>s; } switch(Menue3) { case 1: cout<<"Das Volumen ist: "<<(1/3*Pi*r*r*h)<<endl; break; case 2: cout<<"Das Oberflaeche ist: "<<(Pi*r*r+Pi*r*s)<<endl; break; case 3: cout<<"Die Mantelflaeche ist: "<<(Pi*r*s)<<endl; break; } } switch(Menue1) case 12: cout<<"Formeln"<<endl; cout<<"Volumen: V=4/3*Pi*r^3"<<endl; cout<<"Oberflaeche: O=4*Pi*r*r"<<endl; { { cout<<"Wollen Sie fortfahren? [1] Ja [0] Nein."<<endl; cin>>Menue2; if(Menue2==0) return 0; } float r; switch(Menue2) { case 1: cout<<"Waehlen Sie:"<<endl; cout<<"[1]Volumen: V=4/3*Pi*r^3"<<endl; cout<<"[2]Oberflaeche: O=4*Pi*r^2"<<endl; cin>>Menue3; } { cout<<"Bitte geben Sie Faktor r an."<<endl; cin>>r; } switch(Menue3) { case 1: cout<<"Das Volumen ist: "<<(4/3*Pi*r*r*r)<<endl; break; case 2: cout<<"Das Volumen ist: "<<(4*Pi*r*r)<<endl; break; } } std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get(); return 0; }
-
Du hast dein Programm immer noch nicht in Funktionen aufgeteilt und die Klammernsetzung ist auch noch komisch.
Also ich sehe keine Verbesserung.
-
HM... Zeigt mir bitte ein Beispiel. ICH meine einen größeren Quelltext wo es gut gezeigt wird.

-
Kenne jetzt auf Anhieb keinen Guten, aber du könntest schonmal für jede der 12 Funktionen deines Programm eine Funktion schreiben.
berechneRechteck
berechneParallelogrammusw.
Und wenn du das hast dann wird natürlich noch weiteraufgeteilt.

Bis so jede Funktion etwa 1-10 Zeilen groß ist.

-
OK
UND wie soll cih es machen ?
wie du warscheinlich schon gemerkt hast kann ich das nciht so würklich. sry
-
WIE man Funktionen schreibt steht im jedem C++ Buch oder Tutorial.
-
die Klammernsetzung ist zufallsprinzip, oder?^^