Zum Inhalt springen

Marken definieren und aufrufen


Empfohlene Beiträge

Geschrieben

hab mal ne frage: wie funktionieren Marken in c++ und wie definiert man diese?

ich möchte eine einfache abfrage starten:

Die Marke 1 möchte ich am anfang der main () setzen damit das programm beim wiederholen reinspringt

if (antwort=="ja")

{system("cls");

cout<<"Danke für das BEnutzen des PRogramms"<<end;

std::cin.clear();

std::ignore(std::cin.rdbuf()->in_avail());

std::cin.get();

exit(0);

}

else

{system("cls");

goto Marke1;}

Geschrieben

Am Besten gar nicht ;)

goto ist sehr sehr schlechter Programmierstil, weil es das Programm unübersichtlich und schlecht leserlich macht. Du kannst alles was du mit goto machen willst auch mit anderen Mitteln (in dem Fall einer Schleife) machen und das ist zu 99% auch der bessere Weg.

Geschrieben

bin jetzt ganz am anfang. mein lehrer hat mri gestern mitgeteilt, dass mein programm so wie ich es jetzt habe zwar läuft aber ihm nicht pass deswegen goto und marke

Geschrieben

trotzdem könntest du mir einfach sagen wie die marke funktioniert? ich finde nirgens informationen darüber. Auch wenn die als "verpöhnt" gillt. :beagolisc

Geschrieben

Also mal ganz davon ab, dass du deinem Lehrer mal klarmachen solltest, dass man nie, unter keinen Umständen und überhaupt nicht mit goto's arbeiten will, liefert dir Google mittels "goto c++" schon auf der ersten Seite folgende Treffer:

http://tutorial.schornboeck.net/schleifen.htm

http://www.math.uni-wuppertal.de/~axel/skripte/oop/oop5_4.html

Und nochmal: Wenn du willst, dass irgendwer deinen Code versteht, nutze vernünftige Mittel um das was du willst auszudrücken: Funktionen, Schleifen, etc... Hochsprachen sind kein Assembler wo man auf solche Krücken wie goto angewiesen war...

Geschrieben

Gut, ich habe auf die Marken verzichtet. sondern return(1); benutzt. Jetzt funktioniert die Abfrage nicht, dh. das programm beendet egal ob man ja oder nein hinschreibt. vielleicht findet wer die ursache ich hab keine idee...

using namespace std;


double dateigroesse ;

double uebertragungsrate ;

double ausgabezeit;

double zeit;

double kapazitaet;

double ausgabedatei;

int zahl;

int help=0;




void primProg ();

void sekProg ();

int wiederholen();


int main()


{ 


	string antwort;

	antwort = "ja";

	do

	{

		cout<<"\n "<<endl;

cout<<"------------------------------------------------------------------------"<<endl;

cout<<"WILLKOMMEN"<<endl;

cout<<"------------------------------------------------------------------------"<<endl;

cout<<"Wenn Sie die Groesse der Datei und die Uebertragungsrate kennen und \n die Uebertragungsdauer erfahren moechten, drueckken Sie die 1"<<endl;

cout<<"\n "<<endl;

cout<<"Wenn Sie die Uebertragungsdauer und die Uebertragungsrate kennen und \n die Dateigroesse erfahren moechten, druecken Sie die 2"<<endl;

cout<<"\n "<<endl;

cout<<"Wenn Sie das Programm beenden moechten, druecken Sie die 3"<<endl;

cin>>zahl;

		switch (zahl)

		{

		case 1:

			primProg();

			wiederholen();

			break;

		case 2:

			sekProg();

			wiederholen();

			break;

		default:

			system( "cls" );

cout<<"Sie haben sich entschieden das Programm zu beenden"<<endl;

cout<<"--------------------------------------------------------------"<<endl;

cout << "Moechten Sie das Programm wirklich beenden?:\t" <<endl;

cin>> antwort;   [COLOR="Red"]// Hier wenn man nein eintippt beendet eer trotzdem![/COLOR]

system( "cls" ); 

cout<<"#########################################################################"<<endl;

cout<<"Vielen Dank

cout<<"#########################################################################"<<endl;

//erwartet eine Tasteneingabe

std::cin.clear();

std::cin.ignore(std::cin.rdbuf()->in_avail());

std::cin.get();

		}

	} while(antwort!="ja");[COLOR="Red"]   //Programm reagiert alsob ja eingetippt wurde[/COLOR]

}





//1. Funktion der ersten Berechnung

  void primProg()

{	

system( "cls" );

cout<<"Sie haben sich entschieden die Uebertragungsdauer zu berechnen"<<endl;...


}


	//2. Funktion der zweiten Berechnung

void sekProg()

{	

system( "cls" );

cout<<"Sie haben sich entschieden die Dateigroesse zu berechnen"<<endl;...


}


//4.Wiederholen?

int wiederholen()

{	

cout<<"Moechten Sie nocheinmal etwas berechnen?"<<endl;

string antwort;

cin>>antwort;

if (antwort=="ja")

	{	system( "cls" );

		return(1);

	}

	else 

	{	system( "cls" );

cout<<"Sie haben sich entschieden das Programm zu beenden"<<endl;

cout<<"--------------------------------------------------------------"<<endl;

cout << "Moechten Sie das Programm wirklich beenden?:\t" <<endl;

cin>> antwort;

if (antwort == "ja")      [COLOR="Red"] //beendet auch wenn man nein eingibt...[/COLOR]

		{system( "cls" ); 

cout<<"#########################################################################"<<endl;

cout<<"Vielen Dank<<endl;

cout<<"#########################################################################"<<endl;

//erwartet eine Tasteneingabe			

std::cin.clear();

std::cin.ignore(std::cin.rdbuf()->in_avail());

std::cin.get();

exit(0);

		}

		 else 


		 {system( "cls" ); 

			return(1);

		 }

	}

}

Geschrieben

helby, gewöhn dir bitte an, Code-Tags zu benutzen, da sonst die Einrückung des Codes verloren geht. Ich habe das hier mal für dich nachgeholt. Deine Einrückung ist allerdings furchtbar, daran solltest du arbeiten.

Geschrieben

Das Problem kann ich übrigens nicht reproduzieren. Wenn man nicht "ja" eingibt, wird zwar die "Vielen Dank"-Meldung angezeigt (das machst du ja immer), aber das Programm beendet sich nicht.

Geschrieben

gut, ich versuche mehr auf das einrücken zu achten! ;)

hab den fehler jetzt aber auch gefunden. jetzt spinnt nur noch meine ausgabe.

Wenn ich beenden? nein drücke startet das programm ja neu.

allerdings ist der Ausgabe Text beim 2 mal um eine zeile nach unten verrutscht

vielleicht findet wer von euch den fehler im quelltext..s.oben

beispielbilder sind mithochgeladen

post-36983-14430447441996_thumb.jpg

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...