Witam, błąd polega na tym, że dla niektórych wartości podaj 0, np dla gigabajtów powyżej 4 pokazuje 0
//Pliki naglowkowe do kalkulatora informatycznego
//okreslenie typu wyliczeniowego
enum SCALE {SCL_TB = 't', SCL_GB = 'g', SCL_MB = 'm', SCL_KB = 'k', SCL_B = 'b' };
//deklaracja klasy kalkulator
class kalkulator
{
private:
long long unsigned i_wartosc;
public:
//zadeklarowanie funkcji
void ustaw_na_bajty(unsigned, SCALE);
//zamiana na bajty
long long unsigned zamien_na_inne(SCALE);
//pobierz bajty, przekonwertuj na inne jednostki
};
// klasa kalkulator okreslenie funkcji w klasie
#include "licz.h"
void kalkulator::ustaw_na_bajty(long unsigned od_uzytkownika, SCALE skala)
{
switch(skala)
{
case SCL_B: i_wartosc = od_uzytkownika; break;
case SCL_KB: i_wartosc = (1024 * od_uzytkownika); break;
case SCL_MB: i_wartosc = (1024 * 1024 * od_uzytkownika); break;
case SCL_GB: i_wartosc = (1024 * 1024 * 1024 * od_uzytkownika); break;
case SCL_TB: i_wartosc = (1024 * 1024 * 1024 * 1024 * od_uzytkownika); break;
}
}
long long unsigned kalkulator::zamien_na_inne(SCALE skala)
{
switch(skala)
{
case SCL_B: return i_wartosc;
case SCL_KB: return i_wartosc / 1024;
case SCL_MB: return i_wartosc / (1024 * 1024);
case SCL_GB: return i_wartosc / (1024 * 1024 * 1024);
case SCL_TB: return i_wartosc / (1024 * 1024 * 1024 * 1024);
default: return 1;
}
}
#include <iostream>
#include <conio.h>
#include "licz.h"
//czesc glowna
int main()
{
std::cout << "Kalkulator przeliczajacy jednostki informatyczne" << std::endl;
std::cout << "_________________________________________________" << std::endl;
char chskala;
std::cout <<"Podaj wartosc w jakiej podasz wartosc do przeliczenia" << std::endl;
std::cout << "(b- bajty, k-kilobajty, m-megabajty, g-gigabajty, t-terabajty) Wielkosc litery ma zanczenie! :";
std::cin >> chskala;
if (chskala!='b' && chskala!='k' && chskala!='m' && chskala!='g' && chskala!='t')
{
std::cout << "Zla litera";
getch();
};
long long unsigned do_przeliczenia;
std::cout << "Podaj wartosc do przeliczenia: ";
std::cin >> do_przeliczenia;
kalkulator Oblicz;
Oblicz.ustaw_na_bajty(do_przeliczenia, static_cast<SCALE>(chskala));
//wypisujemy wynik
std::cout <<" " << std::endl;
std::cout << "-bajty: " << Oblicz.zamien_na_inne(SCL_B) << std::endl;
std::cout << "-kilobajty: " << Oblicz.zamien_na_inne(SCL_KB) << std::endl;
std::cout << "-magabajty: " << Oblicz.zamien_na_inne(SCL_MB) << std::endl;
std::cout << "-gigabajty: " << Oblicz.zamien_na_inne(SCL_GB) << std::endl;
// std::cout << "-terabajty: " << Oblicz.zamien_na_inne(SCL_TB) << std::endl;
std::cout << "Nacisnij dowlony klawisz, aby zamknac aplikacje";
getch();
};