- soal lab polymorphism -
#include"iostream.h"
#include"string.h"
class Tempat
{
protected :
char nama[25];
int ttl_pD;
int ttl_pA;
int ttl;
public :
Tempat()
{
int ttl_pD=0;
int ttl_pA=0;
int ttl=0;
}
void setN(char nama[])
{
strcpy(this->nama,nama);
}
virtual void ttl_PD(int x)=0;
virtual void ttl_PA(int y)=0;
int get_pajakD(){return ttl_pD;}
int get_pajakA(){return ttl_pA;}
int get_Ttl()
{ return ttl = ttl_pD + ttl_pA; }
char *getN()
{ return nama; }
};
class Apartemen : public Tempat
{
public :
void ttl_PD(int x)
{
ttl_pD = x*50000;
}
void ttl_PA(int y)
{
ttl_pA = y*30000;
}
};
class Rumah : public Tempat
{
public :
void ttl_PD(int x)
{
ttl_pD = x*10000;
}
void ttl_PA(int y)
{
ttl_pA = y*5000;
}
};
void menu()
{
cout << endl << "\t\t\t\tLife Style" << endl << endl;
cout << " Pilih Tempat Tinggal :" << endl;
cout << " 1. Apartemen" << endl;
cout << " 2. Rumah" << endl;
cout << " 3. Quit" << endl;
}
void main()
{
int pilih;
int d,a;
char nama[25];
Tempat *obj;
do{
menu();
do{
cout << " Pilihan : ";
cin >> pilih;
cin.clear();
cin.sync();
}while(pilih<1||pilih>3);
switch(pilih)
{
case 1 : obj = new Apartemen;
cout << endl << " Masukkan nama Anda [max 20 char] : ";
cin >> nama;
cin.clear();
cin.sync();
obj->setN(nama);
cout << endl << " \03 Apartemen \03" << endl;
cout << " Selamat Datang " << obj->getN() << " " <<
(char)1 << endl << endl;
cout << " Masukkan jumlah orang dewasa [1-5] : ";
cin >> d;
cin.clear();
cin.sync();
cout << " Masukkan jumlah anak-anak [0-5] : ";
cin >> a;
cin.clear();
cin.sync();
obj->ttl_PD(d);
obj->ttl_PA(a);
cout << endl << " Pajak orang dewasa : Rp 50000/orang"
cout << " Masukkan jumlah orang dewasa [1-5] : ";
cin >> d;
cin.clear();
cin.sync();
cout << " Masukkan jumlah anak-anak [0-5] : ";
cin >> a;
cin.clear();
cin.sync();
obj->ttl_PD(d);
obj->ttl_PA(a);
cout << endl << " Pajak orang dewasa : Rp 50000/orang"
<< endl;
cout << " Pajak anak-anak : Rp 30000/anak" << endl <<
cout << " Pajak anak-anak : Rp 30000/anak" << endl <<
endl;
cout << " Total pajak hidup orang dewasa : Rp. " <<
cout << " Total pajak hidup orang dewasa : Rp. " <<
obj->get_pajakD() << endl;
cout << " Total pajak hidup anak-anak : Rp. " <<
cout << " Total pajak hidup anak-anak : Rp. " <<
obj->get_pajakA() << endl;
cout << " Total pajak keseluruhan : Rp. " <<
cout << " Total pajak keseluruhan : Rp. " <<
obj->get_Ttl() << endl;
cout << endl << " Tekan enter untuk lanjut...";
delete (obj);
cin.get();
break;
case 2 : obj = new Rumah;
cout << endl << " Masukkan nama Anda [max 20 char] : ";
cin >> nama;
cin.clear();
cin.sync();
obj->setN(nama);
cout << endl << " \03 Rumah \03" << endl;
cout << " Selamat Datang " << obj->getN() << " " << "\01"
cout << endl << " Tekan enter untuk lanjut...";
delete (obj);
cin.get();
break;
case 2 : obj = new Rumah;
cout << endl << " Masukkan nama Anda [max 20 char] : ";
cin >> nama;
cin.clear();
cin.sync();
obj->setN(nama);
cout << endl << " \03 Rumah \03" << endl;
cout << " Selamat Datang " << obj->getN() << " " << "\01"
<< endl << endl;
cout << " Masukkan jumlah orang dewasa [1-5] : ";
cin >> d;
cin.clear();
cin.sync();
cout << " Masukkan jumlah anak-anak [0-5] : ";
cin >> a;
cin.clear();
cin.sync();
obj->ttl_PD(d);
obj->ttl_PA(a);
cout << endl << " Pajak orang dewasa : Rp 10000/orang"
cout << " Masukkan jumlah orang dewasa [1-5] : ";
cin >> d;
cin.clear();
cin.sync();
cout << " Masukkan jumlah anak-anak [0-5] : ";
cin >> a;
cin.clear();
cin.sync();
obj->ttl_PD(d);
obj->ttl_PA(a);
cout << endl << " Pajak orang dewasa : Rp 10000/orang"
<< endl;
cout << " Pajak anak-anak : Rp 5000/anak" << endl << endl;
cout << " Total pajak hidup orang dewasa : Rp. " <<
cout << " Pajak anak-anak : Rp 5000/anak" << endl << endl;
cout << " Total pajak hidup orang dewasa : Rp. " <<
obj->get_pajakD() << endl;
cout << " Total pajak hidup anak-anak : Rp. " <<
cout << " Total pajak hidup anak-anak : Rp. " <<
obj->get_pajakA() << endl;
cout << " Total pajak keseluruhan : Rp. " <<
cout << " Total pajak keseluruhan : Rp. " <<
obj->get_Ttl() << endl;
cout << endl << " Tekan enter untuk lanjut...";
delete (obj);
cin.get();
break;
}
cout << "\n\n\n\n\n";
}while(pilih!=3);
cout << "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
cout << endl << " Tekan enter untuk lanjut...";
delete (obj);
cin.get();
break;
}
cout << "\n\n\n\n\n";
}while(pilih!=3);
cout << "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
<< endl;
cout << "\t Enjoy Your Life Style" << endl;
cout << "\t \03 Tekan enter untuk keluar \03" << endl;
cout << "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
cout << "\t Enjoy Your Life Style" << endl;
cout << "\t \03 Tekan enter untuk keluar \03" << endl;
cout << "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
<< endl;
cin.get();
}
cin.get();
}
0 komentar:
Posting Komentar