1. #1

    Registriert seit
    30.08.2011
    Beiträge
    37
    Thanked 32 Times in 23 Posts

    Standard C++ Bonussystem für Kunden einer Warenhaus-Kette

    Hey, ich schreib am Mittwoch ne Arbeit in Programmieren und bin gerade am üben... Ich hab nen Problem mit Punkt 5. Ich weiß nicht wie ich das machen soll :/

    Pro 10€ Einkauf gibt es einen Punkt, also 38,90€ -> 3 Punkte
    Wie krieg ich Variable Preis so hin, das ich die Punkte ausrechnen kann.
    38,90/10 = 3,89 und dann cout << fixed und cout.precision(0) hätte ich ja 3, aber damit hab ich ja nur die Ausgabe verändert aber der Wert bleibt bei 38,90,also kann ich nicht damit rechnen. Ich entschuldige mich für die unverständliche Ausdrucksweise.

    Klicke auf die Grafik für eine größere Ansicht 

Name:	9837951c__.JPG 
Hits:	170 
Größe:	97,4 KB 
ID:	7440

    Mein Code bis jetzt:

    PHP-Code:
    #include <iostream>
    using namespace std;

    int main()
    {

        
    double preis,punkte;
        
    char karte;

        
    cout <<"Geben sie den Preis ein\n";
        
    cin >> preis;
        
    cout <<"Besitzen sie eine Kundenkarte? A,B,C? Wenn nicht, geben sie "S" ein";
        
    cin >> karte;
        
    cout <<"Wieviel Punkte besitzen sie?";
        
    cin >> punkte;

        switch(
    karte)

        {
        case 
    'a':
        case 
    'A'
        
    karte 2;
        break;

        case 
    'b':
        case 
    'B'
        
    karte 1;
        break;

        case 
    'c':
        case 
    'C'
        
    karte 0.5;
        break;

        case 
    's':
        case 
    'S'
        
    karte 1;
        break;
        } 
    Ich hab schon überlegt es mit cout.precision(0) und cout << fixed, aber es gibt bestimmt bessere Möglichkeiten.
    __________________
    Pro 10€ Einkauf gibt es einen Punkt, also 38,90€ -> 3 Punkte
    Wie krieg ich Variable Preis so hin, das ich die Punkte ausrechnen kann.
    38,90/10 = 3,89 und dann cout << fixed und cout.precision(0) hätte ich ja 3, aber damit hab ich ja nur die Ausgabe verändert aber der Wert bleibt bei 38,90,also kann ich nicht damit rechnen. Ich entschuldige mich für die unverständliche Ausdrucksweise.

  2. #2
    Avatar von Ta1lor
    Registriert seit
    15.11.2011
    Beiträge
    767
    Thanked 833 Times in 435 Posts

    Standard Beispiel 38.39€ = 3 Punkte

    Soll unbedingt case genutzt werden?

    Du kannst auch einfach den Double Preis auf int casten und wenn der Einkauf > 10 ist durch 10 teilen.

  3. #3

    Registriert seit
    30.08.2011
    Beiträge
    37
    Thanked 32 Times in 23 Posts

    Standard Beispiel 38.39€ = 3 Punkte

    Dank erstmal an dich Ta1lor das du dir mein Problem durchgelesen hast. Ja ich muss switchcase verwenden.
    __________________
    Wie ist der Befehl zum konvertieren? Bei C# war es convert.to.int32 oder so. Wie ist das bei C++? Wenn ich 3,99 convert to int, rundet der dann auf 4 auf?

  4. #4
    Avatar von Ta1lor
    Registriert seit
    15.11.2011
    Beiträge
    767
    Thanked 833 Times in 435 Posts

    Standard Beispiel 38.39€ = 3 Punkte

    Du brauchst nicht Konvertieren und es wird auch nicht gerundet. Ich zeig dir mal wie man es machen könnte (Wenn es sein muss, mach halt irgendwie ein Switch daraus).

    Code:
    int nBerechnePunkte(double dNormalPreis, double dNachlass)
    	{
    		int nEinkauf;
    		nEinkauf = dNormalPreis - dNachlass;
    		if (nEinkauf >= 10 && nEinkauf < 20)
    		{
    			return 1;
    		}
    		else if (nEinkauf >= 20 && nEinkauf < 30)
    		{
    			return 2;
    		}
    		else if (nEinkauf >= 30)
    		{
    			return 3;
    		}
    	}
    Das casten ist so aber nicht ganz sauber, Visual Studio heult da etwas rum. Wenn du es sauber haben möchtest machst du es am besten so:

    Code:
    double dEinkauf = dNormalPreis - dNachlass;
    		int nEinkauf = static_cast<int>(dEinkauf);

  5. #5

    Registriert seit
    30.08.2011
    Beiträge
    37
    Thanked 32 Times in 23 Posts

    Standard Beispiel 38.39€ = 3 Punkte

    Deine Methode ist bestimmt besser als die, die die Lehrerin von uns verlangt. Es muss auch simpler gehen ^^
    e:
    int neuepunkte = preis / 10;

    damit geht es über einfach.

Ähnliche Themen

  1. Microsoft ködert Apple-Kunden
    Von Silidor im Forum IT & Technik News
    Antworten: 22
    Letzter Beitrag: 25.10.2013, 21:01
  2. Kauf einer xBox360
    Von Kolle1991 im Forum Microsoft Xbox
    Antworten: 21
    Letzter Beitrag: 16.04.2012, 14:57
  3. Was in einer Internetminute passiert
    Von DMW007 im Forum Internet und Technik
    Antworten: 3
    Letzter Beitrag: 03.04.2012, 01:55
  4. Wertfrage einer Wii
    Von Young Jeezy im Forum Nintendo
    Antworten: 7
    Letzter Beitrag: 25.02.2012, 23:13
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.