Suche jemanden der mir bei einer Klassenhierarchie Aufgabe in C++ hilft
-
Hallo Zusammen,
ich muss bis morgen eine Aufgabe lösen und habe leider überhaupt keine Ahnung.
Es muss ein Programmcode in C++ erstellt werden mit einer Basisklasse von der eine andere Klasse abgeleitet wird. Von der abgeleiten Klasse wird nochmal eine Klasse abgeleitet.
Das ist die Basisklasse:
class CElektronikBauteil
{
protected:
string bauform;
public:
CElektronikBauteil(string nBauform = "") : bauform(nBauform) {}string GetBauform() const {return bauform;}
void SetBauform (string nBauform) {bauform = nBauform;}virtual void PrintBauteilInfo() const = 0;
};Ich wollte jetzt wegen der Übersichtlichleit nicht den ganzen Aufgabentext hier rein stellen, kann dies bei Interesse aber gerne noch machen.
Gerne bin ich auch bereit eine Aufwandsentschädigung zu zahlen.
Hier ist noch der Link zur Aufgabe http://www.directupload.net/file/d/3977/n3wbgf5j_pdf.htm
-
Ich bin gerade dabei, die Aufgaben zu lösen.
-
Hier der Quellcode (main.cpp)
#include <iostream> #include <string> enum KondensatorTyp {ELKO, TANTAL, FOLIE}; class CElektronikBauteil { protected: std::string bauform; public: CElektronikBauteil(std::string nBauform = "") : bauform(nBauform) {} std::string GetBauform() const { return bauform; } void SetBauform(std::string nBauform) { bauform = nBauform; } }; class CPassiv : public CElektronikBauteil { protected: int wert; std::string einheitsZeichen; public: CPassiv(std::string nBauform = "", int nWert = 0, std::string nEinheitsZeichen = "") : einheitsZeichen(nEinheitsZeichen) { bauform = nBauform; wert = nWert; } inline int GetWert(); inline void SetWert(int nWert) { wert = nWert; } void PrintBauteilInfo() { std::cout << "Bauform: " << bauform << std::endl; std::cout << "Bauteilwert: " << wert << ' ' << einheitsZeichen << std::endl; } }; class CKondensator : public CPassiv { KondensatorTyp typ; int spannungsFestigkeit; public: CKondensator(std::string nBauform = "", int nWert = 0, std::string nEinheitsZeichen = "", KondensatorTyp nTyp = ELKO, int nSpannungsFestigkeit = 100) { bauform = nBauform; einheitsZeichen = nEinheitsZeichen; wert = nWert; typ = nTyp; spannungsFestigkeit = nSpannungsFestigkeit; } int GetSpannungsfestigkeit() { return spannungsFestigkeit; } void SetSpannungsfestigkeit(int nSpannungsFestigkeit) { spannungsFestigkeit = nSpannungsFestigkeit; } void PrintBauteilInfo() { std::cout << "Kondensatortyp: "; if(typ == ELKO) { std::cout << "Elko"; } else if(typ == TANTAL) { std::cout << "Tantalkondensator"; } else { std::cout << "Folienkondensator"; } std::cout << std::endl; std::cout << "Bauform: " << bauform << std::endl; std::cout << "Bauteilwert: " << wert << ' ' << einheitsZeichen << std::endl; std::cout << "Spannungsfestigkeit: " << spannungsFestigkeit << " V" << std::endl; } }; int main() { CElektronikBauteil bauteil("THT 2,5"); std::cout << bauteil.GetBauform() << std::endl; CPassiv bauteil2("THT 2,5", 500, "uF"); bauteil2.PrintBauteilInfo(); CKondensator kondensator("THT 2,5", 500, "uF", FOLIE, 100); kondensator.PrintBauteilInfo(); }
Die main()-Funktion dient der Überprüfung.
-
Cool, vielen vielen Dank!
Ich habe mich schon seit gestern Nachmittag damit rumgeplagt und hatte schon langsam die Hoffung aufgegeben.
Danke
-
Ich glaube, das mit dem Vorzeichen der Einheit war anders gemeint.