Related Articles

# Menu Driven Program to convert MKS to CGS and CGS to MKS

• Last Updated : 29 May, 2021

Prerequisite: Switch Case in C/C++
Problem Statement:
Write a menu-driven program using the Switch case to convert the CGS system to MKS system and vice versa.
Approach:
MKS(Meter-Kilogram-Second) System: The MKS System of units refers to the physical measurement system in which the Dimensions length, weight and time are measured in Meters, Kilograms and Seconds respectively.

```MKS System:

Length - meters (m)
Weight - kilograms (kg)
Time - seconds (s)```

CGS(Centimeter-Gram-Second) System: The CGS System of units refers to the physical measurement system in which the Dimensions length, weight and time are measured in Centimeters, Grams and Seconds respectively.

```CGS System:

Length - centimeters (cm)
Weight - grams (g)
Time - seconds (s)```

How to convert MKS to CGS?
In order to convert the MKS system to the CGS system, the conversion is done as follows:

```For Length:
Since,
1 meter = 100 centimeter
Therefore,
multiply the given length value by 100.

For Weight:
Since,
1 kilogram = 1000 gram
Therefore,
multiply the given weight value by 1000.

For Time:
Since,
1 second = 1 second
Therefore,
The time value will remain the same.```

How to convert CGS to MKS?
Inorder to convert the CGS system to MKS system, the conversion is done as follows:

```For Length:
Since,
1 centimeter = 1/100 met
Therefore,
divide the given length value by 100.

For Weight:
Since,
1 gram = 1/1000 kilogram
Therefore,
divide the given weight value by 1000.

For Time:
Since,
1 second = 1 second
Therefore,
The time value will remain the same.```

Below is the implementation of the above approach:
Program:

## CPP

 `// C++ menu-driven program using the Switch case``// to convert the CGS system to MKS system``// and vice versa` `#include ``using` `namespace` `std;` `// declare mks class pre-hand for reference``// to mks class for friend function in cgs.``class` `mks;` `class` `cgs {` `private``:``    ``// cgs units: centimeter, gram, second.``    ``//(length, weight, time)``    ``float` `cm, gm, sec;` `public``:``    ``// Default constructor``    ``cgs()``    ``{``        ``cm = 0;``        ``gm = 0;``        ``sec = 0;``    ``}` `    ``// Parameterized constructor``    ``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 functions:``    ``friend` `mks cgs2mks(cgs);``    ``friend` `cgs mks2cgs(mks);``};` `class` `mks {` `private``:``    ``// mks units: meter, kilogram, second.``    ``//(length, weight, time)``    ``float` `m, kg, sec;` `public``:``    ``// Default constructor``    ``mks()``    ``{``        ``m = 0;``        ``kg = 0;``        ``sec = 0;``    ``}` `    ``// Parameterized constructor``    ``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->cgs conversion:``mks cgs2mks(cgs c)``{``    ``mks t;``    ``t.m = c.cm / 100;``    ``t.kg = c.gm / 1000;``    ``t.sec = c.sec;``    ``return` `t;``}` `// cgs->mks conversion:``cgs mks2cgs(mks d)``{``    ``cgs t;``    ``t.cm = d.m * 100;``    ``t.gm = d.kg * 1000;``    ``t.sec = d.sec;``    ``return` `t;``}` `// Code for menu``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);``}` `// Driver code``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;``}`
Output
```Check for CGS to MKS of all units.

Enter 1 for CGS to MKS conversion.
Enter 2 for MKS to CGS conversion.

You have chosen: 1

Enter 0 to convert all three parameters- distance, weight and time.
Enter 1 for converting distance
Enter 2 for converting weight
Enter 3 for converting time

You have chosen: 0

Enter values for distance unit in centimeter.

Enter values for weight unit in grams.

Enter values for time unit in seconds.

The entered values in CGS system are:
30    300    3000
Corresponding values in MKS system:
0.3    0.3    3000

Enter 1 to continue, or
Press any other key to exit.

-------------------------------------------------

Check for CGS to MKS of only distance unit.

Enter 1 for CGS to MKS conversion.
Enter 2 for MKS to CGS conversion.

You have chosen: 1

Enter 0 to convert all three parameters- distance, weight and time.
Enter 1 for converting distance
Enter 2 for converting weight
Enter 3 for converting time

You have chosen: 1

Enter values for distance unit in centimeter.

The entered values in CGS system are:
30    0    0
Corresponding values in MKS system:
0.3    0    0

Enter 1 to continue, or
Press any other key to exit.

-------------------------------------------------

Check for CGS to MKS of only weight unit.

Enter 1 for CGS to MKS conversion.
Enter 2 for MKS to CGS conversion.

You have chosen: 1

Enter 0 to convert all three parameters- distance, weight and time.
Enter 1 for converting distance
Enter 2 for converting weight
Enter 3 for converting time

You have chosen: 2

Enter values for weight unit in grams.

The entered values in CGS system are:
0    300    0
Corresponding values in MKS system:
0    0.3    0

Enter 1 to continue, or
Press any other key to exit.

-------------------------------------------------

Check for CGS to MKS of only time unit.

Enter 1 for CGS to MKS conversion.
Enter 2 for MKS to CGS conversion.

You have chosen: 1

Enter 0 to convert all three parameters- distance, weight and time.
Enter 1 for converting distance
Enter 2 for converting weight
Enter 3 for converting time

You have chosen: 3

Enter values for time unit in seconds.

The entered values in CGS system are:
0    0    3000
Corresponding values in MKS system:
0    0    3000

Enter 1 to continue, or
Press any other key to exit.

-------------------------------------------------
Check for MKS to CGS of all units.

Enter 1 for CGS to MKS conversion.
Enter 2 for MKS to CGS conversion.

You have chosen: 2

Enter 0 to convert all three parameters- distance, weight and time.
Enter 1 for converting distance
Enter 2 for converting weight
Enter 3 for converting time

You have chosen: 0

Enter values for distance unit in meter.

Enter values for weight unit in kilogram.

Enter values for time unit in second.

The entered values in MKS system are:
30    300    3000
Corresponding values in CGS system:
3000    300000    3000

Enter 1 to continue, or
Press any other key to exit.

-------------------------------------------------

Check for MKS to CGS of only distance unit.

Enter 1 for CGS to MKS conversion.
Enter 2 for MKS to CGS conversion.

You have chosen: 2

Enter 0 to convert all three parameters- distance, weight and time.
Enter 1 for converting distance
Enter 2 for converting weight
Enter 3 for converting time

You have chosen: 1

Enter values for distance unit in meter.

The entered values in MKS system are:
30    0    0
Corresponding values in CGS system:
3000    0    0

Enter 1 to continue, or
Press any other key to exit.

-------------------------------------------------

Check for MKS to CGS of only weight unit.

Enter 1 for CGS to MKS conversion.
Enter 2 for MKS to CGS conversion.

You have chosen: 2

Enter 0 to convert all three parameters- distance, weight and time.
Enter 1 for converting distance
Enter 2 for converting weight
Enter 3 for converting time

You have chosen: 2

Enter values for weight unit in kilogram.

The entered values in MKS system are:
0    300    0
Corresponding values in CGS system:
0    300000    0

Enter 1 to continue, or
Press any other key to exit.

-------------------------------------------------

Check for MKS to CGS of only time unit.

Enter 1 for CGS to MKS conversion.
Enter 2 for MKS to CGS conversion.

You have chosen: 2

Enter 0 to convert all three parameters- distance, weight and time.
Enter 1 for converting distance
Enter 2 for converting weight
Enter 3 for converting time

You have chosen: 3

Enter values for time unit in second.

The entered values in MKS system are:
0    0    3000
Corresponding values in CGS system:
0    0    3000

Enter 1 to continue, or
Press any other key to exit.

-------------------------------------------------
```

My Personal Notes arrow_drop_up