12 Jan 2010

latiiiiaan ngoding :)


- 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"

                         << endl;
                         cout << " Pajak anak-anak    : Rp 30000/anak" << endl <<

                         endl;
                         cout << " Total pajak hidup orang dewasa : Rp. " <<

                         obj->get_pajakD() << endl;
                         cout << " Total pajak hidup anak-anak    : Rp. " <<

                         obj->get_pajakA() << endl;
                         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"

                        << 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"

                        << endl;
                        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. " <<

                        obj->get_pajakA() << endl;
                        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~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

    << endl;
    cout << "\t                    Enjoy Your Life Style" << endl;
    cout << "\t                \03 Tekan enter untuk keluar \03" << endl;
    cout << "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

    << endl;
    cin.get();
}

0 komentar:

Posting Komentar