elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con ejercicio menu c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con ejercicio menu c++  (Leído 2,761 veces)
worbus

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Ayuda con ejercicio menu c++
« en: 5 Marzo 2018, 02:17 am »

Hola gente, llevo desarrollado un código de una tarea que me dejaron, que es la siguiente:

Realiza un programa que pregunte qué quieres convertir si unidades de peso o de longitud.

Si selecciona peso, mostrará un menú para capturar la cantidad y la unidad de medida que puede ser
-Gramos
-Libras
-Onzas
-Piedras
Después mostrará otro menú idéntico al anterior donde preguntará, a qué unidad se deberá convertir y mostrar la equivalencia

Si selecciona medidas de longitud, será el mismo procedimiento pero ahora con las siguientes opciones
-Milla
-Yarda
-Pie
-Pulgada


Y tengo esto de código:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. main() {
  5.    int opc,opc2,opc3,opc4,opc5,opc6,opc7,opc8,opc9,opc10,opc11;
  6.    float cant,gramos,libras,onzas,piedras,millas,yardas,pies,pulgadas;
  7.  
  8.    cout<<"Ingresa la cantidad a convertir"<<endl;
  9.    cin>>cant;
  10.    cout<<"Opciones" <<endl;
  11.    cout<<"1: unidades de peso"<<endl;
  12.    cout<<"2: longitud"<<endl;
  13.    cin>>opc;
  14.  
  15.  
  16.    if (opc==1){
  17.    cout<<"Opciones" <<endl;
  18.    cout<<"1: Gramos"<<endl;
  19.    cout<<"2: Libras"<<endl;
  20.    cout<<"3: Onzas"<<endl;
  21.    cout<<"4: Piedras"<<endl;
  22.    cin>>opc2;
  23.    }
  24.    switch (opc2){
  25.        case 1:
  26.            cout<<"Escogiste Gramos"<<endl;
  27.            cout<<"Selecciona a que quieres convertir los gramos: "<<endl;
  28.            cout<<"1: Libras"<<endl;
  29.            cout<<"2: Onzas"<<endl;
  30.            cout<<"3: Piedras"<<endl;
  31.            cin>>opc3;
  32.            break;
  33.            }
  34.  
  35.                switch (opc3) {
  36.                    libras = cant * .0022;
  37.                    case 1:cout<<"libras: "<<libras<<endl;
  38.                    break;
  39.  
  40.                    onzas = cant * .0352739;
  41.                    case 2:cout<<"Onzas: "<<onzas<<endl;
  42.                    break;
  43.  
  44.                    piedras = cant * 0.0001575;
  45.                    case 3:cout<<"Piedras: "<<piedras<<endl;
  46.                    break;
  47.  
  48.                    default:
  49.                    cout<<"Error"<<endl;
  50.                    }
  51.  
  52.        case 2:
  53.            cout<<"Escogiste Libras: "<<endl;
  54.            cout<<"Selecciona a que quieres convertir las libras: "<<endl;
  55.            cout<<"1: Gramos"<<endl;
  56.            cout<<"2: Onzas"<<endl;
  57.            cout<<"3: Piedras"<<endl;
  58.            cin>>opc4;
  59.  
  60.  
  61.                switch (opc4) {
  62.  
  63.                    gramos = cant * 453.59;
  64.                    case 1:cout<<"Gramos: "<<gramos<<endl;
  65.                    break;
  66.  
  67.                    onzas = cant * 16;
  68.                    case 2:cout<<"Onzas: "<<onzas<<endl;
  69.                    break;
  70.  
  71.                    piedras = cant * 0.071429;
  72.                    case 3:cout<<"Piedras: "<<piedras<<endl;
  73.                    break;
  74.  
  75.                    default:
  76.                    cout<<"Error"<<endl;
  77.                    }
  78.  
  79.        case 3:
  80.            cout<<"Escogiste Onzas: "<<endl;
  81.            cout<<"Selecciona a que quieres convertir las onzas: "<<endl;
  82.            cout<<"1: Gramos"<<endl;
  83.            cout<<"2: Libras"<<endl;
  84.            cout<<"3: Piedras"<<endl;
  85.            cin>>opc5;
  86.  
  87.  
  88.                switch (opc5){
  89.  
  90.                    gramos = cant * 28.3495;
  91.                    case 1:cout<<"Gramos: "<<gramos<<endl;
  92.                    break;
  93.  
  94.                    libras = cant * 0.0625;
  95.                    case 2:cout<<"Libras: "<<libras<<endl;
  96.                    break;
  97.  
  98.                    piedras = cant * 0.00446429;
  99.                    case 3:cout<<"Piedras: "<<piedras<<endl;
  100.                    break;
  101.  
  102.                    default:
  103.                    cout<<"Error"<<endl;
  104.                    }
  105.  
  106.        case 4:
  107.            cout<<"Escogiste Piedras: "<<endl;
  108.            cout<<"Selecciona a que quieres convertir las piedras: "<<endl;
  109.            cout<<"1: Gramos"<<endl;
  110.            cout<<"2: Libras"<<endl;
  111.            cout<<"3: Onzas"<<endl;
  112.            cin>>opc6;
  113.  
  114.  
  115.                switch (opc6){
  116.  
  117.                    gramos = cant * 6350.29;
  118.                    case 1:cout<<"Gramos: "<<gramos<<endl;
  119.                    break;
  120.  
  121.                    libras = cant * 14;
  122.                    case 2:cout<<"Libras: "<<libras<<endl;
  123.                    break;
  124.  
  125.                    onzas =  cant * 224;
  126.                    case 3:cout<<"Onzas: "<<onzas<<endl;
  127.                    break;
  128.  
  129.                    default:
  130.                    cout<<"Error"<<endl;
  131.  
  132.    }
  133. }
  134.  
  135. else {
  136.  
  137.    cout<<"Opciones" <<endl;
  138.    cout<<"1: Milla"<<endl;
  139.    cout<<"2: Yarda"<<endl;
  140.    cout<<"3: Pie"<<endl;
  141.    cout<<"4: Pulgada"<<endl;
  142.    cin>>opc7;
  143.  
  144.  
  145.    switch (opc7){
  146.        case 1:
  147.            cout<<"Escogiste Milla"<<endl;
  148.            cout<<"Selecciona a que quieres convertir las millas: "<<endl;
  149.            cout<<"1: Yarda"<<endl;
  150.            cout<<"2: Pie"<<endl;
  151.            cout<<"3: Pulgada"<<endl;
  152.            cin>>opc8;
  153.            break;
  154.            }
  155.  
  156.                switch (opc8) {
  157.  
  158.                    yardas = cant * 1760;
  159.                    case 1:cout<<"Yardas: "<<yardas<<endl;
  160.                    break;
  161.  
  162.                    pies = cant * 5280;
  163.                    case 2:cout<<"Pies: "<<pies<<endl;
  164.                    break;
  165.  
  166.                    pulgadas = cant * 63360;
  167.                    case 3:cout<<"Pulgadas: "<<pulgadas<<endl;
  168.                    break;
  169.                    default:
  170.                    cout<<"Error"<<endl;
  171.                    }
  172.  
  173.        case 2:
  174.            cout<<"Escogiste Yardas: "<<endl;
  175.            cout<<"Selecciona a que quieres convertir las yardas: "<<endl;
  176.            cout<<"1: Millas"<<endl;
  177.            cout<<"2: Pies"<<endl;
  178.            cout<<"3: Pulgadas"<<endl;
  179.            cin>>opc9;
  180.            break;
  181.  
  182.                switch (opc9) {
  183.  
  184.                    millas = cant * 0.000568182;
  185.                    case 1:cout<<"Millas: "<<millas<<endl;
  186.                    break;
  187.  
  188.                    pies = cant * 3;
  189.                    case 2:cout<<"Pies: "<<pies<<endl;
  190.                    break;
  191.  
  192.                    pulgadas = cant * 36;
  193.                    case 3:cout<<"Pulgadas: "<<pulgadas<<endl;
  194.                    break;
  195.  
  196.                    default:
  197.                    cout<<"Error"<<endl;
  198.                    }
  199.  
  200.        case 3:
  201.            cout<<"Escogiste Pies: "<<endl;
  202.            cout<<"Selecciona a que quieres convertir los pies: "<<endl;
  203.            cout<<"1: Millas"<<endl;
  204.            cout<<"2: Yardas"<<endl;
  205.            cout<<"3: Pulgadas"<<endl;
  206.            cin>>opc10;
  207.            break;
  208.  
  209.                switch (opc10){
  210.  
  211.                    millas = cant * 0.000189394;
  212.                    case 1:cout<<"Millas: "<<millas<<endl;
  213.                    break;
  214.  
  215.                    yardas = cant * 0.333333;
  216.                    case 2:cout<<"Yardas: "<<yardas<<endl;
  217.                    break;
  218.  
  219.                    pulgadas = cant * 12;
  220.                    case 3:cout<<"Pulgadas: "<<pulgadas<<endl;
  221.                    break;
  222.  
  223.                    default:
  224.                    cout<<"Error"<<endl;
  225.                    }
  226.  
  227.        case 4:
  228.            cout<<"Escogiste Pulgadass: "<<endl;
  229.            cout<<"Selecciona a que quieres convertir las pulgadas: "<<endl;
  230.            cout<<"1: Milla"<<endl;
  231.            cout<<"2: Yarda"<<endl;
  232.            cout<<"3: Pie"<<endl;
  233.            cin>>opc11;
  234.            break;
  235.  
  236.                switch (opc11){
  237.  
  238.                    millas = cant * 1.5783;
  239.                    case 1:cout<<"Millas: "<<millas<<endl;
  240.                    break;
  241.  
  242.                    yardas = cant * 0.0277778;
  243.                    case 2:cout<<"Yardas: "<<yardas<<endl;
  244.                    break;
  245.  
  246.                    pies = cant * 0.0833333;
  247.                    case 3:cout<<"Pies: "<<pies<<endl;
  248.                    break;
  249.  
  250.                    default:
  251.                    cout<<"Error"<<endl;
  252.  
  253.    }
  254. }

Me dice que los cases no están declarados, pero la verdad es que ya no se que más hacer :( Llevo horas en el.
¿alguien que me pueda echar una mano?
OJO! Por favor no incluir cosas muy complejas (como el do-while o cosas raras, apenas llevo 2 meses en mi escuela viendo programacion y vamos un poco lento), mas que nada solo lo básico :D

SALUDOS!


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 5 Marzo 2018, 02:54 am por engel lex » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda con ejercicio menu c++
« Respuesta #1 en: 5 Marzo 2018, 09:08 am »

No haces bien los case:
Tú escribes
Código:
switch (opc3) {
    libras = cant * .0022;
    case 1:cout<<"libras: "<<libras<<endl;
    break;
    // ...

La línea en que calculas libras está en una dimensión desconocida, no hay manera a que el programa llegue a ella y la razón es que has puesto el case después.
Los case son puntos de entrada donde empezará la ejecución, así que es lo primero que debe aparecer.
Debe quedar así:
Código:
switch (opc3) {
    case 1:
        libras = cant * .0022;
        cout<<"libras: "<<libras<<endl;
        break;
    // ...


En línea

worbus

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda con ejercicio menu c++
« Respuesta #2 en: 5 Marzo 2018, 23:52 pm »

Tienes toda la razón, ya me pudo compilar, muchas gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines