Senin, 14 Maret 2011

Tugas Diskusi I

#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 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;
}

Tidak ada komentar:

Posting Komentar