matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenC/C++Preisberechnung mit Klasse
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "C/C++" - Preisberechnung mit Klasse
Preisberechnung mit Klasse < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Preisberechnung mit Klasse: Korrektur
Status: (Frage) beantwortet Status 
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;
}

        
Bezug
Preisberechnung mit Klasse: Antwort
Status: (Antwort) fertig Status 
Datum: 17:26 Mo 07.01.2013
Autor: MathePower

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:

1:
2: Programmcode



Gruss
MathePower

Bezug
                
Bezug
Preisberechnung mit Klasse: Korrektur
Status: (Frage) beantwortet Status 
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


Bezug
                        
Bezug
Preisberechnung mit Klasse: Antwort
Status: (Antwort) fertig Status 
Datum: 21:18 Mo 07.01.2013
Autor: MathePower

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

Bezug
                                
Bezug
Preisberechnung mit Klasse: Korrektur
Status: (Frage) beantwortet Status 
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

Bezug
                                        
Bezug
Preisberechnung mit Klasse: Antwort
Status: (Antwort) fertig Status 
Datum: 17:41 Di 08.01.2013
Autor: MathePower

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

Bezug
                                                
Bezug
Preisberechnung mit Klasse: Korrektur
Status: (Frage) beantwortet Status 
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: }


Bezug
                                                        
Bezug
Preisberechnung mit Klasse: Antwort
Status: (Antwort) fertig Status 
Datum: 18:32 Di 08.01.2013
Autor: MathePower

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

Bezug
                                                                
Bezug
Preisberechnung mit Klasse: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:35 Di 08.01.2013
Autor: pina7

*g* peinlich...
Also dann danke :-)

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]