13 Oktober 2010

struktur data praktikum 3

Pertama tak beri File Indukannya

#ifndef __bilangan
#define __bilangan
#include <iostream.h>

class Bilangan {
       friend ostream& operator<<(ostream&, const Bilangan&);
       friend istream& operator>>(istream&, const Bilangan&);

       public:
              Bilangan(int a0=0,float b0=0.0):a(a0),b(b0){}
              void banding_int(const Bilangan&, const Bilangan&);
              Bilangan& operator=(const Bilangan&);
              Bilangan operator+(const Bilangan&)const;
              Bilangan& operator-()const;

       //protected:
              int a;
              float b;
};

ostream& operator<<(ostream& out, const Bilangan& x)
{
 out<<"Bagian Integer : "<<x.a<<endl;
 out<<"Bagian float : "<<x.b<<endl;
 return out;
}

void Bilangan::banding_int(const Bilangan& x,const Bilangan& y)
{
 if(x.a>y.a) cout<<x.a<<"::x lebih besar dari "<<y.a<<":: y";
 else cout<<x.a<<"::x lebih kecil dari "<<y.a<<":: y";
}

Bilangan& Bilangan::operator=(const Bilangan& x)
{
 a=x.a;
 b=x.b;
 return *this;
}

istream& operator>>(istream& in, Bilangan& x)
{
 cout<<"\nMasukkan bagian Integer : ";
 in>>x.a;
 cout<<"\nMasukkan bagian float   : ";
 in>>x.b;
 return in;
}

Bilangan Bilangan::operator+(const Bilangan& x) const
{
 Bilangan cc;
 cc.a=a+x.a;
 cc.b=b+x.b;
 return cc;
}

Bilangan& Bilangan::operator-() const
{
 Bilangan x;
 x.a=-a;
 x.b=-b;
 return x;
}
#endif

Simpan file diatas dengan nama “bilangan.h”
Kedua kita buat anakannya “bilchar.h”
#ifndef __bilchar
#define __bilchar
#include <iostream.h>
#include “Bilangan.h”
using namespace std;

class Bil_Char:public Bilangan
{
friend ostream& operator<<(ostream&, const Bil_Char&);
friend istream& operator>>(istream&,Bil_Char&);
public:
Bil_Char(int a0=0, int b0=0, char ch=’x'):Bilangan(a0,b0),c(ch){}
void banding_Float(const Bil_Char&, const Bil_Char&);
private:
float c;
};

ostream& operator<<(ostream& out, const Bil_Char& x)
{
out<<”Bagian integer : “<<x.a<<endl;
out<<”Bagian float   : “<<x.b<<endl;
out<<”Bagian char    : “<<x.c<<endl;
return out;
}

istream& operator>>(istream& in,Bil_Char& x)
{
cout<<”\nMasukkan bagian Integer : “;
in>>x.a;
cout<<”\nMasukkan bagian float   : “;
in>>x.b;
return in;
}

void Bil_Float::banding_Char(const Bil_Float& x,const Bil_Float& y)
{
if(x.a>y.a) cout<<x.a<<”::x lebih besar dari “<<y.a<<”:: y”;
else cout<<x.a<<”::x lebih kecil dari “<<y.a<<”:: y”;
}
#endif


Simpan dengan nama “bilchar.h”
Ketiga buat “bilfloat.h”

#ifndef __bilfloat
#define __bilfloat
#include <iostream.h>
#include "bilangan.h"
using namespace std;

class Bil_Float:public Bilangan
{
      friend ostream& operator<<(ostream&, const Bil_Float&);
      friend istream& operator>>(istream&,Bil_Float&);
      public:
             Bil_Float(int a0=0, int b0=0, char ch='x'):Bilangan(a0,b0),c(ch){}
             void banding_Float(const Bil_Float&, const Bil_Float&);
      private:
              float c;
};

ostream& operator<<(ostream& out, const Bil_Float& x)
{
         out<<"Bagian integer : "<<x.a<<endl;
         out<<"Bagian float   : "<<x.b<<endl;
         out<<"Bagian char    : "<<x.c<<endl;
         return out;
}

istream& operator>>(istream& in,Bil_Float& x)
{
         cout<<"\nMasukkan bagian Integer : ";
         in>>x.a;
         cout<<"\nMasukkan bagian float   : ";
         in>>x.b;
         return in;
}

void Bil_Float::banding_Float(const Bil_Float& x,const Bil_Float& y)
{
     if(x.a>y.a) cout<<x.a<<"::x lebih besar dari "<<y.a<<":: y";
     else cout<<x.a<<"::x lebih kecil dari "<<y.a<<":: y";
}
#endif

Terakhir untuk menampilkan program tersebut

#include <cstdlib>
#include <iostream>
#include "bilfloat.h"
using namespace std;
int main(){
    Bilangan s,t(-2,3.14),d;
    cout<<"Nilai awal s\n"<<s;
    cout<<"Nilai awal t dari deklarasi\n"<<t;
    s=t;
    cout<<"Setelah di-assign t\n";
    cout<<"Nilai s\n"<<s;
    cout<<"Masukkan nilai-nalai objek d";
    cin>>d;
    cout<<"setelah d + t => \n"<<d+t;
    cout<<"Nalai d dinegatifkan\n"<<-d;
    Bil_Float ss;
    cout<<"Nilai awal ss\n"<<ss;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Tidak ada komentar:

Posting Komentar