000
06.06.2006, 16:24 Uhr
~Matthaei
Gast
|
Hallo liebe Forenleser!
Ich habe eine Prüfungsaufgabe, die ich schon weitesgehend bearbeitet habe, allerdings soll ich bei der Eingabe der Höhe und der Breite die Buchstaben abfangen.
Wenn man jetzt einen Buchstaben eingibt, landet man in einer Endlosschleife. Es soll aber wie bei der Eingabe einer höheren Zahl zwischen 6 und 24 die Fehlermeldung ausgeben und wieder an den Anfang springen.
Ich glaube, man muss das irgendwie mit Char machen und dann wieder in int umformen, aber ich komm nicht drauf, wie es am besten klappt. Wäre schön wenn wir jemand helfen könnte, denn es ist nur noch dieses Problem und das Ding muss ich bis heute Abend fertig kriegen
Vielen Dank
hier der Code
C++: |
#include <iostream.h> #include <iomanip.h> //Bibliothek für den Befehl setw(x) #include<stdlib.h>
void main() {
int hoehe,breite,wiederholen; char weiter, spitze; int x,i,weite; bool Fehler;
do{ do{ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
x=35; //Mitte der Spitze weite=2; //Weite des Dreiecks
//allgemeine Initialisierung der Werte
hoehe=0; breite=0; wiederholen=0; weiter=0; spitze=0; i=0;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
system("cls"); // Säubern des Bildschirms
cout<<endl; cout<<"\t ********************************************"<<endl; cout<<"\t\tPruefungsleistung 4 - Aufgabe 4"<<endl<<endl; cout<<"\t Die Darstellung eines symmetrischen Dreiecks"<<endl; cout<<"\t ********************************************"<<endl<<endl; cout<<"Geben Sie die Breite des Dreiecks ein (Bereich von 6 - 24) :"; cin>>breite; cout<<endl; cout<<"Geben Sie die H"<<char(148)<<"he des Dreiecks eind (Bereich von 6 - 24) :"; cin>>hoehe; cout<<endl<<endl;
if (((breite>5) && (hoehe>5)) && ((breite<25) && (hoehe<25)) && (breite==hoehe)) { cout<<"Wie soll das Dreieck dargestellt werden?"<<endl<<endl; cout<<"\t (1) = mit der Spitze nach oben (2) = mit der Spitze nach unten"; cout<<endl<<endl; cout<<"Ihre Wahl: "; cin>>spitze;
system("cls"); // Säubern des Bildschirms cout<<endl<<endl;
switch (spitze) { case '1': { cout<<setw(x); //Ausgabe der Spitze cout<<char(15)<<endl; x=x--; //Abzug von x damit die Darstellung der Schärge gewährleistet ist
for (i=3;i<=hoehe; i++) // i ist die Laufvariable der "for Schleife" { cout<<setw(x); cout<<char(06)<<setw(weite)<<char(06)<<endl; x--; //Abzug von x weite=weite+2; }
cout<<setw(x); //aktuelles x für die untere Darstellung des Dreiecks
for (i=0; i<breite; i++) { cout<<char(06); cout<<char(00); //Ascii für Leerzeichen } cout<<endl<<endl; } break;
case '2': { x=x-breite; //Berechnung der oberen Darstellung des Dreiecks cout<<setw(x); //aktuelles x für die obere Darstellung des Dreiecks for(i=+1; i<=breite; i++) { cout<<char(06); cout<<char(00); //Ascii für Leerzeichen }
cout<<endl; x++;
for (i=3; i<=hoehe; i++) { cout<<setw(x); cout<<char(06)<<setw((breite*2)-weite-2)<<char(06)<<endl; x++; breite--; }
cout<<setw(34)<<char(15)<<endl; } break; default: { cout<<"Falschen Wert fuer die Spitze eingegeben"<<endl<<endl;
} }
} else { cout<<"Sie haben einen falschen Wert eingegeben!"<<endl; cout<<"Bitte erneuern Sie Ihre Auswahl"; cout<<endl; cout<<"Es wird lediglich ein sym. Dreieck mit den Abmassen 6 - 24 dargestellt"<<endl<<"Sie haben entweder die falschen Zahlen oder einen Buchstaben eingegeben"<<endl<<endl<<endl; cout<<"Bitte Druecken sie eine Taste und dann die Enter-Taste um fortzufahren"<<endl<<endl; cin>>weiter; Fehler=true; } } while(Fehler==true);
cout<<"Moechten sie nochmal ein Dreieck anzeigen lassen?"<<endl<<endl; cout<<"Druecken sie (1) fuer Ja [Anykey] fuer Nein"; cout<<endl; cin>>wiederholen; } while(wiederholen==1);
cout<<endl<<endl<<endl<<endl; cout<<"Vielen Dank fuer die Nutzung dieses Programms"<<endl<<endl;
|
|