Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.06.2011, 14:46

Erste Versuche C++ ( Rechnen Highscore Ausgabe & Text )

Hallo Zusammen,

Habe mir vor ein paar Tagen dieses Buch gekauft und hab bisher alles was ich aufgenommen habe bis Seite 57 Zusammengewürfelt.

Ergebnis :


(Link)


Soweit kann ich auch zufrieden sein allerdings wirft sich hier ein Problem auf sofern man die angabe nicht in einer Zahl abgibt wie oben zusehen die "10".


(Link)


Gibt man bsp. 10KG oder nur KG ein Überspringt er die weiteren schritte.
Warum, und wie könnte ich dieses unterbinden?


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Spieleprogrammierer

#include <iostream>

using namespace std;
// Hauptprogramm
int main ()

{

    cout << "Hallo und Herzlich Wilkommen" << endl;
    cout << "\nWir Praesentieren ihn heute den Unschlagbaren Fruechte Rechner!" << endl;

    // Varibale

    int Banannen = 0; // deklariert
    int Pflaumen = 0; // deklariert
    int Kirschen = 0; // deklariert
    int Gesamt; // deklariert


    // Wieviel Banannen wurden eingesammelt ? 
    cout << "\nWieviel KG Banannen hast du gesammelt: "; 
    cin >> Banannen; 

    // Wieviel Plaumen wurden eingesammelt ? 
    cout << "Wieviel KG Pflaumen hast du gesammelt: "; 
    cin >> Pflaumen;

    // Wieviel Kirschen wurden eingesammelt ? 
    cout << "Wieviel KG Kirschen hast du gesammelt: "; 
    cin >> Kirschen;

    Gesamt = Banannen + Pflaumen + Kirschen; 
    
    cout << "\nDu hast Insgesammt : " << Gesamt << "KG Fruechte eingesammelt!" << endl; 

/////////////////////////////////////////////////////////////////////////////////////

    int Highscore = 50;                 // Bisheriger Highscore 
    int EigeneFruechte = Gesamt;        // Gesammelte Fruechte
    

    // Alten Highscore Anzeigen
    cout << "Bisheriger Highscore: " << Highscore << "KG Fruechte!" << endl; 


    // Erreichte Fruchtezahl abfragen
    cout << "Wieviele Fruechte wurden eingesammelt: "; 
    cout << EigeneFruechte << "KG Fruechte";



    // Ist der Highscore höher als erreichte Frucht?
    if (EigeneFruechte < Highscore)
    cout << "\n\nLeider kein neuer Highscore " << endl; 

    // Sind erreichte Fruechte höher als der Highscore? 
    if (EigeneFruechte > Highscore)
    cout << "\n\nGlueckwunsch. Platz 1! " << endl; 

    // Sind die erreichten Fruchte gleich mit dem highscore ? 
    if (EigeneFruechte == Highscore)
    cout << "\n\nDas war knapp! " << endl; 

    cout << "Wir Wuenschen dir weiterhin beim naechsten versuch viel Erfolg!" << endl; 

    return 0;
}

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

2

04.06.2011, 15:04

Du solltest überprüfen, ob der Benutzer ungültige Daten eingibt, da der Programmverlauf sonst gestört werden könnte (was bei dir der Fall ist). Dazu bietet istream (cin) die Methode fail(), die true zurückgibt, wenn die Eingabe fehlerhaft war oder anderweitige Fehler auftraten. Beispiel:

C-/C++-Quelltext

1
2
3
4
cout << "\nWieviel KG Banannen hast du gesammelt: "; 
cin >> Banannen;
if(cin.fail())
   cout << "Error";

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

04.06.2011, 15:24

Wenn du unterstützen willst, dass kg eingeben werden darf, musst du wohl einen String entgegen nehmen und ihn selbst auswerten. Wenn du einen Integer erwartest, wird versucht die Eingabe in eine Ganzzahl umzuwandeln. Wenn da jetzt ein kg drin steht, weiß es nicht wie es reagieren soll.
Ich würde dir empfehlen erstmal von einem User auszugehen, der weiß was er tut. Immerhin führst meistens du selbst das Programm aus und es geht eigentlich nur darum, dass du ausprobieren kannst, was du Programmierst. Ich glaub die Behandlung dieser Fehler verwirrt die meisten(wenn nicht sogar alle) Anfänger nur unnötig(zumindest wenn es darum geht, das Programm bei Fehlerhaften Eingaben, nicht einfach nur zu beenden). Ging mir genauso.

ps: Willkommen im Forum.
Falls du dir es doch probieren willst, kannst du dich hier belesen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

4

06.06.2011, 20:59

Vielen dank euch dreien für eure schnellen antworten, werde jetzt wie Nachoman sagte das erstmal auf sich beruhen lassen und weiter Kentnisse sammeln bis ich mich später damit auseinander setz.

edit:

Habe gerade einfach drauflos geschrieben um zu sehen wie gefestigt der Stoff mitlerweile ist um zum nächsten Kapitel zu Springen. Das Resultat :


(Link)


eventuell ja interessant für User die auch gerade erst angefangen sind.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// Einfach mal drauf los  

#include <iostream>

using namespace std; 

int main () 

{
    cout << "Herzlich Wilkommen in meinem Super Markt Manager!" << endl; 
    cout << "............................................................................." << endl; 
    cout << "\nMit diesem Programm ist es einfach eine Tagesabschluss Referenz aufzustellen." << endl; 


    int Kunden,Kirschen,Bannanen,Pflaumen,Gesamt,Euro;
    int Startkapital = 5000;


    cout << "\nWieviele Kunden sind heute in deinen Laden gekommen: ";
    cin >> Kunden; 

    cout << "\nWieviele KG Kirschen wurden heute pro Kunde gekauft: ";
    cin >> Kirschen;

    cout << "Wieviele KG Bannanen wurden heute pro Kunde gekauft: ";
    cin >> Bannanen ; 

    cout << "Wieviele KG Pflaumen wurden heute pro Kunde gekauft: "; 
    cin >> Pflaumen; 


    Gesamt = Kunden * (Kirschen + Pflaumen + Bannanen); 
    cout << "\nEs wurden " << Gesamt << "KG Fruechte Gekauft!" << endl; 
    
////////////////////////////////////////////////////////////////////////////

    // Casting
    Kirschen = static_cast<int> (Kunden*Kirschen);
    cout << "Es Wurden Insgesamt " << Kirschen << "KG Kirschen Verkauft" << endl; 
    
    Bannanen = static_cast<int> (Kunden*Bannanen);
    cout << "Es Wurden Insgesamt " << Bannanen << "KG Bannanen Verkauft" << endl; 

    Pflaumen = static_cast<int> (Kunden*Pflaumen); 
    cout << "Es Wurden Insgesamt " << Pflaumen << "KG Pflaumen Verkauft" << endl; 

        
    cout << "\n1KG Bannanen Kostet 2,-" << endl;
    cout << "1KG Kirschen Kostet 3,-" << endl; 
    cout << "1KG Pflaumen Kostet 4,-" << endl; 


    Euro = Gesamt = (Kirschen * 3) + ( Bannanen * 2) + ( Pflaumen * 4);
    cout << "\nNun Berechnen wir wieviel Umsatz du Heute gemacht hast: " << Euro << "Euro\n"; 
    
    Euro = static_cast<int> (Startkapital+Euro);
    cout << "\nDu hast mit einem Startkapital von " << Startkapital << "Euro angefangen nun hast du " << Euro << "Euro" << endl; 
    


/////////////////////////////////////////////////////////////////////////////////////

    int Highscore = 6120;  // Bisheriger Highscore 
    Euro = Gesamt;      // Gesammelte Fruechte
    

    // Alten Highscore Anzeigen
    cout << "Bisheriger Highscore: " << Highscore << "Euro Umsatz!" << endl; 


    // Ist der Highscore höher als erreichter Umsatz?
    if (Gesamt < Highscore)
    cout << "\nLeider kein neuer Umsatz Highscore " << endl; 

    // ist der erreichte Umsatz höher als der Highscore? 
    if (Gesamt > Highscore)
    cout << "\nGlueckwunsch. Platz 1! " << endl; 

    // Sind die erreichten Fruchte gleich mit dem highscore ? 
    if (Gesamt == Highscore)
    cout << "\nDas war knapp! " << endl; 

    cout << "Viel Spass beim Wirtschaften!!!\n" << endl; 
    return 0; 
}

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »mario88« (11.06.2011, 21:30) aus folgendem Grund: Update Casting


Werbeanzeige