Römische Zahlen

11.04.2017 11:30 Uhr

Stufe 1

#include

using namespace std;
#include "rom1.h"

int main()
{
ClRomZahl zahl1, zahl2, ergebnis;

cout << "Bitte geben Sie eine erste Zahl ein:";
zahl1.hole();
cout << "Bitte geben Sie eine zweite Zahl ein:";
zahl2.hole();

ergebnis.addiere(zahl1,zahl2);

cout << zahl1.druckbar() << " + " << zahl2.druckbar() << " = " << ergebnis.druckbar() << endl;
}

Anmerkung: Alle Bibliotheken (im Folgenden) sind identisch, werden aber getrennt angeführt, da sie unterschiedliche Headerversionen „includen“.

Download code: rom1

Stufe 2

#include

using namespace std;
#include "rom2.h"

int main()
{
ClRomZahl zahl1, zahl2, ergebnis;

cout << "Bitte geben Sie eine erste Zahl ein:";
zahl1.hole();
cout << "Bitte geben Sie eine zweite Zahl ein:";
zahl2.hole();

ergebnis = zahl1.addiere(zahl2);

cout << zahl1.druckbar() << " + " << zahl2.druckbar() << " = " << ergebnis.druckbar() << endl;
}

Stufe 2 Header

class ClRomZahl
{
public:
ClRomZahl() { arabisch=0; zuRom(); }
ClRomZahl( int start) { arabisch=start; zuRom(); }

void hole() { cin >> roemisch; zuArabien();}
char *druckbar() { return roemisch; }
ClRomZahl addiere(const ClRomZahl & zahl2)
{
return ClRomZahl(arabisch+zahl2.arabisch);
}
private:
char roemisch[20];
int arabisch;
void zuArabien();
void zuRom();
} ;

Download code: rom2

Stufe 3

#include 

using namespace std;
#include "rom3.h"

int main()
{
ClRomZahl zahl1, zahl2, ergebnis;

cout << "Bitte geben Sie eine erste Zahl ein:";
zahl1.hole();
cout << "Bitte geben Sie eine zweite Zahl ein:";
zahl2.hole();

ergebnis = zahl1 + zahl2;

cout << zahl1.druckbar() << " + " << zahl2.druckbar() << " = " << ergebnis.druckbar() << endl;
}

Stufe 3 Header

class ClRomZahl
{
public:
ClRomZahl() { arabisch=0; zuRom(); }
ClRomZahl( int start) { arabisch=start; zuRom(); }
void hole() { cin >> roemisch; zuArabien();}
char *druckbar() { return roemisch; }
ClRomZahl operator+ (const ClRomZahl & zahl2)
{
return ClRomZahl(arabisch+zahl2.arabisch);
}

private:
char roemisch[20];
int arabisch;
void zuArabien();
void zuRom();
} ;

Download code:rom3

Stufe 4

#include 

using namespace std;
#include "rom4.h"

int main()
{
ClRomZahl zahl1, zahl2, ergebnis;

cout << "Bitte geben Sie eine erste Zahl ein:";
zahl1.hole();
cout << "Bitte geben Sie eine zweite Zahl ein:";
zahl2.hole();

ergebnis = zahl1 + zahl2;
cout << zahl1.druckbar() << " + " << zahl2.druckbar() << " = " << ergebnis.druckbar() << endl;

ergebnis = zahl1++;
cout << ergebnis.druckbar() << " = " << zahl1.druckbar() << " - 1" << endl;

ergebnis = ++zahl1;
cout << ergebnis.druckbar() << " = " << zahl1.druckbar() << endl;
}

Stufe 4 Header

class ClRomZahl
{
public:
ClRomZahl() { arabisch=0; zuRom(); }
ClRomZahl( int start) { arabisch=start; zuRom(); }
void hole() { cin >> roemisch; zuArabien();}
char *druckbar() { return roemisch; }
ClRomZahl operator+ (const ClRomZahl & zahl2)
{
return ClRomZahl(arabisch+zahl2.arabisch);
}
const ClRomZahl& operator++ () // Präfix (i.e.: vor der "Verwendung")
{
arabisch++;
zuRom();
return *this;
}
const ClRomZahl operator++ (int) // Postfix (i.e.: nach der "Verwendung")
{
ClRomZahl kopie(*this);
arabisch++;
zuRom();
return kopie;
}

private:
char roemisch[20];
int arabisch;
void zuArabien();
void zuRom();
} ;

Download code: rom4

Stufe 5

#include

using namespace std;
#include "rom5.h"

int main()
{
ClRomZahl zahl1, zahl2, ergebnis;

cout << "Bitte geben Sie eine erste Zahl ein:";
zahl1.hole();
cout << "Bitte geben Sie eine zweite Zahl ein:";
zahl2.hole();

ergebnis = zahl1 + zahl2;
cout << zahl1 << " + " << zahl2 << " = " << ergebnis << endl;

ergebnis = zahl1++;
cout << ergebnis << " = " << zahl1 << " - 1" << endl;

ergebnis = ++zahl1;
cout << ergebnis << " = " << zahl1 << endl;

}

Stufe 5 Header

class ClRomZahl
{
public:
ClRomZahl() { arabisch=0; zuRom(); }
ClRomZahl( int start) { arabisch=start; zuRom(); }
void hole() { cin >> roemisch; zuArabien();}
char *druckbar() { return roemisch; }
ClRomZahl operator+ (const ClRomZahl & zahl2)
{
return ClRomZahl(arabisch+zahl2.arabisch);
}
const ClRomZahl& operator++ () // Präfix (i.e.: vor der "Verwendung")
{
arabisch++;
zuRom();
return *this;
}
const ClRomZahl operator++ (int) // Postfix (i.e.: nach der "Verwendung")
{
ClRomZahl kopie(*this);
arabisch++;
zuRom();
return kopie;
}
friend ostream & operator << (ostream &ausgabe, ClRomZahl &zahl)
{
ausgabe << zahl.roemisch;
return ausgabe;
}

private:
char roemisch[20];
int arabisch;
void zuArabien();
void zuRom();
} ;

Download code: rom5

Stufe 6

#include

using namespace std;
#include "rom6.h"

int main()
{
ClRomZahl zahl1, zahl2, ergebnis;

cout << "Bitte geben Sie eine erste Zahl ein:"; cin >> zahl1;
cout << "Bitte geben Sie eine zweite Zahl ein:"; cin >> zahl2;

ergebnis = zahl1 + zahl2;
cout << zahl1 << " + " << zahl2 << " = " << ergebnis << endl;

ergebnis = zahl1++;
cout << ergebnis << " = " << zahl1 << " - 1" << endl;

ergebnis = ++zahl1;
cout << ergebnis << " = " << zahl1 << endl;
}

Stufe 6 Header

class ClRomZahl
{
public:
ClRomZahl() { arabisch=0; zuRom(); }
ClRomZahl( int start) { arabisch=start; zuRom(); }
char *druckbar() { return roemisch; }
ClRomZahl operator+ (const ClRomZahl & zahl2)
{
return ClRomZahl(arabisch+zahl2.arabisch);
}
const ClRomZahl& operator++ () // Präfix (i.e.: vor der "Verwendung")
{
arabisch++;
zuRom();
return *this;
}
const ClRomZahl operator++ (int) // Postfix (i.e.: nach der "Verwendung")
{
ClRomZahl kopie(*this);
arabisch++;
zuRom();
return kopie;
}
friend ostream & operator << (ostream &ausgabe, ClRomZahl &zahl)
{
ausgabe << zahl.roemisch; return ausgabe; } friend istream & operator >> (istream &eingabe, ClRomZahl &zahl)
{
eingabe >> zahl.roemisch;
zahl.zuArabien();
return eingabe;
} 

private:
char roemisch[20];
int arabisch;
void zuArabien();
void zuRom();
} ;

Download code: rom6

Stufe 7

#include

using namespace std;
#include "rom7.h"

int main()
{
ClRomZahl zahl1, ergebnis;
int zahl2;

cout << "Bitte geben Sie eine erste (roemische) Zahl ein:"; cin >> zahl1;
cout << "Bitte geben Sie eine zweite (arabische) Zahl ein:"; cin >> zahl2;

ergebnis = zahl1 + zahl2;
cout << zahl1 << " + " << zahl2 << " = " << ergebnis << endl;
}

Stufe 7 Header

class ClRomZahl
{
public:
ClRomZahl() { arabisch=0; zuRom(); }
ClRomZahl( int start) { arabisch=start; zuRom(); }
char *druckbar() { return roemisch; }
ClRomZahl operator+ (const ClRomZahl & zahl2)
{
return ClRomZahl(arabisch+zahl2.arabisch);
}
ClRomZahl operator+ (const int zahl2)
{
return ClRomZahl(arabisch+zahl2);
}

const ClRomZahl& operator++ () // Präfix (i.e.: vor der "Verwendung")
{
arabisch++;
zuRom();
return *this;
}
const ClRomZahl operator++ (int) // Postfix (i.e.: nach der "Verwendung")
{
ClRomZahl kopie(*this);
arabisch++;
zuRom();
return kopie;
}
friend ostream & operator << (ostream &ausgabe, ClRomZahl &zahl)
{
ausgabe << zahl.roemisch; return ausgabe; } friend istream & operator >> (istream &eingabe, ClRomZahl &zahl)
{
eingabe >> zahl.roemisch;
zahl.zuArabien();
return eingabe;
}
private:
char roemisch[20];
int arabisch;
void zuArabien();
void zuRom();
} ;

Download code: rom7

Stufe 8

#include 

using namespace std;
#include "rom8.h"

int main()
{
int zahl1;
ClRomZahl zahl2, ergebnis;

cout << "Bitte geben Sie eine erste (arabische) Zahl ein:"; cin >> zahl1;
cout << "Bitte geben Sie eine zweite (roemische) Zahl ein:"; cin >> zahl2;

ergebnis = zahl1 + zahl2;
cout << zahl1 << " + " << zahl2 << " = " << ergebnis << endl;
}

Stufe 8 Header

class ClRomZahl
{
public:
ClRomZahl() { arabisch=0; zuRom(); }
ClRomZahl( int start) { arabisch=start; zuRom(); }
char *druckbar() { return roemisch; }
ClRomZahl operator+ (const ClRomZahl & zahl2)
{
return ClRomZahl(arabisch+zahl2.arabisch);
}
ClRomZahl operator+ (const int zahl2)
{
return ClRomZahl(arabisch+zahl2);
}
friend int operator+ (const int &azahl,const ClRomZahl &rzahl)
{
return azahl + rzahl.arabisch;
}

ClRomZahl& operator= (const int zahl)
{
arabisch=zahl;
zuRom();
return *this;
}
const ClRomZahl& operator++ () // Präfix (i.e.: vor der "Verwendung")
{
arabisch++;
zuRom();
return *this;
}
const ClRomZahl operator++ (int) // Postfix (i.e.: nach der "Verwendung")
{
ClRomZahl kopie(*this);
arabisch++;
zuRom();
return kopie;
}
friend ostream & operator << (ostream &ausgabe, ClRomZahl &zahl)
{
ausgabe << zahl.roemisch; return ausgabe; } friend istream & operator >> (istream &eingabe, ClRomZahl &zahl)
{
eingabe >> zahl.roemisch;
zahl.zuArabien();
return eingabe;
}
private:
char roemisch[20];
int arabisch;
void zuArabien();
void zuRom();
} ;

Download code: rom8