elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
12 Octubre 2008, 18:24  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++
| | |-+  como regresar al menu anterior
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: como regresar al menu anterior  (Leído 533 veces)
LOKORIP

Desconectado Desconectado

Mensajes: 62


Ver Perfil
como regresar al menu anterior
« en: 03 Abril 2008, 10:56 »

el codigo esta incompleto pero si compila mi pregunta es en la opcion 2(funciones matematicas) en la opcion 3(regresar al menu anterior)   no se que poner para que regrese al menu anterior 


gracias de antemano


#include <stdio.h>
#include <math.h>
#include <conio.h>

void main ()
{

int menu;
float num,resultado,resul,result,num2,total,final;

clrscr();

printf("menu principal\n\n");
printf("1) funciones trigonometricas\n");
printf("2) funciones matematicas\n");
printf("3) salir\n");
scanf("%d",&menu);
switch(menu)
{
case 1: clrscr();
printf("menu de funciones trigonometricas\n\n");
   printf("1 sen de x\n");
   printf("2 cos de x\n");
   printf("3 tan de x\n");
   printf("4 regresar menu anterior\n");
   scanf("%d" ,&menu);
   switch (menu)
   {

   case 1: clrscr();
   printf("introduce un numero");
   scanf("%f" ,&num);
   resultado=sin (num);
   printf("el seno del numero es %f",resultado);
   break;

   case 2:clrscr();
    printf("introduce un numero");
   scanf("%f" ,&num);
   resul=cos (num);
   printf("el coseno del numero es %f",resul);
   break;

   case 3: clrscr();
   printf("introduce un numero");
   scanf("%f" ,&num);
   result=tan (num);
   printf("la tangente del numero es %f",result);
   
   break;       


       }

       break;

case 2: clrscr();
   printf("menu de funciones matematicas\n\n");
   printf("1 elevar un numero a cualquier potencia\n");
   printf("2 obtener la raiz cuadrada de cualquier numero\n");
   printf("3 regreso al menu anterior\n");
   scanf("%d" ,&menu);

   switch (menu)

   {

   case 1: clrscr();
           printf("introduce un numero");
      scanf("%f" ,&num);
      printf("introduce la potencia a la que se desea elevarse");
      scanf("%f" ,&num2);
      total=pow(num,num2);
                printf("el resultado es %f",total);
      break;


   case 2: clrscr();

      printf("introduce un numero");
      scanf("%f" ,&num);
      final=sqrt(num);
      printf("la raiz cuadrada es %f",final);
      break;

         case 3: return;
               break;

           


            }
case 3:
break;
}

 }



En línea
Flakito81

Desconectado Desconectado

Mensajes: 350



Ver Perfil
Re: como regresar al menu anterior
« Respuesta #1 en: 03 Abril 2008, 11:36 »

Haciendo algo asi:

Código
do  //<---
{  //<---
  clrscr();
  printf("menu de funciones matematicas\n\n");
  printf("1 elevar un numero a cualquier potencia\n");
  printf("2 obtener la raiz cuadrada de cualquier numero\n");
  printf("3 regreso al menu anterior\n");
  scanf("%d" ,&menu);
  repetir = 0;  // <---
  switch (menu)
 
  {
 
  case 1: clrscr();
          printf("introduce un numero");
     scanf("%f" ,&num);
     printf("introduce la potencia a la que se desea elevarse");
     scanf("%f" ,&num2);
     total=pow(num,num2);
               printf("el resultado es %f",total);
     break;
 
 
  case 2: clrscr();
 
     printf("introduce un numero");
     scanf("%f" ,&num);
     final=sqrt(num);
     printf("la raiz cuadrada es %f",final);
     break;
 
        case 3:
              repetir = 1;  //<----
              break;
 
 
 
 
           } //final del switch
}while (repetir == 1);  //<--
 

Suerte!!!
En línea
LOKORIP

Desconectado Desconectado

Mensajes: 62


Ver Perfil
Re: como regresar al menu anterior
« Respuesta #2 en: 03 Abril 2008, 21:39 »

disculpa mi ignorancia pero ya intente varias veces y no logro hacerlo regresar al menu anterior  con tu codigo si elijo la opcion 3 se queda en ese mismo menu     ya intente de varias formas y no logro hacerlo          recien comienzo en c++ y tengo muchas ganas de aprender.


GRACIAS DE ANTEMANO POR SU AYUDA


En línea
Flakito81

Desconectado Desconectado

Mensajes: 350



Ver Perfil
Re: como regresar al menu anterior
« Respuesta #3 en: 03 Abril 2008, 23:32 »

Te refieres a volver al menú principal?
Pues similar a lo que te he dicho, pero pones el repetir = 1 al iniciar el programa y un do while entre el menú principal y el switch las general. y en la opcion de salir pones un repetir = 0;

Algo asi:
Código
repetir = 1;
do
{
printf("menu principal\n\n");
printf("1) funciones trigonometricas\n");
printf("2) funciones matematicas\n");
printf("3) salir\n");
scanf("%d",&menu);
switch(menu)
{
case 1:
  clrscr();
  printf("menu de funciones trigonometricas\n\n");
  printf("1 sen de x\n");
  printf("2 cos de x\n");
  printf("3 tan de x\n");
  printf("4 regresar menu anterior\n");
  scanf("%d" ,&menu);
  switch (menu)
  {
 
  case 1: clrscr();
  printf("introduce un numero");
  scanf("%f" ,&num);
  resultado=sin (num);
  printf("el seno del numero es %f",resultado);
  break;
 
  case 2:clrscr();
   printf("introduce un numero");
  scanf("%f" ,&num);
  resul=cos (num);
  printf("el coseno del numero es %f",resul);
  break;
 
  case 3: clrscr();
  printf("introduce un numero");
  scanf("%f" ,&num);
  result=tan (num);
  printf("la tangente del numero es %f",result);
 
  break;      
 
 
   }  //fin switch menu trigonometricas
   break;
 
case 2: clrscr();
  printf("menu de funciones matematicas\n\n");
  printf("1 elevar un numero a cualquier potencia\n");
  printf("2 obtener la raiz cuadrada de cualquier numero\n");
  printf("3 regreso al menu anterior\n");  
  scanf("%d" ,&menu);
 
  switch (menu)
 
  {
 
  case 1: clrscr();
          printf("introduce un numero");
     scanf("%f" ,&num);
     printf("introduce la potencia a la que se desea elevarse");
     scanf("%f" ,&num2);
     total=pow(num,num2);
               printf("el resultado es %f",total);
     break;
 
 
  case 2: clrscr();
 
     printf("introduce un numero");
     scanf("%f" ,&num);
     final=sqrt(num);
     printf("la raiz cuadrada es %f",final);
     break;
 
        case 3: return;
              break;  //<no tiene sentido un break despues de un  return
    }//fin switch funciones matematicas
   case 3:  //opcion para las raices cuadradas
      break;
   case 4:   //<<-- para salir
      repetir = 0;
      break;
   }//fin switch externo (switch principal)
}while (repetir == 1);
 


Como ves es práticamente identico a lo q te puse. Tal como lo hice se repite hasta que en el menú principal no tecleas 4
No estaria de mas hacer funciones para cada cosa, es decir una funcion para las funciones trigonometricas y otro para las matematicas. En realidad sería hacer las dos funciones con los prototipos void nombre_funcion (void) y dentro copiar literalmente el codigo q tienes en el case 1 (para la primera funcion) y case 2 (para la segunda funcion) y solo te quedaria declarar las variables. si haces eso te queda un programa con esta estructura:
Código
repetir = 1;
do{
   //opciones de menu
   scanf ("%d", &menu);
   switch(menu)
   {
      case 1:
              funcionestrigonometricas();
              break;
      case 2:
              funcionesmatematicas();
              break;
      case 3:
             //lo q sea
              break;
      case 4:
             repetir = 0;
             break; //<-no es necesario ponerlo para este caso
 
   }//fin switch
}while (repetir == 1):  
 
para las funciones trigonometricas quedaria algo como;
Código
void funcionestrigonometricas (void)
{
  int menu;
  float result, num;
 
  printf("menu de funciones trigonometricas\n\n");
  printf("1 sen de x\n");
  printf("2 cos de x\n");
  printf("3 tan de x\n");
  printf("4 regresar menu anterior\n");
  scanf("%d" ,&menu);
  switch (menu)
  {
 
      case 1:
            clrscr();
            printf("introduce un numero");
            scanf("%f" ,&num);
            resultado=sin (num);
            printf("el seno del numero es %f",resultado);
           break;
 
     case 2:
            clrscr();
            printf("introduce un numero");
            scanf("%f" ,&num);
            resul=cos (num);
            printf("el coseno del numero es %f",resul);
            break;
 
     case 3:
           clrscr();
           printf("introduce un numero");
           scanf("%f" ,&num);
           result=tan (num);
           printf("la tangente del numero es %f",result);
           break;      
   }//fin switch
} //fin funcion
 
como ves es el mismo codigo que tienes hecho, pero mucho mas entendible y organizado.
Para la otra funcion es lo mismo!
 
Un saludo!
« Última modificación: 03 Abril 2008, 23:35 por Flakito81 » En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats