14 Mar 2011

Bahan diskusi 1

#include < iostream.h >
#include < conio.h >
using namespace std;

class konversi{
    friend istream& operator>>(istream& , konversi&);
public:
    konversi(unsigned int b=0){bilangan=b;}
    void membilang1();
    void membilang2();
    void membilang3();
    void membilang4();
    void membilang5();
    void membilang6();
    void membilang7();
    void konversikan();
private:
    unsigned int bilangan;
};

istream& operator>>(istream& in, konversi& x){
    cout <<"masukkan bilangan : ";
    in>>x.bilangan;
    return in;
}
void konversi::konversikan(){
    if(bilangan<=11 || bilangan==100)membilang1();
    else if(bilangan>19 && bilangan<=99)membilang3();
    else if (bilangan>100 && bilangan<=999)membilang4();
    else if (bilangan>1000 && bilangan<=9999)membilang5();
    else if (bilangan>10000 && bilangan<=99999)membilang6();
    else if (bilangan>100000 && bilangan<=999999)membilang7();  
    else membilang2();
}
void konversi::membilang3(){
    int satuan;
    if(bilangan>19){
        satuan=bilangan%10;
        bilangan=bilangan/10;
        konversikan();
        cout<<"puluh ";
        if (satuan!=0) {
        bilangan=satuan;
        konversikan();}
    }
}
void konversi::membilang1(){
    switch(bilangan){
    case 0:cout<<"nol "; break;
    case 1:cout<<"satu "; break;
    case 2:cout<<"dua "; break;
    case 3:cout<<"tiga "; break;
    case 4:cout<<"empat "; break;
    case 5:cout<<"lima "; break;
    case 6:cout<<"enam "; break;
    case 7:cout<<"tujuh "; break;
    case 8:cout<<"delapan "; break;
    case 9:cout<<"sembilan "; break;
    case 10:cout<<"sepuluh "; break;
    case 11:cout<<"sebelas "; break;
    case 100:cout<<"seratus "; break;
    default : cout<<"diluar range ";
    }
}
void konversi::membilang2(){
    int temp;
    if(bilangan>11 && bilangan<20){
        bilangan%=10;
        membilang1();
        cout<<"belas ";
    }
    else
        membilang1();
}
void konversi::membilang4(){
    int puluhan;
    puluhan=bilangan%100;
    if(bilangan>100 && bilangan<200){
        cout <<"seratus ";
    }
    else {
        bilangan=bilangan/100;
        konversikan();
        cout<<"ratus ";}
        bilangan=puluhan;
        konversikan();
   
}
void konversi::membilang5(){
    int ratusan;
    ratusan=bilangan%1000;
    if(bilangan>1000 && bilangan<2000){
        cout <<"seribu ";
    }
    else {
        bilangan=bilangan/1000;
        konversikan();
        cout<<"ribu ";}
        bilangan=ratusan;
        konversikan();
   
}
void konversi::membilang6(){
    int ribuan;
    ribuan=bilangan%10000;
    if(bilangan>10000 && bilangan<20000){
        cout <<"puluhan ribu ";
    }
    else {
        bilangan=bilangan/10000;
        konversikan();
        cout<<"puluhan ribu ";}
        bilangan=ribuan;
        konversikan();
   
}
void konversi::membilang7(){
    int puluhan_ribu;
    puluhan_ribu=bilangan%100000;
    if(bilangan>100000 && bilangan<200000){
        cout <<"seratus ribu ";
    }
    else {
        bilangan=bilangan/100000;
        konversikan();
        cout<<"ratusan ribu ";}
        bilangan=puluhan_ribu;
        konversikan();
   
}


    int main(){
    konversi a;
    cin>>a;
    a.konversikan();
cout<
   system("PAUSE");
    return EXIT_SUCCESS;
}


Photobucket

0 komentar: