Cześć,
Mam taki problem, jak należy poprawnie napisać kod aby używać jedną klasę w drugiej. Sory za nie ogar, ale to mój pierwszy post a nie mogłem znaleźć odpowiedzi w google.
To mój kod:
#include <iostream>
#include <sstream>
class Obrabiarka
{
private:
Czas* zes = nullptr;
int ilosc;
public:
Obrabiarka();
~Obrabiarka();
void dodanie(Czas nowy);
void odczyt();
void odczyt_wybrany();
void wypisanie_wszystkiego();
Czas zsumowanie_wszystkiego(Czas suma);
};
#####################################################################################
#include "Obrabiarka.h"
#include "Czas.h"
#include <sstream>
Obrabiarka::Obrabiarka()
{
ilosc = 1;
zes = new Czas[ilosc];
}
Obrabiarka::~Obrabiarka()
{
delete[] zes;
}
void Obrabiarka::dodanie(Czas nowy)
{
zes[ilosc - 1].calyczas(
nowy.dsek(),
nowy.dmin(),
nowy.dgodz()
);
ilosc = ilosc + 1;
}
void Obrabiarka::odczyt()
{
std::cout <<"ilosc czasów:" <<ilosc;
}
void Obrabiarka::odczyt_wybrany()
{
int nr;
std::cout << "który odczyt chcesz zobaczyć wpisz cyfre: ";
std::cin >> nr;
if (nr < ilosc)
{
zes[nr - 1].ileczasu;
}
else
{
std::cout << "Nie ma takiego numeru, wpisz jeszcze raz";
std::cin >> nr;
}
}
Czas Obrabiarka::zsumowanie_wszystkiego(Czas suma)
{
for (int nr = 0; nr < ilosc; nr++)
{
suma += zes[nr];
}
return suma;
}
void Obrabiarka::wypisanie_wszystkiego()
{
for(int nr =0; nr<ilosc; nr++)
{
zes[nr].ileczasu;
}
}
###############################################3
#include "Czas.h"
#include <sstream>
void Czas::ustawsekundy(int a)
{
if (a >= 0)
sekundy = a;
else {
do {
std::cout << "Sekundy muszą być w zakresie od 0 do 60 sekund ";
std::cin >> a;
} while (a < 0);
sekundy = a;
};
}
void Czas::ustawMinuty(int b)
{
if (b > 0)
minuty = b;
else{
do {
std::cout << "Minuty muszą być w zakresie od 0 do 60 ";
std::cin >> b;
} while (b < 0);
minuty = b;
};
}
void Czas::ustawGodziny(int c)
{
if (c >= 0)
godziny = c;
else {
do {
std::cout << "Czas nie moze byc na minusie byczku, wpisz jeszcze raz godziny ";
std::cin >> c;
} while (c < 0);
godziny = c;
};
}
void Czas::ileczasu()
{
std::cout << "Sekundy: " << sekundy << " Minuty " << minuty << " Godziny " << godziny;
}
void Czas::calyczas(int sek, int min, int godz)
{
sekundy = sek;
minuty = min;
godziny = godz;
}
int Czas::dsek() {
return sekundy;
}
int Czas::dgodz() {
return minuty;
}
int Czas::dgodz() {
return godziny;
}
Czas::Czas()
{
minuty = 0;
sekundy = 0;
godziny = 0;
}
Czas::Czas(int sek)
{
sekundy = sek;
minuty = 0;
godziny = 0;
}
Czas::Czas(int sek, int min)
{
sekundy = sek;
minuty = min;
godziny = 0;
}
Czas::Czas(int sek, int min, int godz)
{
sekundy = sek;
minuty = min;
godziny = godz;
}
Czas Czas::operator+(Czas& _czas2)
{
Czas temp = _czas2;
temp.godziny += godziny;
temp.minuty += minuty;
temp.sekundy += sekundy;
if (temp.sekundy >= 60) {
temp.sekundy = temp.sekundy - 60;
temp.minuty++;
}
if (temp.minuty > 60) {
temp.minuty = temp.minuty - 60;
temp.godziny++;
}
return temp;
}
Czas& Czas::operator=(Czas& _czas2)
{
godziny = _czas2.godziny;
minuty = _czas2.minuty;
sekundy = _czas2.sekundy;
return *this;
}
Czas& Czas::operator+=(Czas& _czas2)
{
godziny += _czas2.godziny;
minuty += _czas2.minuty;
sekundy += _czas2.sekundy;
if (sekundy >= 60) {
sekundy = sekundy - 60;
minuty++;
}
if (minuty > 60) {
minuty = minuty - 60;
godziny++;
}
return *this;
}
bool Czas::operator==(Czas& _czas2)
{
if (godziny == _czas2.godziny && minuty == _czas2.minuty && sekundy == _czas2.sekundy)
return true;
else
return false;
}
bool Czas::operator>(Czas& _czas2) {
if (godziny > _czas2.godziny)
return true;
else if (minuty > _czas2.minuty)
return true;
else if (sekundy > _czas2.sekundy)
return true;
else
return false;
}