www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de