Witam,
Mam problem z funkcją przeliczająca oraz po wprowadzeniu np. 'kb' program wyłącza się. Proszę o wskazówkę jak uporać się z tym problemem.
//przelicznik.h
#include <iostream>
enum JEDNOSTKA{J_BAJT = 'b',
J_KILOBAJT ='kb',
J_MEGABAJT ='mb',
J_GIGABAJT ='gb'};
class CCals{
private:
double m_dBajt;
public:
void Przelicznik(double,JEDNOSTKA);
double PobierzJednostke(JEDNOSTKA);
};
////////////////////////////////////////////////////////////////////////////////////////////
//przelicznik.cpp
#include "przelicznik.h"
void CCals::Przelicznik(double dJednostka,JEDNOSTKA jed)
{
switch(jed)
{
case J_BAJT:
m_dBajt = dJednostka;
break;
case J_KILOBAJT:
m_dBajt = dJednostka * 1000 // to może być źle;
break;
case J_MEGABAJT:
m_dBajt = dJednostka * 1000000 // to może być źle;
break;
case J_GIGABAJT:
m_dBajt = dJednostka * 1000000000000 // to może być źle;
break;
}
}
double CCals::PobierzJednostke(JEDNOSTKA jed)
{
switch(jed)
{
case J_BAJT: return m_dBajt;
case J_KILOBAJT: return m_dBajt;
case J_MEGABAJT: return m_dBajt;
case J_GIGABAJT: return m_dBajt;
default : return 0;
}
}
/////////////////////////////////////////////////////////////////////////////////////////
//main.cpp
#include <iostream>
#include <conio.h>
#include "przelicznik.h"
using namespace std;
int main()
{
char chJednostka;
do
{
cout << "\tWybierz wejsciowa skale informacji\n";
cout << "(b - bajt, kb - kilobajt, mb - megabajt, gb - gigabajt) : ";
cin>>chJednostka;
if(chJednostka != 'b'&& chJednostka != 'kb' && chJednostka != 'mb' && chJednostka != 'gb') return;
float jed;
cout << "Podaj wiekosc danej: ";
cin>>jed;
CCals Kalkulator;
Kalkulator.Przelicznik(jed,static_cast<JEDNOSTKA>(chJednostka));
cout << endl;
cout << "- bajty: "<<Kalkulator.PobierzJednostke(J_BAJT)<<endl;
cout << "- kilobajt: "<<Kalkulator.PobierzJednostke(J_KILOBAJT)<<endl;
cout << "- megabajt: "<<Kalkulator.PobierzJednostke(J_MEGABAJT)<<endl;
cout << "- gigabajt: "<<Kalkulator.PobierzJednostke(J_GIGABAJT)<<endl;
}while(chJednostka != 0);
getch();
}