Übung 3
Übung 3.1
Aufgabe:
Lösung:
#include <iostream>
#include <iomanip> // Für Formatierung mit setw und fixed
class Umrechnung {
private:
int start, ende, schritt;
const double faktor = 1.621371; // Umrechnungsfaktor von Meilen in Kilometer
public:
// Konstruktor
Umrechnung(int s, int e, int st) : start(s), ende(e), schritt(st) {}
// Methode zur Ausgabe der Umrechnungstabelle
void ausgabe() {
// Tabellenkopf ausgeben
std::cout << std::setw(6) << "Meile" << " | " << std::setw(6) << "km" << std::endl;
std::cout << "-------+--------" << std::endl;
// Schleife für die Umrechnung und Ausgabe
for (int meilen = start; meilen <= ende; meilen += schritt) {
double km = meilen * faktor;
std::cout << std::setw(6) << meilen
<< " | " << std::setw(6) << std::fixed << std::setprecision(2) << km
<< std::endl;
}
}
};
// Hauptprogramm
int main() {
// Objekt der Klasse Umrechnung mit Startwert, Endwert und Schrittweite
Umrechnung tabelle(20, 70, 5);
// Aufruf der Methode zur Ausgabe der Tabelle
tabelle.ausgabe();
return 0;
}
#include <cassert>
#include <iostream>
#include <string>
// Basisklasse Event
class Event {
public:
virtual std::string info() const {
return "Event";
}
virtual ~Event() {}
};
// Abgeleitete Klasse Konzert
class Konzert : public Event {
private:
std::string kuenstler;
std::string genre;
public:
// Konstruktor
Konzert(const std::string& k, const std::string& g)
: kuenstler(k), genre(g) {}
// Überschreiben der info()-Methode
std::string info() const override {
return "Konzert: " + kuenstler + " - Genre: " + genre;
}
// Getter-Methoden für Unit-Tests
std::string getKuenstler() const { return kuenstler; }
std::string getGenre() const { return genre; }
};
// **Unit-Test**
int main() {
// Konzert-Objekt erstellen
Konzert konzert("Coldplay", "Rock");
// Überprüfung der Methode info()
std::string ergebnis = konzert.info();
std::cout << "Ergebnis von info(): " << ergebnis << std::endl;
assert(ergebnis == "Konzert: Coldplay - Genre: Rock");
// Überprüfung der Getter-Methoden
assert(konzert.getKuenstler() == "Coldplay");
assert(konzert.getGenre() == "Rock");
std::cout << "Alle Tests erfolgreich bestanden!" << std::endl;
return 0;
}Last updated on