Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Quellcode fehlerhaft

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
17.01.2008, 12:29 Uhr
~jensk3
Gast


Hallo,
habe da mal eine Frage bezüglich meines Quellcodes. Bin ein Neuling in Sachen C++ und möchte jetzt gerne eine If anweisung mit anschliessender auswertung einer Switch Case Anwendung programmieren.
Die eigentliche Switch Case funktioniert soweit nur wenn ich die Anweisung daor schreibe gibt mir mein Programm nicht die richtige Zahl(Preis) aus.
Vielleicht kann mir ja jemand helfen hier aus dem Forum. Ich werde den Quelltext mal hier mit beifügen und hoffe auf eine Lösung.
MfG Jens


C++:
#include <stdlib.h>
#include <iostream>
#include <conio.h>

using namespace std;

int main(int argc, char *argv[])
{
    //Zuweisung der Variablen
    int Gewicht;
    int Preis;
    int Auswahl;
    
    // Eingabe der Variablen
    
       cout << "Das Programm berechnet die Kosten fuer ein Paket." <<endl;
       cout << "Geben Sie das Gewicht ein:  "<< endl ;
       cin  >> Gewicht;
      
        if (Gewicht < 20)
       {
       Auswahl = 20;
       }
       else
      
    
       switch (Auswahl)      
              {
              case 20         : Preis = 88; break;
              case 50         : Preis = 95; break;
              case 500        : Preis = 144; break;
              case 20000      : Preis = 620; break;
              default         : Preis = 0;
              }
              
        cout << Preis << endl << Auswahl << endl;
        cout << "Das Porto betraegt: " << Preis << " Cent."<< endl;

          
        
    system("PAUSE");
    return EXIT_SUCCESS;
}


Dieser Post wurde am 17.01.2008 um 17:25 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.01.2008, 14:48 Uhr
öni



Mich hat es selber gerade verwundert aber ich glaub du wolltest es so haben!

C++:
if (Gewicht < 20)
{
Auswahl = 20;
}
else
{} /* Diese Klammer ist von Nöten weil sonst der Compiler nur die nächste Zeile nimmt zur ausführung, was indiesem Falle das gesamte Switch wäre. Ich hoffe ich habe das irgendwie verständlich ausgedrückt*/

switch (Auswahl)
{
case 20 : Preis = 88; break;
case 50 : Preis = 95; break;
case 500 : Preis = 144; break;
case 20000 : Preis = 620; break;
default : Preis = 0;
}

Dieser Post wurde am 17.01.2008 um 14:51 Uhr von öni editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.01.2008, 14:59 Uhr
mmc20
puss in boots


naja, ich nehme mal an das die eingaben alles mögliche sein können, testen tu'st du aber nur ob es "gleich" 20, oder "gleich" 50 ist.
richtiger wäre das in mehrere if's zu schachteln, weil ja auch zahlen zwischen 20 und 50 kommen können.

C++:
if ( auswahl < 20000 ) {
  if ( auswahl < 500  ) {
    if ( auswahl < 50 ) {
      Preis = 88;
    } else {
      Preis = 95;
    }
  } else {
    Preis = 144;
  }
} else {
  Preis = 620;
}


oder du schreibst das auf eine Zeile... dann wirds aber sehr unübersichtlich
C++:
// a = Auswahl
Preis = (a<20000?(a<500?(a<50?(a<20?12:88):95):144):620);


Dieser Post wurde am 17.01.2008 um 15:09 Uhr von mmc20 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.01.2008, 15:11 Uhr
~jensk3
Gast


Danke für die schnelle Beantwortung!
Es hat funktioniert.
Gruß Jens
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.01.2008, 15:37 Uhr
ao

(Operator)



Zitat von mmc20:


C++:
if ( auswahl < 20000 ) {
  if ( auswahl < 500  ) {
    if ( auswahl < 50 ) {
      Preis = 88;
    } else {
      Preis = 95;
    }
  } else {
    Preis = 144;
  }
} else {
  Preis = 620;
}




Ich würd das so machen:

C++:
if (auswahl <= 20) preis = 88; // Motorradkurier
else if (auswahl <= 50) preis = 95; // Pkw-Kurier
else if (auswahl <= 500) preis = 144; // Kleintransporter
else if (auswahl <= 20000) preis = 620; // geht grad noch per Tieflader
else preis = 10000000; // bitte kaufen Sie sich einen Stückgutfrachter


Ich finde die if-else-if-Kette übersichtlicher als geschachtelte if's.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.01.2008, 15:45 Uhr
öni



Ihr vergesst das der Benutzer Gewicht und keine Auwahl eingibt. Es kann ja sein das mit Auswahl nur die Produkt-NR. gemeint ist es aber keinen Bezug hat zum Gewicht....


C++:
if (Gewicht < 20)
   Auswahl = 20;
if (Gewicht < 30)
   Auswahl = 50;
if (Gewicht < 40)
   Auswahl = 500;
if.....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.02.2008, 13:34 Uhr
~gast
Gast


ich wollte mal fragen ob ihr mir sagen könnt wie ich bei folgenden programm
es schaffe, das ich nach meinem zufallsergebnis eine aufforderung mache, ob ich
das programm nochmal ausführen lassen will könnt ihr mir das sagen wie das geht


#include <cstdlib>
#include <iostream>
#include <time.h>

using namespace std;

int main(int argc, char *argv[])
{
int zzahl;
char causwahl;


srand( time( NULL ) );
zzahl = ( rand() % 8 )+1;
cout<<"++++++++++++++++++++"<<endl;
cout<<"+heute gehen wir zu+"<<endl;
cout<<"++++++++++++++++++++"<<endl<<endl;

if ( zzahl==1)
cout<<"restaurant1"<<endl;
if ( zzahl==2)
cout<<"restaurant2"<<endl;
if ( zzahl==3)
cout<<"restaurant3"<<endl;
if ( zzahl==4)
cout<<"restaurant4"<<endl;
if ( zzahl==5)
cout<<"restaurant15"<<endl;
if ( zzahl==6)
cout<<"restaurant6"<<endl;
if ( zzahl==7)
cout<<"restaurant7"<<endl;
if ( zzahl==8)
cout<<"restaurant8"<<endl<<endl;




system( "PAUSE" );
return EXIT_SUCCESS;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.02.2008, 13:46 Uhr
öni



Mit einer While-Schleife.


C++:
char nochmal='j';

while(nochmal=='j' || nochmal=='J')//While Schleife fängt an....und macht das solange nochmal=J ist.
{
srand( time( NULL ) );
zzahl = ( rand() % 8 )+1;
cout<<"++++++++++++++++++++"<<endl;
cout<<"+heute gehen wir zu+"<<endl;
cout<<"++++++++++++++++++++"<<endl<<endl;

if ( zzahl==1)
cout<<"restaurant1"<<endl;
if ( zzahl==2)
cout<<"restaurant2"<<endl;
if ( zzahl==3)
cout<<"restaurant3"<<endl;
if ( zzahl==4)
cout<<"restaurant4"<<endl;
if ( zzahl==5)
cout<<"restaurant15"<<endl;
if ( zzahl==6)
cout<<"restaurant6"<<endl;
if ( zzahl==7)
cout<<"restaurant7"<<endl;
if ( zzahl==8)
cout<<"restaurant8"<<endl<<endl;

cout<<"Nochmal ausführen? Dann tippe J für Ja und etwas anderes für Nein"<<endl;
cin>>nochmal;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
08.02.2008, 11:31 Uhr
~gast
Gast


super schnelle antwort

gute arbeit von dir *freudig grins*
 
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: