Przekształciłem kalkulator temperatur na kalkulator b,kb i mb. Zawsze podaje zły wynik -9.pelno cyferek. Nawet gdy ustawie jednostkę na bajty wpisze 1024, to przynajmniej rozmiar w bajtach, który przecież będzie taki sam powinien być dobry.
Zaimplementowane metody klasy:
void CBajty::UstawRozmiar(double fRozmiar, SCALE Skala)
{
switch (Skala)
{
case bajty: m_fRozmiarB = fRozmiar; break;
case kilobajty: m_fRozmiarB = fRozmiar * 1024; break;
case megabajty: m_fRozmiarB = fRozmiar * (1024 * 1024); break;
}
}
double CBajty::PobierzRozmiar(SCALE Skala)
{
switch (Skala)
{
case bajty: return m_fRozmiarB;
case kilobajty: return m_fRozmiarB / 1024;
case megabajty: return m_fRozmiarB / (1024*1024);
default: return 0;
}
}
Funkcja main:
//pobieramy rozmiar
float fRozmiar;
cout << "Podaj rozmiar" << endl;
cin >> fRozmiar;
//deklarujemy obiekt kalkulatora i przekazujemy rozmiar
CBajty Kalkulator;
Kalkulator.UstawRozmiar(fRozmiar, static_cast<SCALE>(chSkala));
// pokazujemy rozmiar we wszystkich skalach
cout << endl;
cout << "- bajty: "
<< Kalkulator.PobierzRozmiar(bajty) << endl
<< "- kilobajty: "
<< Kalkulator.PobierzRozmiar(kilobajty) << endl
<< "- megabajty: "
<< Kalkulator.PobierzRozmiar(megabajty) << endl;