Mam problem , potrzebuje zadania na studia, posiadam taka treść i napisalem troche kodu, ale na tym moje umiejetnosci sie zatrzymały, płace w złocie, blagam o pomoc:
#include <iostream>
#define LICZBA_ELEMENTOW 5
using namespace std;
class element {
protected:
double prad;
double napiecie;
double moc;
double czestotliwosc;
std::string nazwa;
public:
virtual ~element(){};
element() {nazwa = "element"; czestotliwosc = 1.0; napiecie = prad = moc = 0.0;}
element(const std::string arg) {nazwa = arg; napiecie = czestotliwosc = 1.0; prad = moc = 0.0;}
virtual void wymuszenieU(double) = 0;
friend void obwod(element*, element*);
};
void obwod(element *e1, element *e2) {
bool pradMatch = false;
bool napiecieMatch = false;
if (e1->prad == e2->prad) {
pradMatch = true;
}
if (e1->napiecie == e2->napiecie) {
napiecieMatch = true;
}
if ((pradMatch && !napiecieMatch) || (!pradMatch && napiecieMatch)) {
//std::string matchType = (pradMatch)?"prad":"napiecie";
std::string matchType;
if (pradMatch) {
matchType = "prad";
} else {
matchType = "napiecie";
}
cout << "elementy: " << e1->nazwa.c_str() << " oraz: " << e2->nazwa.c_str() << " maja taki sam: " << matchType.c_str() << endl;
} else {
if (pradMatch && napiecieMatch) {
cout << "elementy: " << e1->nazwa.c_str() << " oraz: " << e2->nazwa.c_str() << " sa nieokreslone." << endl;
} else {
cout << "elementy: " << e1->nazwa.c_str() << " oraz: " << e2->nazwa.c_str() << " sa nie polaczone." << endl;
}
}
}
class cewka : public element {
protected:
double L;
public:
cewka() {nazwa = "cewka"; L = 1.0;}
cewka(const std::string arg) {nazwa = arg; L = 1.0;}
cewka(const std::string arg, double argL) {nazwa = arg; L = argL;}
void wymuszenieU(double);
};
void cewka::wymuszenieU(double u) {
napiecie = u;
if (czestotliwosc > 0.0) {
prad = u/(6.28*czestotliwosc*L);
}
}
int main() {
element* tab[LICZBA_ELEMENTOW];
for (int i=0; i<(LICZBA_ELEMENTOW); i++) {
tab[0] = new cewka("cewka1");
}
tab[0] = new cewka("cewka1");
tab[1] = new cewka("cewka2", 3.0);
tab[2] = new cewka("cewka3");
tab[3] = new cewka("cewka4", 3.0);
tab[4] = new cewka("cewka5", 3.0);
tab[0]->wymuszenieU(5);
tab[1]->wymuszenieU(5);
for (int i=0; i<(LICZBA_ELEMENTOW-1); i++) {
for (int j=i+1; j<LICZBA_ELEMENTOW; j++) {
obwod(tab[i], tab[j]);
}
}
for (int i=0; i<LICZBA_ELEMENTOW; i++) {
delete tab[i];
}
return 0;
}