#include <iostream>
using
namespace
std;
class
mks;
class
cgs {
private
:
float
cm, gm, sec;
public
:
cgs()
{
cm = 0;
gm = 0;
sec = 0;
}
cgs(
float
x,
float
y,
float
z)
{
cm = x;
gm = y;
sec = z;
}
void
disp_cgs()
{
cout << cm <<
"\t"
<< gm
<<
"\t"
<< sec <<
"\n"
;
}
void
disp_cgs1()
{
cout << cm;
}
void
disp_cgs2()
{
cout << gm;
}
void
disp_cgs3()
{
cout << sec;
}
friend
mks cgs2mks(cgs);
friend
cgs mks2cgs(mks);
};
class
mks {
private
:
float
m, kg, sec;
public
:
mks()
{
m = 0;
kg = 0;
sec = 0;
}
mks(
float
x,
float
y,
float
z)
{
m = x;
kg = y;
sec = z;
}
void
disp_mks()
{
cout << m <<
"\t"
<< kg
<<
"\t"
<< sec <<
"\n"
;
}
void
disp_mks1()
{
cout << m;
}
void
disp_mks2()
{
cout << kg;
}
void
disp_mks3()
{
cout << sec;
}
friend
mks cgs2mks(cgs);
friend
cgs mks2cgs(mks);
};
mks cgs2mks(cgs c)
{
mks t;
t.m = c.cm / 100;
t.kg = c.gm / 1000;
t.sec = c.sec;
return
t;
}
cgs mks2cgs(mks d)
{
cgs t;
t.cm = d.m * 100;
t.gm = d.kg * 1000;
t.sec = d.sec;
return
t;
}
void
menu(
int
mainMenuChoice,
int
parameterChoice)
{
float
distanceValue = 30, weightValue = 300, timeValue = 3000;
int
continueChoice = 0;
cout <<
"MKS <-> CGS converter menu:\n"
;
do
{
cout <<
"Enter 1 for CGS to MKS conversion.\n"
<<
"Enter 2 for MKS to CGS conversion.\n"
;
cout <<
"\nYou have chosen: "
<< mainMenuChoice
<<
"\n\n"
;
switch
(mainMenuChoice) {
case
1: {
cout <<
"Enter 0 to convert all three parameters"
<<
"- distance, weight and time.\n"
<<
"Enter 1 for converting distance\n"
<<
"Enter 2 for converting weight\n"
<<
"Enter 3 for converting time\n"
;
cout <<
"\nYou have chosen: "
<< parameterChoice
<<
"\n\n"
;
switch
(parameterChoice) {
case
0: {
cout <<
"Enter values for distance unit in centimeter.\n"
;
distanceValue;
cout << endl;
cout <<
"Enter values for weight unit in grams.\n"
;
weightValue;
cout << endl;
cout <<
"Enter values for time unit in seconds.\n"
;
timeValue;
cout << endl;
cout <<
"The entered values in CGS system are: \n"
;
cgs c(distanceValue, weightValue, timeValue);
c.disp_cgs();
cout <<
"Corresponding values in MKS system: \n"
;
mks m = cgs2mks(c);
m.disp_mks();
cout << endl;
break
;
}
case
1: {
cout <<
"Enter values for distance unit in centimeter.\n"
;
distanceValue;
cout << endl;
cout <<
"The entered values in CGS system are: \n"
;
cgs c(distanceValue, 0, 0);
c.disp_cgs();
cout <<
"Corresponding values in MKS system: \n"
;
mks m = cgs2mks(c);
m.disp_mks();
cout << endl;
break
;
}
case
2: {
cout <<
"Enter values for weight unit in grams.\n"
;
weightValue;
cout << endl;
cout <<
"The entered values in CGS system are: \n"
;
cgs c(0, weightValue, 0);
c.disp_cgs();
cout <<
"Corresponding values in MKS system: \n"
;
mks m = cgs2mks(c);
m.disp_mks();
cout << endl;
break
;
}
case
3: {
cout <<
"Enter values for time unit in seconds.\n"
;
timeValue;
cout << endl;
cout <<
"The entered values in CGS system are: \n"
;
cgs c(0, 0, timeValue);
c.disp_cgs();
cout <<
"Corresponding values in MKS system: \n"
;
mks m = cgs2mks(c);
m.disp_mks();
cout << endl;
break
;
}
}
break
;
}
case
2: {
cout <<
"Enter 0 to convert all three parameters"
<<
"- distance, weight and time.\n"
<<
"Enter 1 for converting distance\n"
<<
"Enter 2 for converting weight\n"
<<
"Enter 3 for converting time\n"
;
cout <<
"\nYou have chosen: "
<< parameterChoice
<<
"\n\n"
;
switch
(parameterChoice) {
case
0: {
cout <<
"Enter values for distance unit in meter.\n"
;
distanceValue;
cout << endl;
cout <<
"Enter values for weight unit in kilogram.\n"
;
weightValue;
cout << endl;
cout <<
"Enter values for time unit in second.\n"
;
timeValue;
cout << endl;
cout <<
"The entered values in MKS system are: \n"
;
mks m(distanceValue, weightValue, timeValue);
m.disp_mks();
cout <<
"Corresponding values in CGS system: \n"
;
cgs c = mks2cgs(m);
c.disp_cgs();
cout << endl;
break
;
}
case
1: {
cout <<
"Enter values for distance unit in meter.\n"
;
distanceValue;
cout << endl;
cout <<
"The entered values in MKS system are: \n"
;
mks m(distanceValue, 0, 0);
m.disp_mks();
cout <<
"Corresponding values in CGS system: \n"
;
cgs c = mks2cgs(m);
c.disp_cgs();
cout << endl;
break
;
}
case
2: {
cout <<
"Enter values for weight unit in kilogram.\n"
;
weightValue;
cout << endl;
cout <<
"The entered values in MKS system are: \n"
;
mks m(0, weightValue, 0);
m.disp_mks();
cout <<
"Corresponding values in CGS system: \n"
;
cgs c = mks2cgs(m);
c.disp_cgs();
cout << endl;
break
;
}
case
3: {
cout <<
"Enter values for time unit in second.\n"
;
timeValue;
cout << endl;
cout <<
"The entered values in MKS system are: \n"
;
mks m(0, 0, timeValue);
m.disp_mks();
cout <<
"Corresponding values in CGS system: \n"
;
cgs c = mks2cgs(m);
c.disp_cgs();
cout << endl;
break
;
}
}
}
}
cout <<
"Enter 1 to continue, or\n"
<<
"Press any other key to exit.\n"
;
}
while
(continueChoice == 1);
}
int
main()
{
cout <<
"Check for CGS to MKS of all units.\n\n"
;
menu(1, 0);
cout <<
"\n-------------------------------------------------\n"
;
cout <<
"\nCheck for CGS to MKS of only distance unit.\n\n"
;
menu(1, 1);
cout <<
"\n-------------------------------------------------\n"
;
cout <<
"\nCheck for CGS to MKS of only weight unit.\n\n"
;
menu(1, 2);
cout <<
"\n-------------------------------------------------\n"
;
cout <<
"\nCheck for CGS to MKS of only time unit.\n\n"
;
menu(1, 3);
cout <<
"\n-------------------------------------------------\n"
;
cout <<
"Check for MKS to CGS of all units.\n\n"
;
menu(2, 0);
cout <<
"\n-------------------------------------------------\n"
;
cout <<
"\nCheck for MKS to CGS of only distance unit.\n\n"
;
menu(2, 1);
cout <<
"\n-------------------------------------------------\n"
;
cout <<
"\nCheck for MKS to CGS of only weight unit.\n\n"
;
menu(2, 2);
cout <<
"\n-------------------------------------------------\n"
;
cout <<
"\nCheck for MKS to CGS of only time unit.\n\n"
;
menu(2, 3);
cout <<
"\n-------------------------------------------------\n"
;
return
0;
}