#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;
}
0 komentar:
Posting Komentar