Bueno, estaba un poco dormido en c++, asi que me puse a trabajar en esto, un convertidor de unidades, solo tiene para longitud y peso , le iva a poner mas pero me aburri , en fin.

Código: Seleccionar todo

#include <iostream.h>
#include <string.h>

const char Asterisco[] = "*******************";
int Peso();
int Longi();

int main()
{
	int accion;
cout << "Seleccione la opción deseada" << endl;
cout << "1.- Peso" << endl;
cout << "2.- Longitud"<< endl;

cin >> accion;

switch(accion)
{

case 1:

   Peso();
   break;
case 2:
	Longi();
}

return 0;
}


int Peso()
{
	int     Accion1;
	int	    Accion2;
	char    Unidad[10];
    double   Num1;
	double   Resultado;

	cout << Asterisco << "Conversión De Peso" << Asterisco << endl;
	cout << "Seleccione la unidad de entrada" << endl;
	cout << "1.-KiloGramos" << endl;
	cout << "2.-Gramos" << endl;
	cout << "3.-Libras" << endl;
	cout << "4.-Toneladas" << endl;
    cin >> Accion1;

	cout << "Seleccione la unidad de salida" << endl;
	cout << "1.-KiloGramos" << endl;
	cout << "2.-Gramos" << endl;
	cout << "3.-Libras" << endl;
	cout << "4.-Toneladas" << endl;
	cin >> Accion2;
 
	cout << "Ingrese el dato a convertir" << endl;
	cin >> Num1;

   switch (Accion1)

   {

   case 1:

	switch(Accion2)
    {
	case 2:
		Resultado = Num1 * 1000;
		break;
	case 3:
		Resultado = Num1 * 1000;
		Resultado = Resultado / 0.4536;
		break;
	case 4:
        Resultado = Num1 / 1000;
		break;
    }

    break;

	case 2:
    
	switch(Accion2)
	{
	case 1:
		Resultado = Num1 / 1000;
		break;
	case 3:
		Resultado = Num1 / 0.4536;
		break;
	case 4:
        Resultado = Num1 / 1000000;
		break;
	}
    
	break;

	case 3:

	switch(Accion2)
	{
	case 1:
         Resultado = Num1 * 0.4536;
		 Resultado = Resultado / 1000;
		 break;
	case 2:
		 Resultado = Num1 * 0.4536;
	case 4:
         Resultado = Num1 * 0.4536;
		 Resultado = Resultado / 1000000;
		 break;
	}
    
	break;

	case 4:

	switch(Accion2)
	{
	case 1:
		 Resultado = Num1 * 1000;
	case 2:
		 Resultado = Num1 * 1000000;
	case 3:
		 Resultado = Num1 * 1000000;
		 Resultado = Resultado / 0.4536;
		 break;
	}

	break;

   }
  
   switch(Accion2)
   {
   case 1:
	  strcpy(Unidad,"Kilogramos");
		break;
   case 2:
	  strcpy(Unidad,"Gramos");
	  break;
   case 3:
	   strcpy(Unidad,"Libras");
	   break;
   case 4:
	   strcpy(Unidad,"Toneladas");
	   break;
   }

	cout << "Resultado: " << Resultado << " " << Unidad << endl;

	return 0;
}

int Longi()
{
	int    Accion1;
	int    Accion2;
	double    Num1;
	double  Resultado;
	char    Unidad[14];

	cout << Asterisco << "Conversión De Longitud" << Asterisco << endl;

	cout << "Seleccione la unidad de entrada" << endl;
	cout << "1.-Centimetro" << endl;
	cout << "2.-Metro" << endl;
	cout << "3.-Decametro" << endl;
	cout << "4.-Kilometro" << endl;
	cout << "5.-Milla" << endl;
    cin >> Accion1;

	cout << "Seleccione la unidad de salida" << endl;
	cout << "1.-Centimetro" << endl;
	cout << "2.-Metro" << endl;
	cout << "3.-Decametro" << endl;
	cout << "4.-Kilometro" << endl;
	cout << "5.-Milla" << endl;
    cin >> Accion2;

	cout << "Ingrese el dato a convertir" << endl;
    cin >> Num1;

	switch(Accion1)
	{
	case 1:
		switch(Accion2)
		{
		case 2:
        Resultado = Num1 / 100;
		break;
		case 3:
		Resultado = Num1 / 1000;
		break;
		case 4:
		Resultado = Num1 / 100000;
		break;
		case 5:
		Resultado = Num1 / 161000;
        break;
		}
	 break;
	case 2:
	switch(Accion2)
	{
	case 1:
		Resultado = Num1 * 100;
		break;
	case 3:
        Resultado = Num1 / 10;
		break;
	case 4:
        Resultado = Num1 / 1610;
        break;
	}
	break;
	case 3:

	switch(Accion2)
	{
	case 1:
		Resultado = Num1 * 1000;
		break;
	case 2:
		Resultado = Num1 * 10;
		break;
	case 4:
		Resultado = Num1 / 100;
			break;
	case 5:
        Resultado = Num1 / 161;
        break;
	}
    
	break;
	case 4:
		switch(Accion2)
		{
		case 1:
		   Resultado = Num1 * 10000;
		   break;
		case 2:
			Resultado = Num1 * 1000;
			break;
		case 3:
			Resultado = Num1 * 100;
			break;
		case 5:
			Resultado = Num1 / 1.61;
            break;
		}
	break;
		case 5:
		switch(Accion2)
		{
		case 1:
		Resultado = Num1 * 161000;
		break;
		case 2:
		Resultado = Num1 * 1610;
		break;
		case 3:
		Resultado = Num1 * 161;
		break;
		case 4:
	    Resultado = Num1 * 1.61;
		break;
		}
        break;
	}
	 switch(Accion2)
	 {
	 case 1:
		 strcpy(Unidad,"Centimetros");
	    break;
	 case 2:
		 strcpy(Unidad,"Metros");
		break;
	 case 3:
		 strcpy(Unidad,"Decametros");
		 break;
	 case 4:
		 strcpy(Unidad,"Kilometros");
		 break;
	 case 5:
		 strcpy(Unidad,"Millas");
	 }
	 
	 cout << "Resultado: " << Resultado << " " << Unidad << endl;
	 
	 return 0;
		 }
Dudas, Comentarios,Sugerencias son bienvenidos
sugerencia poner un default en los switch y un while en el switch principal para que una vez cumplida la funcion puedas escoger otra y no se cierre el programa!
//mHmm..
muy bueno K-0Z! sigue con el C hermano, quiero ver herramientas programadar por tí en este lenguaje

saludos!!
Soy un camaleón, en tu cama, leona ♪
Está bien, pero yo eliminaría las variables locales Num1 en cada funcion y "acortamos" el code
Ejemplo en la funcion Peso:

Código: Seleccionar todo

int Peso()
{
   int     Accion1;
   int       Accion2;
   char    Unidad[10];
 //   double   Num1;
   double   Resultado;

   cout << Asterisco << "Conversión De Peso" << Asterisco << endl;
   cout << "Seleccione la unidad de entrada" << endl;
   cout << "1.-KiloGramos" << endl;
   cout << "2.-Gramos" << endl;
   cout << "3.-Libras" << endl;
   cout << "4.-Toneladas" << endl;
    cin >> Accion1;

   cout << "Seleccione la unidad de salida" << endl;
   cout << "1.-KiloGramos" << endl;
   cout << "2.-Gramos" << endl;
   cout << "3.-Libras" << endl;
   cout << "4.-Toneladas" << endl;
   cin >> Accion2;

   cout << "Ingrese el dato a convertir" << endl;
   cin >> Resultado;

   switch (Accion1)

   {

   case 1:

   switch(Accion2)
    {
   case 2:
      Resultado *= 1000;
      break;
   case 3:
      Resultado *= 1000;
      Resultado /= 0.4536;
      break;
   case 4:
        Resultado /= 1000;
      break;
    }

    break;

   case 2:
    
   switch(Accion2)
   {
   case 1:
      Resultado /= 1000;
      break;
   case 3:
      Resultado /= 0.4536;
      break;
   case 4:
        Resultado /= 1000000;
      break;
   }
    
   break;

   case 3:

   switch(Accion2)
   {
   case 1:
         Resultado *=  0.4536;
       Resultado /=  1000;
       break;
   case 2:
       Resultado *= 0.4536;
   case 4:
         Resultado *=  0.4536;
       Resultado /= 1000000;
       break;
   }
    
   break;

   case 4:

   switch(Accion2)
   {
   case 1:
       Resultado *= 1000;
   case 2:
       Resultado *= 1000000;
   case 3:
       Resultado *= 1000000;
       Resultado /= 0.4536;
       break;
   }

   break;

   }
  
   switch(Accion2)
   {
   case 1:
     strcpy(Unidad,"Kilogramos");
      break;
   case 2:
     strcpy(Unidad,"Gramos");
     break;
   case 3:
      strcpy(Unidad,"Libras");
      break;
   case 4:
      strcpy(Unidad,"Toneladas");
      break;
   }

   cout << "Resultado: " << Resultado << " " << Unidad << endl;

   return 0;
}
Saludos.
Imagen
Responder

Volver a “Fuentes”