#include <iostream.h>
#include <conio.h>

void menu();

void length();

void weight();

void lengcalc(int, float);

void weigcalc(int, float);

void main()

{
	menu();
	
}

void menu() 

{

	int menuvalue, cont;
	
		do {
			clrscr();
			cout <<"\n**   단위환산기 ver 0.11   **\n\n* 원하는 범주를 선택하세요. *\n\n";
			cout <<"1. 길이\n2. 무게\n";
			cout <<"\nSelect >> ";
			cin >> menuvalue;

			if (menuvalue<1 || menuvalue >2)
			{
	
			menuvalue =0;
			cout <<"\n에러! 다시 입력\n";

			}

			else

			if (menuvalue==1)
			{

			length();

			}

			if (menuvalue==2)
			{

			weight();
	
			}

		

		do
			{
				cout << "\n계속 변환하시겠습니까? (Yes=1, No=0) : ";
				cin >> cont;
				if (cont<0 || cont>1)
				{
					continue;
				}
				if (cont==0)
				{ exit(0); }

				if (cont==1)
				{
					break;
				}

			} while (true);
		
		}

		while (menuvalue);

}

void length()

{

	int len_menu;
	float meter;
	

do
	{	
	clrscr();
	cout <<"\n1. 길이 변환 모드\n\n";
	cout <<"1. meter -> inch\n";
	cout <<"2. meter -> feet\n";
	cout <<"3. meter -> yard\n";
	cout <<"4. meter -> mile\n\n";
	cout << "Select >> ";
	cin >> len_menu;

	if (len_menu<1 || len_menu >4)
	{
		cout<<"\n입력 범위 초과! 길이 변환 모드로 돌아갑니다.\n";
		if (len_menu==0)
		{
			len_menu==1;
		}
		continue;
	}

	else

	cout <<"\nmeter = ";
	cin >> meter;

	float *pmeter=&meter;

	if (meter<1 || meter >10000)
	{
		cout<<"\n입력 범위 초과! 길이 변환 모드로 돌아갑니다.\n";
		continue;
	}

	else

	lengcalc(len_menu,*pmeter);
	len_menu=0;

	}

	while (len_menu);

}

void weight()

{

	int wei_menu;
	float kg;
	

do

	{	
	clrscr();
	cout <<"\n2. 무게 변환 모드\n\n";
	cout <<"1. kg -> ounce\n";
	cout <<"2. kg -> pound\n\n";
	cout <<"Select >> ";
	cin >>wei_menu;
	if (wei_menu<1 || wei_menu >4)
	{
		cout<<"\n입력 범위 초과! 길이 변환 모드로 돌아갑니다.\n";
		if (wei_menu==0)
		{
			wei_menu=1;
		}
		continue;
	}

	else

	cout <<"\nkg = ";
	cin >> kg;
	
	float *pkg=&kg;
	if (kg<1 || kg >10000)
	{
		cout<<"\n입력 범위 초과! 무게 변환 모드로 돌아갑니다.\n";

		continue;
	}

	else

	weigcalc(wei_menu, *pkg);
	wei_menu=0;

	}

	while (wei_menu);
	
}

void lengcalc (int menu, float meter)
{
	cout<<"\n";
	switch (menu)
	{
	case 1:

		cout << meter << " meter는 " << meter*39.370079 << " inch입니다.\n";
		break;

	case 2:

		cout << meter << " meter는 " << meter*3.28084 << " feet입니다.\n";
		break;

	case 3:

		cout << meter << " meter는 " << meter*1.093613 << " yard입니다.\n";
		break;

	case 4:

		cout << meter << " meter는 " << meter*0.000621 << " mile입니다.\n";
		break;
	
	}



}

void weigcalc (int menu, float kg)
{

	int cont;

	cout<<"\n";

	switch (menu)
	{
	case 1:

		cout << kg << " kg는 " << kg*35.273 << " ounce입니다.\n";
		break;

	case 2:

		cout << kg << " kg는 " << kg*2.20459 << " pound입니다.\n";
		break;

	}
	
}