Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Alejandro1195 en 19 Junio 2015, 16:00 pm



Título: Amigos cual es el error
Publicado por: Alejandro1195 en 19 Junio 2015, 16:00 pm
Código
  1. case 4:
  2.        do
  3.            {
  4.  
  5.            system("cls");
  6.            cout<<      "\n================================================================================";
  7.            cout<<      "                                EJERCICIOS TERCER PARCIAL     ";
  8.            cout<<      "\n================================================================================";
  9.            cout<<"\n     1.- Operaciones Basicas                      2.- Regresar menu anterior";
  10.            cout<<endl;
  11.            cout<<endl;
  12.            cout<<"\n     0.- Salir                          ";
  13.            cout<<endl;
  14.            cout<<endl;
  15.            cout<<"Elija una opcion:\n";
  16.            cin>>opcion4;
  17.            switch(opcion4)
  18.            {
  19.            case 1:
  20.                {
  21.                    int men;
  22.                        float sumar=0,restar=0,multiplicar=1,promedio=1,contar,n,numeros;
  23.                  do{
  24.                        system("cls");
  25.                   cout<<"***************************"<<endl;
  26.                   cout<<"\t\tOperaciones matematicas basicas\n";
  27.                   cout<<"\t 1.- Sumar\n\t 2.- Restar\n\t 3.- Multiplicar\n\t 4.- Promedio\n\t 5.- Salir\n";
  28.                   cout<<"***************************"<<endl;
  29.                   cout<<endl;
  30.                   cout<<"¿Que quieres hacer?:\t";
  31.                   cin>>men;
  32.                   system("Cls"); //limpiar pantalla
  33.                   switch(men){
  34.                   case 1:
  35.                       {system("cls");
  36.                       cout<<"\t\tOperacion sumar\n";
  37.                       cout<<"cuantos numeros quieres sumar:\t";
  38.                       cin>>n;
  39.                       for(contar=1;contar<=n;contar++){
  40.                        cout<<"ingrese numero:"<<contar<<":\t"<<endl;
  41.                        cin>>numeros;
  42.                        sumar+=numeros;
  43.                       }
  44.                   cout<<"la suma es:\t"<<sumar<<"\n";
  45.                   system("PAUSE"); //Pausar el programa
  46.                   break;
  47.                       }
  48.                   case 2:
  49.                       {system("cls");
  50.                    cout<<"\t\tOperacion restar\n";
  51.                       cout<<"cuantos numeros quieres restar:\t";
  52.                       cin>>n;
  53.                       for(contar=1;contar<=n;contar++){
  54.                        cout<<"ingrese numero:"<<contar<<":\t"<<endl;
  55.                        cin>>numeros;
  56.                       if(contar>1)
  57.                        numeros*=-1;
  58.                        restar+=numeros;
  59.                       }
  60.                   cout<<"la resta es:\t"<<restar<<"\n";
  61.                   system("PAUSE"); //Pausar el programa
  62.                   break;
  63.                       }
  64.  
  65.                   case 3:
  66.                       {system("cls");
  67.                    cout<<"\t\tOperacion multiplicar\n";
  68.                       cout<<"cuantos numeros quieres multiplicar:\t";
  69.                       cin>>n;
  70.                       for(contar=1;contar<=n;contar++){
  71.                        cout<<"ingrese numero:"<<contar<<":\t"<<endl;
  72.                        cin>>numeros;
  73.                        multiplicar*=numeros;
  74.                       }
  75.                   cout<<"la multiplicacion es:\t"<<multiplicar<<"\n";
  76.                   system("PAUSE"); //Pausar el programa
  77.                   break;}
  78.  
  79.                   case 4:
  80.                       {system("cls");
  81.                    cout<<"\t\tOperacion promedio\n";
  82.                       cout<<"cuantos numeros quieres promediar:\t";
  83.                       cin>>n;
  84.                       for(contar=1;contar<=n;contar++){
  85.                        cout<<"ingrese numero:"<<contar<<":\t"<<endl;
  86.                        cin>>numeros;
  87.                        sumar+=numeros;
  88.                        promedio=sumar/n;
  89.                       }
  90.                   cout<<"la promedio es:\t"<<promedio<<"\n";
  91.                   system("PAUSE"); //Pausar el programa
  92.                   break;
  93.                       }
  94.                   case 5:
  95.                    {
  96.  
  97.                    }
  98.  
  99.                    default:
  100.                    {
  101.                        cout<<"Opcion No Valida";
  102.                        system("pause");
  103.                        break;
  104.                    }
  105.  
  106.  
  107.  
  108.  
  109.   }
  110.    //cierre ciclo programa
  111.  }while(men!=5 );
  112.  }
  113.  
  114.  //cierre case 1
  115.  
  116.   case 2:
  117.    {
  118.        goto menu;
  119.    }
  120.  
  121.   case 0:
  122.    {if(opcion!=0 || opcion4!=0)
  123.    {
  124.        cout<<"Salir del programa";
  125.        return 0;
  126.    }
  127.  
  128.   default:
  129.    {
  130.        cout<<"\nOpcion No Valida ";
  131.        system("pause");
  132.        break;
  133.    }
  134.    }
  135.  
  136.  
  137.  
  138.            }//cierre swith opcion 4
  139.            }
  140.  
  141.            while(opcion!=2);

Lo que necesito que una vez ejecutado el case 1, me mande al menu anterior y no encuentro la forma para realizarlo :(

(http://i59.tinypic.com/5lxizl.png)
(http://i57.tinypic.com/2gtz2g1.png)
(http://i59.tinypic.com/34gsqqr.png)

muchas gracias amigos


Título: Re: Amigos cual es el error
Publicado por: Stakewinner00 en 19 Junio 2015, 16:18 pm
Para empezar evita el uso de "goto". Y no pongas tanto code dentro de los case porque queda bastante ilegible. Los case en un switch case tendrían que tener poco código. También hay gente que no recomienda usar do-while...


Título: Re: Amigos cual es el error
Publicado por: Alejandro1195 en 19 Junio 2015, 16:27 pm
Para empezar evita el uso de "goto". Y no pongas tanto code dentro de los case porque queda bastante ilegible. Los case en un switch case tendrían que tener poco código. También hay gente que no recomienda usar do-while...

Como me recomienda hacerlo? Soy nuevo en esto y en vez de goto que puedo utilziar?


Título: Re: Amigos cual es el error
Publicado por: DarK_FirefoX en 19 Junio 2015, 17:24 pm
Como bien dice Stakewinner00, evita usar los goto.

Léete esto (Traducción al español del artículo original por Edsger W. Dijkstra):
http://bioinfo.uib.es/~joemiro/teach/material/escritura/GoToEsp.pdf (http://bioinfo.uib.es/~joemiro/teach/material/escritura/GoToEsp.pdf)