Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » bei Eingabe von 0 an Anfang vom Programm springen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.03.2004, 13:05 Uhr
marcel331



Hallo
Ich hab schon wieder eine Frage. Ich habe ein String programmiert und ich will nun wenn man sich in einem case befindet z.b 0 drücken kann um dann wieder zur Auswahl zu gelangen. Ich hofffe ihr versteht was ich meine. Vielleicht könnt ihr mir helfen. Wäre euch sehr dankbar.


C++:
//------- Hauptprogramm --------------------Hauptprogramm-----------------------

int main()
{
double menge;
double km;
double netto;
double gewicht;
double bgewicht;
double fracht;
double gesamtumsatz;
double rabatt;
double zielpreis;
int auswahl;

string linie( 50, '-');
        cout<<"Bitte waehlen Sie aus folgenden Punkten\n";
        cout<<"1. Abrechnungsberechnung\n";
        cout<<"2. Daten pflegen\n";
        cout<<"0. Beenden\n\n";
        cout<<"Eingabe : "; cin>>auswahl;
        cout<<"\n";
        cout << linie << endl;
        cout << "\n";


        switch (auswahl)
        {
case 1:
{

        cout<<"\t ++++++++++++++++++++++++++++++\n";
        cout<<"\t +                            +\n";
        cout<<"\t +      Auftragsberechnung    +\n";
        cout<<"\t +                            +\n";
        cout<<"\t ++++++++++++++++++++++++++++++\n\n\n";


   do
   {

        cout<<"Mit Eingabe 0 Stk wird das Programm beendet!!\n\n";
        // Eingabe Auftragsmeneg
        cout<<"Bitte Auftragmenge eingeben:  ";
        cin>>menge; cout<<"\n";

        // Anweisung bei Eingabe 0 Stk wird Programm beendet
        if (menge==0)
        {
        return ;
        }

        //Eingabe Distanz zum Kunden in km
        cout<<"Bitte Distanz (in km) eingeben:  ";
        cin>>km; cout<<"\n";


        // Aufruf der Funktionen
        nettoumsatz(&menge, &netto);
        Fgewicht(&menge, &gewicht);
        berechnetes_gewicht(&gewicht,&bgewicht);
        fracht_funktion(&bgewicht,&km,&fracht);
        gesamt_umsatz(&fracht,&netto,&gesamtumsatz);
        rabatt_funktion(&netto,&rabatt);
        zielpreis_funktion(&rabatt,&gesamtumsatz,&zielpreis);

        // Ausgabe der errechneten Werte
        printf("Anzahl der Kartons:                 %10.0f Stk\n",menge);
        printf("Kilometer:                          %10.0f Km\n",km);
        printf("Gewicht:                            %10.0f Kg\n",gewicht);
        printf("Berechnetes Gewicht:                %10.0f Kg\n",bgewicht);
        printf("Fracht:                             %10.2f EUR\n",fracht);
        printf("Nettoumsatz (Umsatz ohne Fracht):   %10.2f EUR\n",netto);
        printf("Gesamtumsatz (Umsatz mit Fracht):   %10.2f EUR\n",gesamtumsatz);
        printf("Rabatt:                             %10.2f EUR\n",rabatt);
        printf("Zielpreis:                          %10.2f EUR\n\n",zielpreis);
    }
    while(menge!=0);

}
break;

case 2:
        cout<<"Daten pflegen\n\n";
        cout << linie << endl;
break;

case 0:


cout<<"Aufwiedersehen\n\n";

break;




default:
        cout<<"Falsche Eingabe!!\n\n";
        cout << linie << endl;
}



 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.03.2004, 13:29 Uhr
RedEagle




C++:
//------- Hauptprogramm --------------------Hauptprogramm-----------------------

int main()
{
double menge;
double km;
double netto;
double gewicht;
double bgewicht;
double fracht;
double gesamtumsatz;
double rabatt;
double zielpreis;
int auswahl;

do //Begin der schleife
{

string linie( 50, '-');
        cout<<"Bitte waehlen Sie aus folgenden Punkten\n";
        cout<<"1. Abrechnungsberechnung\n";
        cout<<"2. Daten pflegen\n";
        cout<<"0. Beenden\n\n";
        cout<<"Eingabe : "; cin>>auswahl;
        cout<<"\n";
        cout << linie << endl;
        cout << "\n";


        switch (auswahl)
        {
case 1:
{

        cout<<"\t ++++++++++++++++++++++++++++++\n";
        cout<<"\t +                            +\n";
        cout<<"\t +      Auftragsberechnung    +\n";
        cout<<"\t +                            +\n";
        cout<<"\t ++++++++++++++++++++++++++++++\n\n\n";


   do
   {

        cout<<"Mit Eingabe 0 Stk wird das Programm beendet!!\n\n";
        // Eingabe Auftragsmeneg
        cout<<"Bitte Auftragmenge eingeben:  ";
        cin>>menge; cout<<"\n";

        // Anweisung bei Eingabe 0 Stk wird Programm beendet
        if (menge==0)
        {
        return ;
        }

        //Eingabe Distanz zum Kunden in km
        cout<<"Bitte Distanz (in km) eingeben:  ";
        cin>>km; cout<<"\n";


        // Aufruf der Funktionen
        nettoumsatz(&menge, &netto);
        Fgewicht(&menge, &gewicht);
        berechnetes_gewicht(&gewicht,&bgewicht);
        fracht_funktion(&bgewicht,&km,&fracht);
        gesamt_umsatz(&fracht,&netto,&gesamtumsatz);
        rabatt_funktion(&netto,&rabatt);
        zielpreis_funktion(&rabatt,&gesamtumsatz,&zielpreis);

        // Ausgabe der errechneten Werte
        printf("Anzahl der Kartons:                 %10.0f Stk\n",menge);
        printf("Kilometer:                          %10.0f Km\n",km);
        printf("Gewicht:                            %10.0f Kg\n",gewicht);
        printf("Berechnetes Gewicht:                %10.0f Kg\n",bgewicht);
        printf("Fracht:                             %10.2f EUR\n",fracht);
        printf("Nettoumsatz (Umsatz ohne Fracht):   %10.2f EUR\n",netto);
        printf("Gesamtumsatz (Umsatz mit Fracht):   %10.2f EUR\n",gesamtumsatz);
        printf("Rabatt:                             %10.2f EUR\n",rabatt);
        printf("Zielpreis:                          %10.2f EUR\n\n",zielpreis);
    }
    while(menge!=0);

}
break;

case 2:
        cout<<"Daten pflegen\n\n";
        cout << linie << endl;
break;

case 0:


cout<<"Aufwiedersehen\n\n";
return 0;
break;




default:
        cout<<"Falsche Eingabe!!\n\n";
        cout << linie << endl;
}

}
while(true); //Endlosschleife
/*
Nachdem die Switch() anweisung durchlaufen wurde wird wieder zum anfang gesprungen, außer bei '0', dann wird das Prog beendet

*/


return 0;
}


habe es nicht getestet, aber so müsste es laufen
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.03.2004, 13:36 Uhr
marcel331




C++:
// Anweisung bei Eingabe 0 Stk wird Programm beendet
        if (menge==0)
        {
        return ;
        }





Danke für die Antwort aber ich meinte wenn man hier eine 0 eingibt (menge==0) beendet wird das Programm momentan noch beendet. es soll aber wieder zur auswahl zurück, wie kann man das machen. gibt es dort auch einen befehl (wie z.b return 0; für Programm ende??)) Bitte nochmal um antwort danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.03.2004, 13:53 Uhr
RedEagle



wenn man sich in der schleife befindet, geht das mit 'continue':

C++:
        if (menge==0)
        {
        continue;
        }


--
MFG RedEagle

Dieser Post wurde am 26.03.2004 um 13:53 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.03.2004, 14:11 Uhr
marcel331



Hab das nun eingebaut und statt return 0 hab ich continue eingesetzt.
Aber er beendet das Programm trotzdem noch.
Wodran kann das liegen??
Bitte nochmal umhilfe Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.03.2004, 14:20 Uhr
~RedEagle
Gast


mmmmmmmm.....
Hast du auch die Schleife gemacht??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
29.03.2004, 09:35 Uhr
KaraHead



HI, Wenn du an den Anfang der Schleife willst dann nimm "continue".
Wenn du wieder zur "Auswahl" willst, dann probier es mal mit einer goto-Anweisung. Ist zwar nicht so schön aber es klappt

z.b.

C++:
LABEL;
switch (auswahl)
{
...
if (menge==0)
        {
        goto LABEL;
        }
...



Hab's zwar nicht getestet aber sollte so klappen. Wenn's einen Fehler in der Syntax gibt musst mal nach goto googeln....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
29.03.2004, 12:09 Uhr
RedEagle



goto nicht gut


C++:
bool variable;

do
{
variable = false;

switch (auswahl)
{
  case 1 : blabla();
  case 2 : blubblub();
  case 0 : variable = true;
}
}
while (variable == true);



so, müsste es auch gehen
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
29.03.2004, 12:33 Uhr
KaraHead




Zitat:
goto nicht gut


No risk, no fun

Ein kleines goto wird schon nicht alles kapput machen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
29.03.2004, 12:38 Uhr
RedEagle



aber unübersichtlich

--
MFG RedEagle

Dieser Post wurde am 29.03.2004 um 12:39 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: