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