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

0 komentar:

Posting Komentar