Program Kalkulatorr

Kamis, 14 Januari 2010

#include < iostream.h >
#include < stdlib.h >

class simple{
protected:
int bilangan1;
int temp;

private:
int bilangan2;

public:
int tambah(){
return bilangan1 + bilangan2;
}
int kurang(){
return bilangan1 - bilangan2;
}
int kali(){
return bilangan1 * bilangan2;
}
int bagi(){
return bilangan1 / bilangan2;
}

void setbil1(int a){
bilangan1=a;
}
void setbil2(int a){
bilangan2=a;
}

int getbil1(){
return bilangan1;
}
int getbil2(){
return bilangan2;
}

void menu();
void menu_simple();
};

class specifiq:public simple{
protected:
char temp[20];
private:

public:
char *oktal(){
itoa(bilangan1,temp,8);
return temp;
}
char *desimal(){
itoa(bilangan1,temp,10);
return temp;
}
char *heksa(){
itoa(bilangan1,temp,16);
return temp;
}
void menu_ribet();
void biner(int x);
};

void specifiq::biner(int x)
{
if(x>0)
{
biner(x/2);
cout << x%2;
}
}


void simple::menu(){
cout << " Calculator Program" << endl;
cout << " ==================" << endl;

cout << "1. Simple Calculator" << endl;
cout << "2. Scientific Calculator" << endl;
cout << "3. Exit" << endl;
cout << "Silahkan pilih : ";

}

void simple::menu_simple(){
cout << " Simple Calculator" << endl;
cout << " =================" << endl;

cout << "1. Tambah" << endl;
cout << "2. Kurang" << endl;
cout << "3. Kali" << endl;
cout << "4. Bagi" << endl;
cout << "5. Exit" << endl;
cout << "Silahkan pilih :";
}

void specifiq::menu_ribet(){
cout << " Scintifiec Calculator" << endl;
cout << " =====================" << endl;

cout << "1. Tambah" << endl;
cout << "2. Kurang" << endl;
cout << "3. Kali" << endl;
cout << "4. Bagi" << endl;
cout << "5. oktal" << endl;
cout << "6. Desimal" << endl;
cout << "7. Heksadesimal" << endl;
cout << "8. Binner" << endl;
cout << "9. Exit" << endl;
cout << "Silahkan pilih :";
}

void enter(){
for(int i=0;i<25;i++)
cout << endl;
}

void main(){
int pilih,pilih1,temp;
specifiq obj1;
obj1.menu();
cin >> pilih;
cin.clear(); cin.sync();
enter();
do{
switch(pilih){
case 1 :
obj1.menu_simple();
cin >> pilih1;
cin.clear(); cin.sync();
switch(pilih1){
case 1:
do{
cout << "Masukkan bilangan I [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

do{
cout << "Masukkan bilangan II [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil2(temp);

cout << "Hasilnya = " << obj1.tambah() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 2 :
do{
cout << "Masukkan bilangan I [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

do{
cout << "Masukkan bilangan II [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil2(temp);

cout << "Hasilnya = " << obj1.kurang() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 3 :
do{
cout << "Masukkan bilangan I [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

do{
cout << "Masukkan bilangan II [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil2(temp);

cout << "Hasilnya = " << obj1.kali() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 4 :
do{
cout << "Masukkan bilangan I [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

do{
cout << "Masukkan bilangan II [Max. 8 digit] : ";
cin >>temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil2(temp);

cout << "Hasilnya = " << obj1.bagi() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 5:
enter();
obj1.menu();
cin >> pilih;
cin.clear(); cin.sync();
enter();
break;
}
break;

case 2 :
obj1.menu_ribet();
cin >> pilih1;
cin.clear(); cin.sync();
switch(pilih1){
case 1:
do{
cout << "Masukkan bilangan I [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

do{
cout << "Masukkan bilangan II [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil2(temp);

cout << "Hasilnya = " << obj1.tambah() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 2 :
do{
cout << "Masukkan bilangan I [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

do{
cout << "Masukkan bilangan II [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil2(temp);

cout << "Hasilnya = " << obj1.kurang() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 3 :
do{
cout << "Masukkan bilangan I [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

do{
cout << "Masukkan bilangan II [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil2(temp);

cout << "Hasilnya = " << obj1.kali() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 4 :
do{
cout << "Masukkan bilangan I [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

do{
cout << "Masukkan bilangan II [Max. 8 digit] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil2(temp);

cout << "Hasilnya = " << obj1.bagi() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 5 :
do{
cout << "Masukkan bilangan yang akan dikonversi " << endl;
cout << "ke dalam bilangan oktal [Max. 8 digit]: ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

cout << "Hasilnya = " << obj1.oktal() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 6 :
do{
cout << "Masukkan bilangan yang akan dikonversi " << endl;
cout << "ke dalam bilangan Desimal [Max. 8 digit]: ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

cout << "Hasilnya = " << obj1.desimal() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 7 :
do{
cout << "Masukkan bilangan yang akan dikonversi " << endl;
cout << "ke dalam bilangan Heksadesimal [Max. 8 digit]: ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>99999999);
obj1.setbil1(temp);

cout << "Hasilnya = " << obj1.heksa() << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 8 :
do{
cout << "Masukkan bilangan yang akan dikonversi " << endl;
cout << "ke dalam bilangan binner [1...255] : ";
cin >> temp;
cin.clear(); cin.sync();
}while(temp>255 || temp<1);

cout << "Hasilnya = ";
obj1.biner(temp);
cout << endl;
cout << "tekan enter untuk melanjutkan..." << endl;
cin.get();

enter();
break;

case 9:
enter();
obj1.menu();
cin >> pilih;
cin.clear(); cin.sync();
enter();
break;

}
break;
}
}while(pilih!=3);
}

Ringkasan pert 12

TEMPLATE
=========


Template berfungsi seperti menduplikasi sesuatu dengan cetakan.
Template termasuk dalam generic programming.


Contoh Template fungsi:
template void tukar (T &x, T&y)
{
T temp;
temp = x;
x=y;
y=temp;
}
Huruf “T” hnya sebuah symbol anda bebas mengggunakan huruf apapun…

Kata kunci template digunakan untuk memberitahukan kepada compiler bahwa pernyataan yang terletak setelah kata kunci merupakan suatu template.

Template untuk class…
Selain untuk fungsi, template juga dapat diterapkan pada class.
Dalam hal ini template dipakai untuk mendeklarasikan anggota data dan juga fungsi-fungsi anggota class.
Format template dalam class adalah:
template
{
// tubuh fungsi
}