Estoy haciendo un trabajo para la facu en C++ pero no puedo repetir el switch con el que hice el menu porque el break me lo frena el do while. Es decir, puse do{ el swtich }while(bandera=0);
O alguna otra sugerencia? muchas gracias!!
Copyright © 2024 Q2A.ES - All rights reserved.
Answers & Comments
Verified answer
Usa funciones. Por ejemplo:
void main(){
int opcionmenu;
MuestraMenu(); //Muestra las opciones del menú
TrataMenu(opcionmenu); //Trata aquí la opción menú
while (opcionmenu != 0){
MuestraMenu(); //Muestra las opciones del menú
TrataMenu(opcionmenu); //Trata aquí la opción menú
}
}
int TrataMenu(){
int opc_elegida;
opc_elegida = scanf(.........);//Coge la opción que teclee el usuario (no recuerdo cómo era)
switch(opc_elegida){
//Trata la opción y redirecciona
}
return opc_elegida;
}
He hecho la función sin compilador alguno, así que quizás tenga algunos errores. Revísalos.
HOLA AMIGOS ELAVORE UN MENU DE OPCIONES EN DEV C++ PERO EL PROBLEMA Q TENGO ES Q VADA VES EJECUTADO UN PROGRAMA DEVERIA REGRESAR AL MENU Y NO LO HACE ALGUIEN Q ME AYUDE :( #include<conio.h> //libreria para getch #include<stdio.h> //libreria para printf #include<iostream> #include<windows.h> #include <math.h> #include <stdlib.h> #include <string.h> #include <ctype.h> using namespace std; void gotoxy(int x,int y){ HANDLE hcon; hcon=GetStdHandle(STD_OUTPUT_HANDLE); COORD dwPos; dwPos.X=x; dwPos.Y=y; SetConsoleCursorPosition(hcon,dwPos); } int main() { int op=0,X,R,o,h,s,i,n; double a,g,t,pe,A,B,C,x = 6.54321, y = 0.56789; ; do{ system("cls"); system("color B0"); gotoxy(30,1); cout<<"MENU DE OPCIONES"; gotoxy(5,3); cout<<"1.- Ejemplo con pow"; gotoxy(5,4); cout<<"2.- Ejemplo con printf y scantf "; gotoxy(5,5); cout<<"3.- Ejemplo con rand "; gotoxy(5,6); cout<<"4.- Ejemplo con sqrt "; gotoxy(5,7); cout<<"5.- Ejemplo con strcat "; gotoxy(40,3); cout<<"6.- Ejemplo con strlen "; gotoxy(40,4); cout<<"7.- Ejemplo con system "; gotoxy(40,5); cout<<"8.- Ejemplo con tolower "; gotoxy(40,6); cout<<"9.- Ejemplo con toupper "; gotoxy(40,7); cout<<"10.- Ejemplo con puts "; gotoxy(25,10); cout<<"INGRESE EL NUMERO DE EJERCICIO: "; cin>>op; switch (op) { case 1: //povv system("cls"); printf( "pow( %f, %f ) = %f\n", x, y, pow(x,y) ); getchar(); return 0; cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; break; case 2: //printfy scantf system("cls"); printf("Los valores humanos: "); char o,h,s; scanf("%c",&o); printf("amistad%c",o); scanf("%c",&h); printf("honestidad%c",h); scanf("%c",&s); printf("solidaridad%c",s); getch(); gotoxy(20,23); cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; getch(); break; case 3: system("cls"); for(i=0; i<5; i++) { printf("%d\n", rand()); } getchar(); return 0; gotoxy(20,23); cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; break; case 4: system("cls"); printf("Por favor, inserte un numero: "); scanf("%d",&X); R=sqrt(X); printf("\n Su raiz cuadrada es: %d\n\n",R); getchar(); return 0; gotoxy(20,23); cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; break; case 5: system("cls"); char original[100]; char concat[100]; printf("la cadena es: \n"); scanf("%s",original ); printf("la cadena a concadenar es: \n"); scanf("%s",concat); strcat(original,concat); printf("Texto concadenado: %s\n", original); printf("presione una tecla para terminar: \n"); getchar(); return 0; gotoxy(20,23); cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; break; case 6: system("cls"); gotoxy(5,6); cout<<"EXISTEN EJERCICIOS PERO NO SE COMO ASERLOS EJECUTAR"; getchar(); return 0; gotoxy(20,23); cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; break; case 7: system("cls"); gotoxy(5,6); system("color A5"); cout << "Hola mundo." << endl; system("pause"); getchar(); return 0; gotoxy(20,23); cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; break; case 8: system("cls"); char letra; printf("Ingrese LETRA mayuscula:\n"); fflush(stdin); scanf("%c",&letra); letra = tolower(letra); printf("\nSu letra en minuscula es:%c",letra); getchar(); return 0; gotoxy(20,23); cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; break; case 9: system("cls"); char texto[250]; int i; printf("Ingrese el texto:\n"); gets(texto); texto[0]=toupper(texto[0]); for(i=0;i<strlen(texto);i++){ if(texto[i]=='.'){ i++; while(texto[i]==' ') i++; texto[i]=toupper(texto[i]); } } texto[i]='.'; texto[i+1]='\0'; printf("%s\n", texto); system("pause"); getchar(); return 0; gotoxy(20,23); cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; break; case 10: system("cls"); int a,b,c; puts("Ingrese un numero: "); cin>>a; puts("Ingrese el segudo numero: "); cin>>b; c=a+b; puts("Su respueta es: "); cout<<c; gotoxy(15,10); cout<<"LA ENTRADA DE DATOS SE HIZO CON PUTS"; getchar(); return 0; gotoxy(20,23); cout<<"*** ELAVORADO POR ==> ROYER SAMANIEGO *** "; break; } } while(op<20); }
mira pregunta la opcion
while(variable!=0){
sentencias
vuelves a preguntar la opcion
}
ah y no se si tengas mal esa declaracion pero el igual es asi ==
este es para leer numeros hasta que sea distinto de cero
sugerencias...
para comparar numeros variable!=0 y el igual es asi var==0
para comparar Strings palabra=="pablo"
para comparar Char caracter=='s'
Operadores logicos
== igual que
!= distinto que
y el mayor y los demas si te los sabes
&& AND
|| OR
espero y te Sirva
ODNAMRA