Thursday, September 13, 2012

Friend Function Implementation in C++ Programming

Friend Function Implementation in C++ Programming

Questions:-
Create two classes DM and DB which store the value of distances. DM stores
distances in meters and centimeters and DB in feet and inches. Write a program
that can read values for the class objects and add one object of DM with another
object of DB. Use a friend function to carry out the addition operation. The object
that stores the results may be a DM or DB object, depending on the units in
which the results are required.
(Object Oriented Programming With C++ By Balaguruswamy)


Solutions
#include<iostream>
using namespace std;
class DB;
class DM
{
int metre;
int centi;

public:
void inputDM();

friend void Add(DM,DB);
};

class DB
{
int inch;
int feet;

public:
void inputDB();

friend void Add(DM,DB);
};

void DM::inputDM()
{
cout<<"\tEnter Value for Metre & Centi:"<<endl;
cin>>metre>>centi;
}

void DB::inputDB()
{
cout<<"Enter Value for Feet & Inch:"<<endl;
cin>>feet>>inch;
}

void Add(DM a,DB b)
{
a.inputDM();
b.inputDB();
float addm;
int br=0;
addm=a.metre+(a.centi/100)+(b.inch*0.0254)+(b.feet*0.3048);//Convert all given inputs into meter
while(1)
{
cout<<"\n\n\t****Choose The Following Units****\n";
cout<<"-Press 1 for Meter\n";
cout<<"-Press 2 for Centimeter\n";
cout<<"-Press 3 for Feet"<<endl;
cout<<"-Press 4 for Inch"<<endl;
cout<<"-Press 5 Exit"<<endl;
cin>>br;
if(br==5)
  break;
else
{
switch(br)
{
case 1:cout<<"The result in Meter:"<<endl;
 cout<<addm;
 break;
case 2:cout<<"The result in Centimeter:"<<endl;
 float cm=addm*100;//Convert it into Centimeter
 cout<<cm;
 break;
case 3:cout<<"The result in Feet:"<<endl;
 float ft=addm*3.280839895013123;//Convert into feet from meter
 cout<<ft;
 break;
case 4:cout<<"The result in Inch:"<<endl;
 float in=addm*39.37007874015748;//convert into Inch from meter
 cout<<in;
 break;
default:cout<<"\n Invalid Choice....!\n";
 continue;
}
}
}


}
int main()
{
DM x;DB y;
Add(x,y);
return 0;
}



0 comments:

Post a Comment