Preisberechnung mit Klasse < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:48 Mo 07.01.2013 | Autor: | pina7 |
Aufgabe | Schreiben Sie eine Klasse „Spielzeugladen“, die die Preise für Holzspielzeug berechnen soll. Dazu soll die Klasse die Anzahl an Spielzeugen speichern, die von einer bestimmten Art gekauft werden sollen. Es stehen vier verschiedene Spielzeuge zur Verfügung:
Lastwagen: 1€
Puppen: 2€
Schiffe:5€
Hubschrauber:10€
Wenn die Spielzeuge als Geschenk verpackt werden sollen, dann müssen die Kunden jeweils 0,50€ mehr bezahlen. Pro 10 Spielzeuge, die gekauft werden, gibt es einen Rabatt von 2€. Werden mehr als 100 Spielzeuge verkauft, so gibt es einen zusätzlichen Rabatt von 10% auf den Gesamtpreis.
Ergänzen Sie die Klasse „Spielzeugladen“ um eine Funktion „getPrice“, diese soll den Preis berechnen und an den Aufrufer zurückgeben.
Das Hauptprogramm soll von dem Benutzer die Anzahl der Spielzeuge der jeweiligen Sorte erfragen. Danach soll ein Objekt des Spielzeugladens erzeugt und durch den Konstruktor konfiguriert werden. Abschließend soll das Hauptprogramm den durch die Klasse berechneten Preis ausgeben. |
Hallo. Mein Programm liefert als Ergebnis für den Preis 0. Was ist hier der Fehler? Außerdem finde ich meine Lösung mit den vielen if-Abfragen unschön, wie könnte man das besser lösen? Danke für Hilfe
#pragma once
#include "stdafx.h"
class Spielzeugladen
{
protected:
//Anzahl des jeweiligen Spielzeugs
int mnLastwagen;
int mnPuppen;
int mnSchiffe;
int mnHubschrauber;
public:
int nLastwagen;
int nPuppen;
int nSchiffe;
int nHubschrauber;
float Price;
char Geschenk;
void setAnzahl(int nLastwagen, int nPuppen, int nSchiffe, int nHubschrauber);
float getPrice();
};
#include "stdafx.h"
#include "Spielzeugladen.h"
#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h>
using namespace std;
void Spielzeugladen::setAnzahl(int nLastwagen, int nPuppen, int nSchiffe, int nHubschrauber)
{
int mnLastwagen = nLastwagen;
int mnPuppen = nPuppen;
int mnSchiffe = nSchiffe;
int mnHubschrauber = nHubschrauber;
}
float Spielzeugladen::getPrice()
{
char Geschenk = ' ';
float PriceL = 0.0;
float PriceP = 0.0;
float PriceS = 0.0;
float PriceH = 0.0;
float Price = 0.0;
//Lastwagen
if (Geschenk == 'j')
{
PriceL = nLastwagen*1 + nLastwagen*0.5;
do
{
nLastwagen = nLastwagen/10;
PriceL = PriceL-2;
}while (nLastwagen % 10 == 0);
do
{
nLastwagen = nLastwagen/100;
PriceL = PriceL-PriceL*0.1;
}while (nLastwagen % 100 == 0);
}
else if (Geschenk == 'n')
{
PriceL = nLastwagen*1;
do
{
nLastwagen = nLastwagen/10;
PriceL = PriceL-2;
}while (nLastwagen % 10 == 0);
do
{
nLastwagen = nLastwagen/100;
PriceL = PriceL-PriceL*0.1;
}while (nLastwagen % 100 == 0);
}
//Puppen
if (Geschenk == 'j')
{
PriceP = nPuppen*2 + nPuppen*0.5;
do
{
nPuppen = nPuppen/10;
PriceP = PriceP-2;
}while (nPuppen % 10 == 0);
do
{
nPuppen = nPuppen/100;
PriceP = PriceP-PriceP*0.1;
}while (nPuppen % 100 == 0);
}
else if (Geschenk == 'n')
{
PriceP = nPuppen*2;
do
{
nPuppen = nPuppen/10;
PriceP = PriceP-2;
}while (nPuppen % 10 == 0);
do
{
nPuppen = nPuppen/100;
PriceP = PriceP-PriceP*0.1;
}while (nPuppen % 100 == 0);
}
//Schiffe
if (Geschenk == 'j')
{
PriceS = nSchiffe*5 + nSchiffe*0.5;
do
{
nSchiffe = nSchiffe/10;
PriceS = PriceS-2;
}while (nSchiffe % 10 == 0);
do
{
nSchiffe = nSchiffe/100;
PriceS = PriceS-PriceS*0.1;
}while (nSchiffe % 100 == 0);
}
else if (Geschenk == 'n')
{
PriceS = nSchiffe*5;
do
{
nSchiffe = nSchiffe/10;
PriceS = PriceS-2;
}while (nSchiffe % 10 == 0);
do
{
nSchiffe = nSchiffe/100;
PriceS = PriceS-PriceS*0.1;
}while (nSchiffe % 100 == 0);
}
//Hubschrauber
if (Geschenk == 'j')
{
PriceH = nHubschrauber*10 + nHubschrauber*0.5;
do
{
nHubschrauber = nHubschrauber/10;
PriceH = PriceH-2;
}while (nHubschrauber % 10 == 0);
do
{
nHubschrauber = nHubschrauber/100;
PriceH = PriceH-PriceH*0.1;
}while (nHubschrauber % 100 == 0);
}
else if (Geschenk == 'n')
{
PriceH = nHubschrauber*10;
do
{
nHubschrauber = nHubschrauber/10;
PriceH = PriceH-2;
}while (nHubschrauber % 10 == 0);
do
{
nHubschrauber = nHubschrauber/100;
PriceH = PriceH-PriceH*0.1;
}while (nHubschrauber % 100 == 0);
}
Price = PriceL + PriceP + PriceS + PriceH;
return Price;
}
int _tmain(int argc, _TCHAR* argv[])
{
Spielzeugladen MySpielzeugladen;
MySpielzeugladen.nLastwagen = 0;
MySpielzeugladen.nPuppen = 0;
MySpielzeugladen.nSchiffe = 0;
MySpielzeugladen.nHubschrauber = 0;
cout << endl << "Spielzeugladen" << endl << endl;
cout << endl << "Anzahl Lastwagen: " << endl << endl;
cin >> MySpielzeugladen.nLastwagen;
cout << endl << "Anzahl Puppen: " << endl << endl;
cin >> MySpielzeugladen.nPuppen;
cout << endl << "Anzahl Schiffe: " << endl << endl;
cin >> MySpielzeugladen.nSchiffe;
cout << endl << "Anzahl Hubschrauber: " << endl << endl;
cin >> MySpielzeugladen.nHubschrauber;
cout << endl << "Als Geschenk einpacken? --> j, sonst n eingeben" << endl << endl;
cin >> MySpielzeugladen.Geschenk;
MySpielzeugladen.setAnzahl(MySpielzeugladen.nLastwagen, MySpielzeugladen.nPuppen, MySpielzeugladen.nSchiffe, MySpielzeugladen.nHubschrauber);
cout << "Gesamtpreis: " << MySpielzeugladen.getPrice() << endl << endl;
system("pause");
return 0;
}
|
|
|
|
Hallo pina7,
> Schreiben Sie eine Klasse „Spielzeugladen“, die die
> Preise für Holzspielzeug berechnen soll. Dazu soll die
> Klasse die Anzahl an Spielzeugen speichern, die von einer
> bestimmten Art gekauft werden sollen. Es stehen vier
> verschiedene Spielzeuge zur Verfügung:
> Lastwagen: 1€
> Puppen: 2€
> Schiffe:5€
> Hubschrauber:10€
> Wenn die Spielzeuge als Geschenk verpackt werden sollen,
> dann müssen die Kunden jeweils 0,50€ mehr bezahlen. Pro
> 10 Spielzeuge, die gekauft werden, gibt es einen Rabatt von
> 2€. Werden mehr als 100 Spielzeuge verkauft, so gibt es
> einen zusätzlichen Rabatt von 10% auf den Gesamtpreis.
> Ergänzen Sie die Klasse „Spielzeugladen“ um eine
> Funktion „getPrice“, diese soll den Preis berechnen und
> an den Aufrufer zurückgeben.
> Das Hauptprogramm soll von dem Benutzer die Anzahl der
> Spielzeuge der jeweiligen Sorte erfragen. Danach soll ein
> Objekt des Spielzeugladens erzeugt und durch den
> Konstruktor konfiguriert werden. Abschließend soll das
> Hauptprogramm den durch die Klasse berechneten Preis
> ausgeben.
> Hallo. Mein Programm liefert als Ergebnis für den Preis
> 0. Was ist hier der Fehler? Außerdem finde ich meine
> Lösung mit den vielen if-Abfragen unschön, wie könnte
> man das besser lösen? Danke für Hilfe
>
Bei der Berechnung des Rabattes von 2 € pro 10 gekauften Spielzeugen
ist von der Gesamtzahl der Spielzeuge auszugehen.
(#Spielzeuge=Lastwagen + Puppen + Schiffe + Hubschrauber)
Den Rabatt von 10 % bei Kauf von
mehr als 100 Spielzeugen gibt es nur einmal.
Auch hier ist von der Gesamtzahl der Spielzeuge auszugehen.
Der Code in der Funktion "getPrice" ist zu umfangreich.
> #pragma once
> #include "stdafx.h"
>
> class Spielzeugladen
> {
> protected:
> //Anzahl des jeweiligen Spielzeugs
> int mnLastwagen;
> int mnPuppen;
> int mnSchiffe;
> int mnHubschrauber;
> public:
> int nLastwagen;
> int nPuppen;
> int nSchiffe;
> int nHubschrauber;
> float Price;
> char Geschenk;
> void setAnzahl(int nLastwagen, int nPuppen, int nSchiffe,
> int nHubschrauber);
> float getPrice();
> };
>
>
> #include "stdafx.h"
> #include "Spielzeugladen.h"
> #include <iostream>
> #define _USE_MATH_DEFINES
> #include <math.h>
>
> using namespace std;
>
> void Spielzeugladen::setAnzahl(int nLastwagen, int nPuppen,
> int nSchiffe, int nHubschrauber)
> {
> int mnLastwagen = nLastwagen;
> int mnPuppen = nPuppen;
> int mnSchiffe = nSchiffe;
> int mnHubschrauber = nHubschrauber;
> }
>
> float Spielzeugladen::getPrice()
> {
> char Geschenk = ' ';
> float PriceL = 0.0;
> float PriceP = 0.0;
> float PriceS = 0.0;
> float PriceH = 0.0;
> float Price = 0.0;
>
> //Lastwagen
> if (Geschenk == 'j')
> {
> PriceL = nLastwagen*1 + nLastwagen*0.5;
> do
> {
> nLastwagen = nLastwagen/10;
> PriceL = PriceL-2;
> }while (nLastwagen % 10 == 0);
> do
> {
> nLastwagen = nLastwagen/100;
> PriceL = PriceL-PriceL*0.1;
> }while (nLastwagen % 100 == 0);
> }
> else if (Geschenk == 'n')
> {
> PriceL = nLastwagen*1;
> do
> {
> nLastwagen = nLastwagen/10;
> PriceL = PriceL-2;
> }while (nLastwagen % 10 == 0);
> do
> {
> nLastwagen = nLastwagen/100;
> PriceL = PriceL-PriceL*0.1;
> }while (nLastwagen % 100 == 0);
> }
>
> //Puppen
> if (Geschenk == 'j')
> {
> PriceP = nPuppen*2 + nPuppen*0.5;
> do
> {
> nPuppen = nPuppen/10;
> PriceP = PriceP-2;
> }while (nPuppen % 10 == 0);
> do
> {
> nPuppen = nPuppen/100;
> PriceP = PriceP-PriceP*0.1;
> }while (nPuppen % 100 == 0);
> }
> else if (Geschenk == 'n')
> {
> PriceP = nPuppen*2;
> do
> {
> nPuppen = nPuppen/10;
> PriceP = PriceP-2;
> }while (nPuppen % 10 == 0);
> do
> {
> nPuppen = nPuppen/100;
> PriceP = PriceP-PriceP*0.1;
> }while (nPuppen % 100 == 0);
> }
>
> //Schiffe
> if (Geschenk == 'j')
> {
> PriceS = nSchiffe*5 + nSchiffe*0.5;
> do
> {
> nSchiffe = nSchiffe/10;
> PriceS = PriceS-2;
> }while (nSchiffe % 10 == 0);
> do
> {
> nSchiffe = nSchiffe/100;
> PriceS = PriceS-PriceS*0.1;
> }while (nSchiffe % 100 == 0);
> }
> else if (Geschenk == 'n')
> {
> PriceS = nSchiffe*5;
> do
> {
> nSchiffe = nSchiffe/10;
> PriceS = PriceS-2;
> }while (nSchiffe % 10 == 0);
> do
> {
> nSchiffe = nSchiffe/100;
> PriceS = PriceS-PriceS*0.1;
> }while (nSchiffe % 100 == 0);
> }
>
> //Hubschrauber
> if (Geschenk == 'j')
> {
> PriceH = nHubschrauber*10 + nHubschrauber*0.5;
> do
> {
> nHubschrauber = nHubschrauber/10;
> PriceH = PriceH-2;
> }while (nHubschrauber % 10 == 0);
> do
> {
> nHubschrauber = nHubschrauber/100;
> PriceH = PriceH-PriceH*0.1;
> }while (nHubschrauber % 100 == 0);
> }
> else if (Geschenk == 'n')
> {
> PriceH = nHubschrauber*10;
> do
> {
> nHubschrauber = nHubschrauber/10;
> PriceH = PriceH-2;
> }while (nHubschrauber % 10 == 0);
> do
> {
> nHubschrauber = nHubschrauber/100;
> PriceH = PriceH-PriceH*0.1;
> }while (nHubschrauber % 100 == 0);
> }
>
> Price = PriceL + PriceP + PriceS + PriceH;
>
> return Price;
> }
>
> int _tmain(int argc, _TCHAR* argv[])
> {
> Spielzeugladen MySpielzeugladen;
>
> MySpielzeugladen.nLastwagen = 0;
> MySpielzeugladen.nPuppen = 0;
> MySpielzeugladen.nSchiffe = 0;
> MySpielzeugladen.nHubschrauber = 0;
>
> cout << endl << "Spielzeugladen" << endl << endl;
> cout << endl << "Anzahl Lastwagen: " << endl << endl;
> cin >> MySpielzeugladen.nLastwagen;
>
> cout << endl << "Anzahl Puppen: " << endl << endl;
> cin >> MySpielzeugladen.nPuppen;
>
> cout << endl << "Anzahl Schiffe: " << endl << endl;
> cin >> MySpielzeugladen.nSchiffe;
>
> cout << endl << "Anzahl Hubschrauber: " << endl << endl;
> cin >> MySpielzeugladen.nHubschrauber;
>
> cout << endl << "Als Geschenk einpacken? --> j, sonst n
> eingeben" << endl << endl;
> cin >> MySpielzeugladen.Geschenk;
>
> MySpielzeugladen.setAnzahl(MySpielzeugladen.nLastwagen,
> MySpielzeugladen.nPuppen, MySpielzeugladen.nSchiffe,
> MySpielzeugladen.nHubschrauber);
>
> cout << "Gesamtpreis: " << MySpielzeugladen.getPrice() <<
> endl << endl;
>
> system("pause");
> return 0;
> }
Den Programmcode kannst Du
zwischen [mm][code][/mm] und [mm][/code][/mm] einschliessen:
Gruss
MathePower
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 20:55 Mo 07.01.2013 | Autor: | pina7 |
Hallo und danke für die schnelle Antwort. Ich habe es noch nicht ganz hinbekommen.
1: |
| 2: |
| 3: | #pragma once
| 4: | #include "stdafx.h"
| 5: |
| 6: | class Spielzeugladen
| 7: | {
| 8: | protected:
| 9: | //Anzahl des jeweiligen Spielzeugs
| 10: | int m_nLastwagen;
| 11: | int m_nPuppen;
| 12: | int m_nSchiffe;
| 13: | int m_nHubschrauber;
| 14: | public:
| 15: | int nLastwagen;
| 16: | int nPuppen;
| 17: | int nSchiffe;
| 18: | int nHubschrauber;
| 19: | int nSpielzeuge; //Gesamtanzahl Spielzeuge
| 20: | float Price; //Gesamtpreis
| 21: | char Geschenk; //Geschenkverpackung
| 22: | void setAnzahl(int nLastwagen, int nPuppen, int nSchiffe, int nHubschrauber);
| 23: | float getPrice();
| 24: | };
| 25: |
| 26: | #include "stdafx.h"
| 27: | #include "Spielzeugladen.h"
| 28: | #include <iostream>
| 29: | #define _USE_MATH_DEFINES
| 30: | #include <math.h>
| 31: |
| 32: | using namespace std;
| 33: |
| 34: | void Spielzeugladen::setAnzahl(int nLastwagen, int nPuppen, int nSchiffe, int nHubschrauber)
| 35: | {
| 36: | int m_nLastwagen = nLastwagen;
| 37: | int m_nPuppen = nPuppen;
| 38: | int m_nSchiffe = nSchiffe;
| 39: | int m_nHubschrauber = nHubschrauber;
| 40: | }
| 41: |
| 42: | float Spielzeugladen::getPrice()
| 43: | {
| 44: | char Geschenk = ' ';
| 45: | float PriceL = 0.0;
| 46: | float PriceP = 0.0;
| 47: | float PriceS = 0.0;
| 48: | float PriceH = 0.0;
| 49: | float Price = 0.0;
| 50: | int nSpielzeuge = 0;
| 51: |
| 52: | nSpielzeuge = nLastwagen + nPuppen + nSchiffe + nHubschrauber;
| 53: |
| 54: | if (Geschenk == 'j')
| 55: | {
| 56: | PriceL = (nLastwagen*1) + (nLastwagen*0.5);
| 57: | PriceP = (nPuppen*2) + (nPuppen*0.5);
| 58: | PriceS = (nSchiffe*5) + (nSchiffe*0.5);
| 59: | PriceH = (nHubschrauber*10) + (nHubschrauber*0.5);
| 60: | }
| 61: | else if (Geschenk == 'n')
| 62: | {
| 63: | PriceL = (nLastwagen*1);
| 64: | PriceP = (nPuppen*2);
| 65: | PriceS = (nSchiffe*5);
| 66: | PriceH = (nHubschrauber*10);
| 67: | }
| 68: |
| 69: | Price = PriceL + PriceP + PriceS + PriceH;
| 70: |
| 71: | do
| 72: | {
| 73: | nSpielzeuge = nSpielzeuge/10;
| 74: | Price = Price-2;
| 75: | }while (nSpielzeuge % 10 == 0);
| 76: |
| 77: | if (nSpielzeuge > 100)
| 78: | {
| 79: | Price = Price - (Price*0.1);
| 80: | }
| 81: |
| 82: | return Price;
| 83: | }
| 84: |
| 85: | int _tmain(int argc, _TCHAR* argv[])
| 86: | {
| 87: | Spielzeugladen MySpielzeugladen;
| 88: |
| 89: | MySpielzeugladen.nLastwagen = 0;
| 90: | MySpielzeugladen.nPuppen = 0;
| 91: | MySpielzeugladen.nSchiffe = 0;
| 92: | MySpielzeugladen.nHubschrauber = 0;
| 93: |
| 94: | cout << endl << "Spielzeugladen" << endl << endl;
| 95: | cout << endl << "Anzahl Lastwagen: " << endl << endl;
| 96: | cin >> MySpielzeugladen.nLastwagen;
| 97: |
| 98: | cout << endl << "Anzahl Puppen: " << endl << endl;
| 99: | cin >> MySpielzeugladen.nPuppen;
| 100: |
| 101: | cout << endl << "Anzahl Schiffe: " << endl << endl;
| 102: | cin >> MySpielzeugladen.nSchiffe;
| 103: |
| 104: | cout << endl << "Anzahl Hubschrauber: " << endl << endl;
| 105: | cin >> MySpielzeugladen.nHubschrauber;
| 106: |
| 107: | MySpielzeugladen.setAnzahl(MySpielzeugladen.nLastwagen, MySpielzeugladen.nPuppen, MySpielzeugladen.nSchiffe, MySpielzeugladen.nHubschrauber);
| 108: |
| 109: | cout << endl << "Als Geschenk einpacken? --> j, sonst n eingeben" << endl << endl;
| 110: | cin >> MySpielzeugladen.Geschenk;
| 111: |
| 112: | cout << "Gesamtpreis: " << MySpielzeugladen.getPrice() << endl << endl;
| 113: |
| 114: | system("pause");
| 115: | return 0;
| 116: | }
| 117: |
|
Also ich habe nun den Code abgespeckt und die Gesamtzahl der Spielzeuge mit eingebaut, leider erhalte ich noch nicht das richtige Ergebnis. Vielen Dank für die Hilfe
|
|
|
|
|
Hallo pina7,
> Hallo und danke für die schnelle Antwort. Ich habe es noch
> nicht ganz hinbekommen.
>
> 1: |
| 2: | >
| 3: | > #pragma once
| 4: | > #include "stdafx.h"
| 5: | >
| 6: | > class Spielzeugladen
| 7: | > {
| 8: | > protected:
| 9: | > //Anzahl des jeweiligen Spielzeugs
| 10: | > int m_nLastwagen;
| 11: | > int m_nPuppen;
| 12: | > int m_nSchiffe;
| 13: | > int m_nHubschrauber;
| 14: | > public:
| 15: | > int nLastwagen;
| 16: | > int nPuppen;
| 17: | > int nSchiffe;
| 18: | > int nHubschrauber;
| 19: | > int nSpielzeuge; //Gesamtanzahl Spielzeuge
| 20: | > float Price; //Gesamtpreis
| 21: | > char Geschenk; //Geschenkverpackung
| 22: | > void setAnzahl(int nLastwagen, int nPuppen, int nSchiffe,
| 23: | > int nHubschrauber);
| 24: | > float getPrice();
| 25: | > };
| 26: | >
| 27: | > #include "stdafx.h"
| 28: | > #include "Spielzeugladen.h"
| 29: | > #include <iostream>
| 30: | > #define _USE_MATH_DEFINES
| 31: | > #include <math.h>
| 32: | >
| 33: | > using namespace std;
| 34: | >
| 35: | > void Spielzeugladen::setAnzahl(int nLastwagen, int nPuppen,
| 36: | > int nSchiffe, int nHubschrauber)
| 37: | > {
| 38: | > int m_nLastwagen = nLastwagen;
| 39: | > int m_nPuppen = nPuppen;
| 40: | > int m_nSchiffe = nSchiffe;
| 41: | > int m_nHubschrauber = nHubschrauber;
| 42: | > }
| 43: | >
| 44: | > float Spielzeugladen::getPrice()
| 45: | > {
| 46: | > char Geschenk = ' ';
| 47: | > float PriceL = 0.0;
| 48: | > float PriceP = 0.0;
| 49: | > float PriceS = 0.0;
| 50: | > float PriceH = 0.0;
| 51: | > float Price = 0.0;
| 52: | > int nSpielzeuge = 0;
| 53: | >
| 54: | > nSpielzeuge = nLastwagen + nPuppen + nSchiffe +
| 55: | > nHubschrauber;
| 56: | >
| 57: | > if (Geschenk == 'j')
| 58: | > {
| 59: | > PriceL = (nLastwagen*1) + (nLastwagen*0.5);
| 60: | > PriceP = (nPuppen*2) + (nPuppen*0.5);
| 61: | > PriceS = (nSchiffe*5) + (nSchiffe*0.5);
| 62: | > PriceH = (nHubschrauber*10) + (nHubschrauber*0.5);
| 63: | > }
| 64: | > else if (Geschenk == 'n')
| 65: | > {
| 66: | > PriceL = (nLastwagen*1);
| 67: | > PriceP = (nPuppen*2);
| 68: | > PriceS = (nSchiffe*5);
| 69: | > PriceH = (nHubschrauber*10);
| 70: | > }
| 71: | >
| 72: | > Price = PriceL + PriceP + PriceS + PriceH;
| 73: | >
| 74: | > do
| 75: | > {
| 76: | > nSpielzeuge = nSpielzeuge/10;
| 77: | > Price = Price-2;
| 78: | > }while (nSpielzeuge % 10 == 0);
| 79: | >
| 80: | > if (nSpielzeuge > 100)
| 81: | > {
| 82: | > Price = Price - (Price*0.1);
| 83: | > }
| 84: | >
| 85: | > return Price;
| 86: | > }
| 87: | >
| 88: | > int _tmain(int argc, _TCHAR* argv[])
| 89: | > {
| 90: | > Spielzeugladen MySpielzeugladen;
| 91: | >
| 92: | > MySpielzeugladen.nLastwagen = 0;
| 93: | > MySpielzeugladen.nPuppen = 0;
| 94: | > MySpielzeugladen.nSchiffe = 0;
| 95: | > MySpielzeugladen.nHubschrauber = 0;
| 96: | >
| 97: | > cout << endl << "Spielzeugladen" << endl << endl;
| 98: | > cout << endl << "Anzahl Lastwagen: " << endl << endl;
| 99: | > cin >> MySpielzeugladen.nLastwagen;
| 100: | >
| 101: | > cout << endl << "Anzahl Puppen: " << endl << endl;
| 102: | > cin >> MySpielzeugladen.nPuppen;
| 103: | >
| 104: | > cout << endl << "Anzahl Schiffe: " << endl << endl;
| 105: | > cin >> MySpielzeugladen.nSchiffe;
| 106: | >
| 107: | > cout << endl << "Anzahl Hubschrauber: " << endl << endl;
| 108: | > cin >> MySpielzeugladen.nHubschrauber;
| 109: | >
| 110: | > MySpielzeugladen.setAnzahl(MySpielzeugladen.nLastwagen,
| 111: | > MySpielzeugladen.nPuppen, MySpielzeugladen.nSchiffe,
| 112: | > MySpielzeugladen.nHubschrauber);
| 113: | >
| 114: | > cout << endl << "Als Geschenk einpacken? --> j, sonst n
| 115: | > eingeben" << endl << endl;
| 116: | > cin >> MySpielzeugladen.Geschenk;
| 117: | >
| 118: | > cout << "Gesamtpreis: " << MySpielzeugladen.getPrice() <<
| 119: | > endl << endl;
| 120: | >
| 121: | > system("pause");
| 122: | > return 0;
| 123: | > }
| 124: | >
| 125: | > |
>
>
> Also ich habe nun den Code abgespeckt und die Gesamtzahl
> der Spielzeuge mit eingebaut, leider erhalte ich noch nicht
> das richtige Ergebnis. Vielen Dank für die Hilfe
>
Die do-while Schleife ist dahingehend abzuändern,
daß diese nur ausgeführt wird, wenn nSpielzeuge >= 10 ist.
1: |
| 2: | if (nSpielzeuge >= 10)
| 3: | {
| 4: | int gSpielzeuge=nSpielzeuge;
| 5: | do
| 6: | {
| 7: | gSpielzeuge = gSpielzeuge-10;
| 8: | Price = Price-2;
| 9: | }while (gSpielzeuge >= 10);
| 10: | }
|
Gruss
MathePower
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 22:18 Mo 07.01.2013 | Autor: | pina7 |
1: |
| 2: | #include "stdafx.h"
| 3: | #include "Spielzeugladen.h"
| 4: | #include <iostream>
| 5: | #define _USE_MATH_DEFINES
| 6: | #include <math.h>
| 7: |
| 8: | using namespace std;
| 9: |
| 10: | void Spielzeugladen::setAnzahl(int nLastwagen, int nPuppen, int nSchiffe, int nHubschrauber)
| 11: | {
| 12: | int m_nLastwagen = nLastwagen;
| 13: | int m_nPuppen = nPuppen;
| 14: | int m_nSchiffe = nSchiffe;
| 15: | int m_nHubschrauber = nHubschrauber;
| 16: | }
| 17: |
| 18: | float Spielzeugladen::getPrice()
| 19: | {
| 20: | char Geschenk = ' ';
| 21: | float PriceL = 0.0;
| 22: | float PriceP = 0.0;
| 23: | float PriceS = 0.0;
| 24: | float PriceH = 0.0;
| 25: | float Price = 0.0;
| 26: | int nSpielzeuge = 0;
| 27: |
| 28: | nSpielzeuge = nLastwagen + nPuppen + nSchiffe + nHubschrauber;
| 29: |
| 30: | if (Geschenk == 'j')
| 31: | {
| 32: | PriceL = ((nLastwagen*1) + (nLastwagen*0.5));
| 33: | PriceP = ((nPuppen*2) + (nPuppen*0.5));
| 34: | PriceS = ((nSchiffe*5) + (nSchiffe*0.5));
| 35: | PriceH = ((nHubschrauber*10) + (nHubschrauber*0.5));
| 36: | }
| 37: | else if (Geschenk == 'n')
| 38: | {
| 39: | PriceL = (nLastwagen*1);
| 40: | PriceP = (nPuppen*2);
| 41: | PriceS = (nSchiffe*5);
| 42: | PriceH = (nHubschrauber*10);
| 43: | }
| 44: |
| 45: | Price = PriceL + PriceP + PriceS + PriceH;
| 46: |
| 47: | if (nSpielzeuge >= 10)
| 48: | {
| 49: | int gSpielzeuge = nSpielzeuge;
| 50: |
| 51: | do
| 52: | {
| 53: | gSpielzeuge = gSpielzeuge-10;
| 54: | Price = Price-2;
| 55: | }while (gSpielzeuge >= 10);
| 56: | }
| 57: |
| 58: | if (nSpielzeuge > 100)
| 59: | {
| 60: | Price = Price - (Price*0.1);
| 61: | }
| 62: |
| 63: | return Price;
| 64: | }
| 65: |
| 66: | int _tmain(int argc, _TCHAR* argv[])
| 67: | {
| 68: | Spielzeugladen MySpielzeugladen;
| 69: |
| 70: | MySpielzeugladen.nLastwagen = 0;
| 71: | MySpielzeugladen.nPuppen = 0;
| 72: | MySpielzeugladen.nSchiffe = 0;
| 73: | MySpielzeugladen.nHubschrauber = 0;
| 74: |
| 75: | cout << endl << "Spielzeugladen" << endl << endl;
| 76: | cout << endl << "Anzahl Lastwagen: " << endl << endl;
| 77: | cin >> MySpielzeugladen.nLastwagen;
| 78: |
| 79: | cout << endl << "Anzahl Puppen: " << endl << endl;
| 80: | cin >> MySpielzeugladen.nPuppen;
| 81: |
| 82: | cout << endl << "Anzahl Schiffe: " << endl << endl;
| 83: | cin >> MySpielzeugladen.nSchiffe;
| 84: |
| 85: | cout << endl << "Anzahl Hubschrauber: " << endl << endl;
| 86: | cin >> MySpielzeugladen.nHubschrauber;
| 87: |
| 88: | MySpielzeugladen.setAnzahl(MySpielzeugladen.nLastwagen, MySpielzeugladen.nPuppen, MySpielzeugladen.nSchiffe, MySpielzeugladen.nHubschrauber);
| 89: |
| 90: | cout << endl << "Als Geschenk einpacken? --> j, sonst n eingeben" << endl << endl;
| 91: | cin >> MySpielzeugladen.Geschenk;
| 92: |
| 93: | cout << "Gesamtpreis: " << MySpielzeugladen.getPrice() << endl << endl;
| 94: |
| 95: | system("pause");
| 96: | return 0;
| 97: | }
|
Hallo. Das habe ich nun geändert, aber es werden immer noch keine vernünftigen Preisangaben gemacht. Ich weiß nicht, woran das noch liegen kann. Danke
|
|
|
|
|
Hallo pina7,
> 1: |
| 2: | > #include "stdafx.h"
| 3: | > #include "Spielzeugladen.h"
| 4: | > #include <iostream>
| 5: | > #define _USE_MATH_DEFINES
| 6: | > #include <math.h>
| 7: | >
| 8: | > using namespace std;
| 9: | >
| 10: | > void Spielzeugladen::setAnzahl(int nLastwagen, int nPuppen,
| 11: | > int nSchiffe, int nHubschrauber)
| 12: | > {
| 13: | > int m_nLastwagen = nLastwagen;
| 14: | > int m_nPuppen = nPuppen;
| 15: | > int m_nSchiffe = nSchiffe;
| 16: | > int m_nHubschrauber = nHubschrauber;
| 17: | > }
| 18: | >
| 19: | > float Spielzeugladen::getPrice()
| 20: | > {
| 21: | > char Geschenk = ' ';
| 22: | > float PriceL = 0.0;
| 23: | > float PriceP = 0.0;
| 24: | > float PriceS = 0.0;
| 25: | > float PriceH = 0.0;
| 26: | > float Price = 0.0;
| 27: | > int nSpielzeuge = 0;
| 28: | >
| 29: | > nSpielzeuge = nLastwagen + nPuppen + nSchiffe +
| 30: | > nHubschrauber;
| 31: | >
| 32: | > if (Geschenk == 'j')
| 33: | > {
| 34: | > PriceL = ((nLastwagen*1) + (nLastwagen*0.5));
| 35: | > PriceP = ((nPuppen*2) + (nPuppen*0.5));
| 36: | > PriceS = ((nSchiffe*5) + (nSchiffe*0.5));
| 37: | > PriceH = ((nHubschrauber*10) + (nHubschrauber*0.5));
| 38: | > }
| 39: | > else if (Geschenk == 'n')
| 40: | > {
| 41: | > PriceL = (nLastwagen*1);
| 42: | > PriceP = (nPuppen*2);
| 43: | > PriceS = (nSchiffe*5);
| 44: | > PriceH = (nHubschrauber*10);
| 45: | > }
| 46: | >
| 47: | > Price = PriceL + PriceP + PriceS + PriceH;
| 48: | >
| 49: | > if (nSpielzeuge >= 10)
| 50: | > {
| 51: | > int gSpielzeuge = nSpielzeuge;
| 52: | >
| 53: | > do
| 54: | > {
| 55: | > gSpielzeuge = gSpielzeuge-10;
| 56: | > Price = Price-2;
| 57: | > }while (gSpielzeuge >= 10);
| 58: | > }
| 59: | >
| 60: | > if (nSpielzeuge > 100)
| 61: | > {
| 62: | > Price = Price - (Price*0.1);
| 63: | > }
| 64: | >
| 65: | > return Price;
| 66: | > }
| 67: | >
| 68: | > int _tmain(int argc, _TCHAR* argv[])
| 69: | > {
| 70: | > Spielzeugladen MySpielzeugladen;
| 71: | >
| 72: | > MySpielzeugladen.nLastwagen = 0;
| 73: | > MySpielzeugladen.nPuppen = 0;
| 74: | > MySpielzeugladen.nSchiffe = 0;
| 75: | > MySpielzeugladen.nHubschrauber = 0;
| 76: | >
| 77: | > cout << endl << "Spielzeugladen" << endl << endl;
| 78: | > cout << endl << "Anzahl Lastwagen: " << endl << endl;
| 79: | > cin >> MySpielzeugladen.nLastwagen;
| 80: | >
| 81: | > cout << endl << "Anzahl Puppen: " << endl << endl;
| 82: | > cin >> MySpielzeugladen.nPuppen;
| 83: | >
| 84: | > cout << endl << "Anzahl Schiffe: " << endl << endl;
| 85: | > cin >> MySpielzeugladen.nSchiffe;
| 86: | >
| 87: | > cout << endl << "Anzahl Hubschrauber: " << endl << endl;
| 88: | > cin >> MySpielzeugladen.nHubschrauber;
| 89: | >
| 90: | > MySpielzeugladen.setAnzahl(MySpielzeugladen.nLastwagen,
| 91: | > MySpielzeugladen.nPuppen, MySpielzeugladen.nSchiffe,
| 92: | > MySpielzeugladen.nHubschrauber);
| 93: | >
| 94: | > cout << endl << "Als Geschenk einpacken? --> j, sonst n
| 95: | > eingeben" << endl << endl;
| 96: | > cin >> MySpielzeugladen.Geschenk;
| 97: | >
| 98: | > cout << "Gesamtpreis: " << MySpielzeugladen.getPrice() <<
| 99: | > endl << endl;
| 100: | >
| 101: | > system("pause");
| 102: | > return 0;
| 103: | > }
| 104: | > |
>
>
> Hallo. Das habe ich nun geändert, aber es werden immer
> noch keine vernünftigen Preisangaben gemacht. Ich weiß
> nicht, woran das noch liegen kann. Danke
In der Funktion getPrice() wird
die char-Variable Geschenk auf '' gesetzt.
Verwende stattdessen die Klassenvariable Geschenk.
Damit nicht genug.
Verwende statt den Variablen nLastwagen, nPuppen, nSchiffe,
nHubschrauber die entrsprechenden protected Klassen-Variablen.
Gruss
MathePower
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 18:24 Di 08.01.2013 | Autor: | pina7 |
Hallo und nochmals danke. Also es gibt immer noch einen Fehler. Zuerst habe ich nur das mit der Geschenkvariable geändert und das Programm ausgeführt, da bekam ich für 2 Lastwagen, 5 Puppen, 7 Schiffe und 8 Hubschrauber mit Geschenkpackung das Ergebnis 134. Fast richtig, von Hand ausgerechnet bekomm ich da 138.
Dann habe ich das mit den Variablen geändert (in der getPrice Funktion überall die Memvervariablen) und nun spuckt das Programm ganz komische Werte aus... Vielen Dank
1: |
| 2: | #include "stdafx.h"
| 3: | #include "Spielzeugladen.h"
| 4: | #include <iostream>
| 5: | #define _USE_MATH_DEFINES
| 6: | #include <math.h>
| 7: |
| 8: | using namespace std;
| 9: |
| 10: | void Spielzeugladen::setAnzahl(int nLastwagen, int nPuppen, int nSchiffe, int nHubschrauber)
| 11: | {
| 12: | int m_nLastwagen = nLastwagen;
| 13: | int m_nPuppen = nPuppen;
| 14: | int m_nSchiffe = nSchiffe;
| 15: | int m_nHubschrauber = nHubschrauber;
| 16: | }
| 17: |
| 18: | float Spielzeugladen::getPrice()
| 19: | {
| 20: | float PriceL = 0.0;
| 21: | float PriceP = 0.0;
| 22: | float PriceS = 0.0;
| 23: | float PriceH = 0.0;
| 24: | float Price = 0.0;
| 25: | int nSpielzeuge = 0;
| 26: |
| 27: | nSpielzeuge = m_nLastwagen + m_nPuppen + m_nSchiffe + m_nHubschrauber;
| 28: |
| 29: | if (Geschenk == 'j')
| 30: | {
| 31: | PriceL = ((m_nLastwagen*1) + (m_nLastwagen*0.5));
| 32: | PriceP = ((m_nPuppen*2) + (m_nPuppen*0.5));
| 33: | PriceS = ((m_nSchiffe*5) + (m_nSchiffe*0.5));
| 34: | PriceH = ((m_nHubschrauber*10) + (m_nHubschrauber*0.5));
| 35: | }
| 36: | else if (Geschenk == 'n')
| 37: | {
| 38: | PriceL = (m_nLastwagen*1);
| 39: | PriceP = (m_nPuppen*2);
| 40: | PriceS = (m_nSchiffe*5);
| 41: | PriceH = (m_nHubschrauber*10);
| 42: | }
| 43: |
| 44: | Price = PriceL + PriceP + PriceS + PriceH;
| 45: |
| 46: | if (nSpielzeuge >= 10)
| 47: | {
| 48: | int gSpielzeuge = nSpielzeuge;
| 49: |
| 50: | do
| 51: | {
| 52: | gSpielzeuge = gSpielzeuge-10;
| 53: | Price = Price-2;
| 54: | }while (gSpielzeuge >= 10);
| 55: | }
| 56: |
| 57: | if (nSpielzeuge > 100)
| 58: | {
| 59: | Price = Price - (Price*0.1);
| 60: | }
| 61: |
| 62: | return Price;
| 63: | }
| 64: |
| 65: | int _tmain(int argc, _TCHAR* argv[])
| 66: | {
| 67: | Spielzeugladen MySpielzeugladen;
| 68: |
| 69: | MySpielzeugladen.nLastwagen;
| 70: | MySpielzeugladen.nPuppen;
| 71: | MySpielzeugladen.nSchiffe;
| 72: | MySpielzeugladen.nHubschrauber;
| 73: |
| 74: | cout << endl << "Spielzeugladen" << endl << endl;
| 75: | cout << endl << "Anzahl Lastwagen: " << endl << endl;
| 76: | cin >> MySpielzeugladen.nLastwagen;
| 77: |
| 78: | cout << endl << "Anzahl Puppen: " << endl << endl;
| 79: | cin >> MySpielzeugladen.nPuppen;
| 80: |
| 81: | cout << endl << "Anzahl Schiffe: " << endl << endl;
| 82: | cin >> MySpielzeugladen.nSchiffe;
| 83: |
| 84: | cout << endl << "Anzahl Hubschrauber: " << endl << endl;
| 85: | cin >> MySpielzeugladen.nHubschrauber;
| 86: |
| 87: | MySpielzeugladen.setAnzahl(MySpielzeugladen.nLastwagen, MySpielzeugladen.nPuppen, MySpielzeugladen.nSchiffe, MySpielzeugladen.nHubschrauber);
| 88: |
| 89: | cout << endl << "Als Geschenk einpacken? --> j, sonst n eingeben" << endl << endl;
| 90: | cin >> MySpielzeugladen.Geschenk;
| 91: |
| 92: | cout << "Gesamtpreis: " << MySpielzeugladen.getPrice() << endl << endl;
| 93: |
| 94: | system("pause");
| 95: | return 0;
| 96: | }
|
|
|
|
|
|
Hallo pina7,
> Hallo und nochmals danke. Also es gibt immer noch einen
> Fehler. Zuerst habe ich nur das mit der Geschenkvariable
> geändert und das Programm ausgeführt, da bekam ich für 2
> Lastwagen, 5 Puppen, 7 Schiffe und 8 Hubschrauber mit
> Geschenkpackung das Ergebnis 134. Fast richtig, von Hand
> ausgerechnet bekomm ich da 138.
Da hast Du wohl bei der Rechnung von Hand den Rabatt vergessen.
> Dann habe ich das mit den Variablen geändert (in der
> getPrice Funktion überall die Memvervariablen) und nun
> spuckt das Programm ganz komische Werte aus... Vielen Dank
>
> 1: |
| 2: | > #include "stdafx.h"
| 3: | > #include "Spielzeugladen.h"
| 4: | > #include <iostream>
| 5: | > #define _USE_MATH_DEFINES
| 6: | > #include <math.h>
| 7: | >
| 8: | > using namespace std;
| 9: | >
| 10: | > void Spielzeugladen::setAnzahl(int nLastwagen, int nPuppen,
| 11: | > int nSchiffe, int nHubschrauber)
| 12: | > {
| 13: | > int m_nLastwagen = nLastwagen;
| 14: | > int m_nPuppen = nPuppen;
| 15: | > int m_nSchiffe = nSchiffe;
| 16: | > int m_nHubschrauber = nHubschrauber;
| 17: | > }
| 18: | >
| 19: | > float Spielzeugladen::getPrice()
| 20: | > {
| 21: | > float PriceL = 0.0;
| 22: | > float PriceP = 0.0;
| 23: | > float PriceS = 0.0;
| 24: | > float PriceH = 0.0;
| 25: | > float Price = 0.0;
| 26: | > int nSpielzeuge = 0;
| 27: | >
| 28: | > nSpielzeuge = m_nLastwagen + m_nPuppen + m_nSchiffe +
| 29: | > m_nHubschrauber;
| 30: | >
| 31: | > if (Geschenk == 'j')
| 32: | > {
| 33: | > PriceL = ((m_nLastwagen*1) + (m_nLastwagen*0.5));
| 34: | > PriceP = ((m_nPuppen*2) + (m_nPuppen*0.5));
| 35: | > PriceS = ((m_nSchiffe*5) + (m_nSchiffe*0.5));
| 36: | > PriceH = ((m_nHubschrauber*10) +
| 37: | > (m_nHubschrauber*0.5));
| 38: | > }
| 39: | > else if (Geschenk == 'n')
| 40: | > {
| 41: | > PriceL = (m_nLastwagen*1);
| 42: | > PriceP = (m_nPuppen*2);
| 43: | > PriceS = (m_nSchiffe*5);
| 44: | > PriceH = (m_nHubschrauber*10);
| 45: | > }
| 46: | >
| 47: | > Price = PriceL + PriceP + PriceS + PriceH;
| 48: | >
| 49: | > if (nSpielzeuge >= 10)
| 50: | > {
| 51: | > int gSpielzeuge = nSpielzeuge;
| 52: | >
| 53: | > do
| 54: | > {
| 55: | > gSpielzeuge = gSpielzeuge-10;
| 56: | > Price = Price-2;
| 57: | > }while (gSpielzeuge >= 10);
| 58: | > }
| 59: | >
| 60: | > if (nSpielzeuge > 100)
| 61: | > {
| 62: | > Price = Price - (Price*0.1);
| 63: | > }
| 64: | >
| 65: | > return Price;
| 66: | > }
| 67: | >
| 68: | > int _tmain(int argc, _TCHAR* argv[])
| 69: | > {
| 70: | > Spielzeugladen MySpielzeugladen;
| 71: | >
| 72: | > MySpielzeugladen.nLastwagen;
| 73: | > MySpielzeugladen.nPuppen;
| 74: | > MySpielzeugladen.nSchiffe;
| 75: | > MySpielzeugladen.nHubschrauber;
| 76: | >
| 77: | > cout << endl << "Spielzeugladen" << endl << endl;
| 78: | > cout << endl << "Anzahl Lastwagen: " << endl << endl;
| 79: | > cin >> MySpielzeugladen.nLastwagen;
| 80: | >
| 81: | > cout << endl << "Anzahl Puppen: " << endl << endl;
| 82: | > cin >> MySpielzeugladen.nPuppen;
| 83: | >
| 84: | > cout << endl << "Anzahl Schiffe: " << endl << endl;
| 85: | > cin >> MySpielzeugladen.nSchiffe;
| 86: | >
| 87: | > cout << endl << "Anzahl Hubschrauber: " << endl << endl;
| 88: | > cin >> MySpielzeugladen.nHubschrauber;
| 89: | >
| 90: | > MySpielzeugladen.setAnzahl(MySpielzeugladen.nLastwagen,
| 91: | > MySpielzeugladen.nPuppen, MySpielzeugladen.nSchiffe,
| 92: | > MySpielzeugladen.nHubschrauber);
| 93: | >
| 94: | > cout << endl << "Als Geschenk einpacken? --> j, sonst n
| 95: | > eingeben" << endl << endl;
| 96: | > cin >> MySpielzeugladen.Geschenk;
| 97: | >
| 98: | > cout << "Gesamtpreis: " << MySpielzeugladen.getPrice() <<
| 99: | > endl << endl;
| 100: | >
| 101: | > system("pause");
| 102: | > return 0;
| 103: | > }
| 104: | > |
Gruss
MathePower
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:35 Di 08.01.2013 | Autor: | pina7 |
*g* peinlich...
Also dann danke
|
|
|
|