Definition einer Klasse für rationale Zahlen in Form einer eigenen Headerdatei
#include <iostream> using namespace std; int ggt(int x,int y); class CRZahl { // hier wird die Klasse CRZahl impementiert private: int zaehler,nenner; // Eigenschaften (Properties) public: void eingabe(); // Methoden void eingabedez(); void ausgabe(); void ausgabedez(); void kuerzen(); void erweitern(int e); }; // Implementierung der Methoden void CRZahl::eingabe() { cout << "\nZaehler: "; cin >> zaehler; cout << "Nenner: "; cin >> nenner; } void CRZahl::eingabedez() { float rzahl; cout << "\nRationale Zahl: "; cin >> rzahl; float hzaehler=rzahl*1000; zaehler=(int)hzaehler; nenner=1000; } void CRZahl::ausgabe() { cout<<zaehler<<"/"<<nenner<<endl; } void CRZahl::ausgabedez(){ float z; z=(float)zaehler/nenner; cout << "Bruch als Dezimalzahl: " << z << "\n"; } void CRZahl::kuerzen() { int teiler=ggt(zaehler,nenner); zaehler=zaehler/teiler;nenner=nenner/teiler; } void CRZahl::erweitern(int e) { zaehler=zaehler*e; nenner=nenner*e; } // Implementierung der Funktionen int ggt(int a, int b) { while (a!=b) { if (a>b) a=a-b; else if (b>a) b=b-a; } return a; }
Beispeildatei, die die obige Klasse nützt:
//Klassen und Objekte #include <rzahlen.h> main () {CRZahl Bruch; cout<<"Rationale Zahlen\n"; Bruch.eingabe(917,700); Bruch.ausgabe(); Bruch.kuerzen(); Bruch.ausgabe(); Bruch.erweitern(2); Bruch.ausgabedez(); Bruch.eingabedez(1.54); cout<<endl; Bruch.ausgabe(); system("PAUSE"); }