Título: Menú con funciones en C++
Publicado por: DonCuervo en 10 Marzo 2017, 16:33 pm
Buen dia compañeros, me encuentro con el problema de querer llamar a la funcion menu, pero como aun no se declara no es posible, que acomodo tendria que darle o que solucion seria la mas eficaz? Aca el codigo: #include <iostream> #include <stdlib.h> #include <windows.h> using namespace std; int guardar(int tam, string arr[]){ cout << "Al guardar se perderan los datos anteriores, desea continuar s/n" << endl; char res; cin>>res; if(res=='s'){ for(int i=0;i<tam; i++){ if(arr[i]==""){ cout<<"Ingrese valor para la posicion " << i << " del arreglo"<< endl; cin>>arr[i]; } } } system("cls"); menu(tam,arr); } int ver(int tam, string arr[]){ for(int i=0; i<tam;i++){ if(arr[i]!=""){ cout<<i<<" "<< arr[i] << endl; }else{ cout<<i<<" vacio"<<endl; } } menu(tam,arr); } int borrar(int tam,string arr[]){ cout << "Que numero de entrada desea borrar"<< endl; for(int i=0;i<tam;i++){ cout<<i<<" "<<arr[i]<<endl; } int del; cin>>del; if(arr[del]==""){ cout<<"Registro vacio"<<endl; }else{ arr[del]=""; cout<<"Registro Borrado"<<endl; } menu(tam,arr); } int buscar(int tam,string arr[]){ cout<<"Introduzca el codigo a buscar"<<endl; string bus; cin>>bus; int inc=0; do{ inc++; } while(arr[inc]==bus); menu(tam,arr); } int menu(int tam, string arr[]){ cout << "Eliga la accion que quiera realizar:" << endl << "A.- Guardar" << endl << "B.- Ver" << endl << "C.- Buscar" << endl << "D.- Borrar" << endl << "E.- Salir" << endl; char ent; cin >> ent; if(ent=='a'||ent=='A'||ent=='b'||ent=='B'||ent=='c'||ent=='C'||ent=='D'||ent=='e'||ent=='E'){ if(ent=='a'||ent=='A'){ system("cls"); guardar(tam,arr); } if(ent=='b'||ent=='B'){ system("cls"); ver(tam,arr); } if(ent=='c'||ent=='C'){ system("cls"); buscar(tam,arr); } if(ent=='d'||ent=='D'){ system("cls"); borrar(tam,arr); } if(ent== 'e' || 'E'){ exit(0); } }else{ cout << "Entrada no valida" << endl << "Intente de nuevo" << endl; Sleep(2000); system("cls"); menu(tam,arr); } } int main(){ int tam=15; string arr[tam]; menu(tam,arr); }
Título: Re: Menú con funciones en C++
Publicado por: engel lex en 10 Marzo 2017, 17:42 pm
para eso se usan los prototipos de funcion int funcion1(int parametro); void funcion2(); int main(){ //algo } int funcion1(int parametro){ funcion2(); } void funcion2(){ //algo }
Título: Re: Menú con funciones en C++
Publicado por: DonCuervo en 10 Marzo 2017, 18:06 pm
Gracias! Con eso resolví.
Título: Re: Menú con funciones en C++
Publicado por: aguml en 10 Marzo 2017, 18:10 pm
Tiene bastantes problemas estructurales. Te paso el codigo con algunas correcciones: #include <iostream> #include <stdlib.h> #include <windows.h> using namespace std; void guardar(int tam, string arr[]){ char res; cout << "Al guardar se perderan los datos anteriores, desea continuar s/n: " << endl; cin>>res; res=toupper(res);
if(res=='S'){ for(int i=0;i<tam; i++){ if(arr[i]==""){ cout<<"Ingrese valor para la posicion " << i << " del arreglo"<< endl; cin>>arr[i]; } } } }
void ver(int tam, string arr[]){ for(int i=0; i<tam;i++){ if(arr[i]!=""){ cout<<i<<" "<< arr[i] << endl; }else{ cout<<i<<" vacio"<<endl; } } }
//Esto es porque si pides un numero y se introduce por ejemplo una letra... //Pruebalo sin esto y veras que gracioso int GetIndex(int tam){ bool error; int del; string aux;
do{ cin>>aux; error=false; for(int i=0;i<aux.length();i++){ if(!isdigit(aux[i])){ error=true; break; } } if(!error){ del=atoi(aux.c_str()); if(del > tam || del < 0){ error=true; } } if(error) cout<<"Numero incorrecto."<<endl<<"Vuelve a intentarlo: "; }while(error);
return del; }
void borrar(int tam,string arr[]){ int del;
for(int i=0;i<tam;i++){ cout<<i<<" "<<arr[i]<<endl; } cout << "Que numero de entrada desea borrar: "<< endl;
del=GetIndex(tam);
if(arr[del]==""){ cout<<"Registro vacio"<<endl; }else{ arr[del]=""; cout<<"Registro Borrado"<<endl; } }
void buscar(int tam,string arr[]){ string bus; bool encontrado=false;
cout<<"Introduzca el codigo a buscar: "; cin>>bus;
for(int i=0;i<tam;i++){ if(arr[i]==bus){ cout<<arr[i] << " encontrado en la posicion " << i << endl; encontrado=true; } } if(!encontrado) cout<<"Codigo no encontrado"<<endl; }
int menu(int tam, string arr[]){ char ent; cout << "Eliga la accion que quiera realizar:" << endl << "A.- Guardar" << endl << "B.- Ver" << endl << "C.- Buscar" << endl << "D.- Borrar" << endl << "E.- Salir" << endl; cout<<"Introduzca una opcion: "; do{ cin >> ent; ent=toupper(ent); if(ent<'A' || ent>'E') cout << "Entrada no valida" << endl << "Intente de nuevo: "; }while(ent<'A' || ent>'E');
switch(ent){ case 'A': system("cls"); guardar(tam,arr); system("pause"); break; case 'B': system("cls"); ver(tam,arr); system("pause"); break; case 'C': system("cls"); buscar(tam,arr); system("pause"); break; case 'D': system("cls"); borrar(tam,arr); system("pause"); break; case 'E': break; } system("cls"); return ent; }
int main(){ const int tam=15; int op; string arr[tam];
for(int i=0;i<tam;i++) arr[i]=""; do{ op=menu(tam,arr); }while(op!='E'); }
|