|
Einsendung:
Lösung
#include <iostream>
#include <string>
using namespace std;
class Konto
{
protected:
double kontostand;
public:
Konto()
{
kontostand=0;
};
void einzahlen(double einzahlung)
{
kontostand+=einzahlung;
};
virtual bool darfAuszahlen(double betrag)=0;
void auszahlen(double auszahlung)
{
if(darfAuszahlen(auszahlung))
kontostand-=auszahlung;
else
cout<<"Auszahlung nicht moeglich!\n";
};
virtual void anzeigen()
{
cout<<"Kontostand: "<<kontostand<<endl;
};
virtual void jahresabschluss()=0;
};
class Girokonto:public Konto
{
private:
double ueberziehungsrahmen;
public:
Girokonto()
{
ueberziehungsrahmen=1000;
};
bool darfAuszahlen(double betrag)//virtual in Konto
{
return betrag<=kontostand+ueberziehungsrahmen;
};
void anzeigen()//virtual in Konto
{
Konto::anzeigen();
cout<<"Ueberziehungsrahmen: "<<ueberziehungsrahmen<<endl;
};
void jahresabschluss()
{
kontostand-=30;
};
};
class Sparkonto:public Konto
{
private:
double zinssatz;
public:
Sparkonto()
{
zinssatz=0.1;
};
void anzeigen()//virtual in Konto
{
Konto::anzeigen();
cout<<"Zinssatz: "<<zinssatz*100<<endl;
};
bool darfAuszahlen(double betrag)//virtual in Konto
{
return betrag<=kontostand;
};
void jahresabschluss()
{
kontostand+=kontostand*zinssatz;;
};
};
void inhaberUndKontoAnzeigen(string inhaber,Konto *pKto)
{
cout<<"Inhaber: "<<inhaber<<endl;
pKto->anzeigen();
cout<<endl;
};
void main()
{
Girokonto g;
g.einzahlen(10);
g.jahresabschluss();
g.auszahlen(1000);
g.auszahlen(100);
g.anzeigen();
Sparkonto s;
s.einzahlen(200);
s.jahresabschluss();
s.auszahlen(1000);
s.auszahlen(100);
s.anzeigen();
}; |
Falls Ihnen Fehler im Text auffallen oder Sie Verbesserungsvorschläge haben, dann
schicken Sie mir bitte eine Mail. Ich werde mich dann sofort darum kümmern.
[aktuelle Version]
[inhalt]
[index]
[Fehlerkorrektur, Verbesserungsvorschlag]
© Volkard Henkel <volkard@normannia.de>,
last update: 08/25/00
|
|