Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Programm beenden bei Eingabe von 0

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
25.03.2004, 09:58 Uhr
marcel331



Hallo
Ich hab ein kleines Proplem mein Programm soll nach eingabe von 0 Stk beenet werden ich bekomm es aber noch nicht ganz hin, wäre schön wenn ihr mir weiter helfen könntet viel Dank im Vorraus. Hab es momentan mit einer do while schleife versucht, funktioniert aber nicht wirklich



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

#include <iostream.h>
#include <stdlib.h>
#include <vcl.h>
#include <math.h>
#include <stdio.h>

//---------------------------------------------------------------------------

// --------- Funktionen -----------

void nettoumsatz(double *m1,double *n1)
{
*n1= *m1 * 94.2;
}

void Fgewicht(double *m1,double *g1)
{
*g1= *m1 * 24;
}

void berechnetes_gewicht(double *g1,double *bg1)
{
double berechnung;
berechnung=*g1/100;
*bg1=(ceil(berechnung))*100;
}

void fracht_funktion(double *bg1,double *km1,double *f1)
{
*f1=(*bg1/100)* *km1 * 0.06;
}

void gesamt_umsatz(double *f1,double *n1,double *gu1)
{
*gu1=*f1 + *n1;
}

void rabatt_funktion(double *n1,double *r1)
{
if (*n1 < 50000)
  {
  *r1=(*n1*3)/100;
  }
  else

  if (*n1 > 50000 && *n1 < 50000)
   {
   *r1=(*n1*5)/100;
   }
  else
   {
   *r1=(*n1*7)/100;
   }
}

void zielpreis_funktion(double *gu1, double *r1, double *zielpreis1)
{
  *zielpreis1 =*r1 - *gu1;
}

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

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

do
{
cout<<"Bitte Auftragmenge eingeben:  ";
cin>>menge; cout<<"\n";
}
while(menge==0);

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

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);


printf("Anzahl der Kartons:                 %9.0f Stk\n",menge);
printf("Kilometer:                          %9.0f Km\n",km);
printf("Gewicht:                            %9.0f Kg\n",gewicht);
printf("Berechnetes Gewicht:                %9.0f Kg\n",bgewicht);
printf("Fracht:                             %9.2f EUR\n",fracht);
printf("Nettoumsatz (Umsatz ohne Fracht):   %9.2f EUR\n",netto);
printf("Gesamtumsatz (Umsatz mit Fracht):   %9.2f EUR\n",gesamtumsatz);
printf("Rabatt:                             %9.2f EUR\n",rabatt);
printf("Zielpreis:                          %9.2f EUR\n",zielpreis);



        system("pause");
        return 0;

}
//------------------------------------------------------------------------------


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.03.2004, 10:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


was mir spontan auffällt

C++:
void rabatt_funktion(double *n1,double *r1)
{
if (*n1 < 50000)
  {
  *r1=(*n1*3)/100;
  }
  else

  if (*n1 > 50000 && *n1 < 50000) //diese bedinung ist immer false das *n1 nie gleichzeit kleiner und grösser als 50000 sein kann, macht also nicht wirklich sinn so die bedinung...
   {
   *r1=(*n1*5)/100;
   }
  else
   {
   *r1=(*n1*7)/100;
   }
}



ferner verwendest du überall bei er übergabe adressen wo man es nicht unbedingt machen muss, aber ist geschmacksfrage macht dir aber imho das leben nur schwer....

wenn du nur dein programm nach eingabe von 0 stück beenden willst, ohne das ne endlosschleife rumgepackt werden soll, die das programm so lange wiederholt bis einer 0 eingibt geht das z.b. so...

statt

C++:
do
{
cout<<"Bitte Auftragmenge eingeben:  ";
cin>>menge; cout<<"\n";
}
while(menge==0);



schreibst du

C++:
cout<<"Bitte Auftragmenge eingeben:  ";
cin>>menge; cout<<"\n";
if(!menge)return 0;


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 25.03.2004 um 10:53 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.03.2004, 11:04 Uhr
marcel331



Danke für die schnelle Hilfe funzt jetzt Prima. Hab jetzt noch eine kleine Frage wie muss ich die schleife jetzt anbringen damit das Programm immer wiederholt wird bis halt die 0 zum beenden eingegeben wird


mit den 50000 war ein fehler meinerseits hatte ich noch nicht getestet war wohl was früh heute morgen

Mit der übergabe arbeite ich auch nicht so gerne aber das war die Hauptaufgabe (Thema Zeiger in der Schule)

Marcel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.03.2004, 11:23 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


z.b. in der art

C++:
//------- Hauptprogramm ----------------------------------------
int main()
{
double menge;
double km;
double netto;
double gewicht;
double bgewicht;
double fracht;
double gesamtumsatz;
double rabatt;
double zielpreis;

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


menge=4711;//dummymenge damit die schleife mindestens einmal durchlaufen wird, funzt wahrscheinlich auch ohne aber ist nicht gewährleistet weil man nicht weiss mit welchem zufälligen wert der die variable beim initialisieren belegt...sollte es 0 sein hat man die arschcard deshalb dies hier besser verhindern....

while(menge){
    cout<<"Bitte Auftragmenge eingeben:  ";
    cin>>menge; cout<<"\n";

    if(menge){

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

    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);


    printf("Anzahl der Kartons:                 %9.0f Stk\n",menge);
    printf("Kilometer:                          %9.0f Km\n",km);
    printf("Gewicht:                            %9.0f Kg\n",gewicht);
    printf("Berechnetes Gewicht:                %9.0f Kg\n",bgewicht);
    printf("Fracht:                             %9.2f EUR\n",fracht);
    printf("Nettoumsatz (Umsatz ohne Fracht):   %9.2f EUR\n",netto);
    printf("Gesamtumsatz (Umsatz mit Fracht):   %9.2f EUR\n",gesamtumsatz);
    printf("Rabatt:                             %9.2f EUR\n",rabatt);
    printf("Zielpreis:                          %9.2f EUR\n",zielpreis);

    }
}

system("pause");
return 0;


}



--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 25.03.2004 um 11:24 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.03.2004, 11:28 Uhr
marcel331



Danke für die Mühe ich ich hab es gerade geschafft es läuft alles so wie ich es will

Marcel
 
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: