Autor
|
Tema: crear una lista de nombre con edad implementando en ella un menu. (Leído 2,351 veces)
|
ChuzZ02
Desconectado
Mensajes: 3
|
Hola. Busco la ayuda de algun programador avanzado que me oriente en alguna solucion al siguiente codigo. El ejercicio es simple, crear una lista de nombre con edad implementando en ella un menu. Aun no consigo agregar el nombre y la edad al vector ni tampoco puedo hacer la opcion de eliminar. agradezco cualquier ayuda que me puedan brindar. #include<iostream> //Incluyendo Bibliotecas #include<conio.h> #include<stdlib.h> #include<stdio.h> #include<string.h> using namespace std; //Jerarquia class Persona{ // Se declara una Clase: Persona // Creando los campos private: // Metodos Privados string nombre; int edad; public: // Metodos Publicos void setValores(string n,int e){ nombre=n; edad=e; } // Modificador string getNombre(){ return nombre; } // Consultor int getEdad(){ return edad; } // Consultor }; class Lista{ private: Persona empleado[10]; int ultimaPersona; int numElemento; public: Lista(){ultimaPersona=0;} void agregarEmpleado(string n, int e){ empleado[ultimaPersona].setValores(n,e); ultimaPersona++; } void eliminarEmpleado(int numElemento){ for(int i=numElemento; i<ultimaPersona; i++){ string nom = empleado[i+1].getNombre(); int ed = empleado[i+1].getEdad(); empleado[i].setValores(nom, ed); }ultimaPersona--; } void mostrarLista(){ for(int i=0; i<ultimaPersona; i++){ cout<<"Nombre: "<<empleado[i].getNombre()<<endl; cout<<"Edad: "<<empleado[i].getEdad()<<endl; cout<<endl; } } }; int main(){ // Comienza Ejecucion de Programa. while(1){// Funcion que forma un ciclo hasta que el usuario ordene romperlo. Lista miLista; string n; int e; int opc; cout<<"\t\t\t<------MENU PRINCIPAL------>"<<endl<<endl;// Con '\t\t\t' llevo un poco al centro el mensaje, y con '\n\n' salto 2 lineas hacia abajo. cout<<" 1) Agregar Empleado\n"<<endl; cout<<" 2) Eliminar Empleado\n"<<endl; cout<<" 3) Mostrar la Lista de Empleados\n"<<endl; cout<<" 4) Salir\n"<<endl; cout<<"\nElija una opcion ===> "; cin>>opc; system("cls"); // Funcion para limpiar la pantalla. switch(opc){ case 1: cout<<"\n Ingrese el nombre del empleado: \n"<<endl; cin>>n; cout<<"\n Ingrese la edad: \n"<<endl; cin>>e; miLista.agregarEmpleado(n,e); system("cls"); break; case 2: cout<<"Digite el nombre del empleado que desea eliminar: "<<endl; miLista.eliminarEmpleado(); system("pause"); system("cls"); break; case 3: cout<<"\n LISTA DE EMPLEADOS \n"<<endl; miLista.mostrarLista(); system("pause"); system("cls"); break; case 4: cout<<"Saliendo..."<<endl; exit(0); // Funcion que finaliza el programa. break; default: cout<<"Opcion No valida "<<endl; system("pause"); system("cls"); getch(); return 0; } } }
· tercera advertencia de todo lo dicho (que borraste al modificar el post) >aquí las reglas del foro -Engel Lex
|
|
« Última modificación: 3 Mayo 2017, 17:54 pm por engel lex »
|
En línea
|
|
|
|
CalgaryCorpus
|
Parece raro que lista derive de Persona. El arreglo de personas definido en el main está demás. Por qué no usas el tipo vector en vez de usar un arreglo? Eso facilitará el borrado. Qué tal si el borrado es solo lógico, osea marcas como si estuviera borrado pero los datos siguen allí, y luego cuando insertas reusas el espacio usado por los anteriormente borrados?
|
|
|
En línea
|
|
|
|
ChuzZ02
Desconectado
Mensajes: 3
|
gracias men. si es innecesaria que derive de la clase Persona. se puede hacer con un vector, pero el ejecicio es asi con el arreglo. ya lo modifique un poco, pero aun asi no puedo guardar los datos ingresados en el arreglo. #include<iostream> //Incluyendo Bibliotecas #include<conio.h> #include<stdlib.h> using namespace std; //Jerarquia class Persona{ // Se declara una Clase: Persona // Creando los campos private: // Metodos Privados string nombre; int edad; public: // Metodos Publicos void setValores(string n,int e){ nombre=n; edad=e; } // Modificador string getNombre(){ return nombre; } // Consultor int getEdad(){ return edad; } // Consultor }; class Lista{ private: Persona empleado[10]; int ultimaPersona; int numElemento; public: Lista(){ultimaPersona=0;} void agregarEmpleado(string n, int e){ empleado[ultimaPersona].setValores(n,e); ultimaPersona++; } void eliminarEmpleado(int numElemento){ for(int i=numElemento; i<ultimaPersona; i++){ string nom = empleado[i+1].getNombre(); int ed = empleado[i+1].getEdad(); empleado[i].setValores(nom, ed); }ultimaPersona--; } void mostrarLista(){ for(int i=0; i<ultimaPersona; i++){ cout<<"Nombre: "<<empleado[i].getNombre()<<endl; cout<<"Edad: "<<empleado[i].getEdad()<<endl; cout<<endl; } } }; int main(){ // Comienza Ejecucion de Programa. while(1){// Funcion que forma un ciclo hasta que el usuario ordene romperlo. Lista miLista; string n; int e; int opc; cout<<"\t\t\t<------MENU PRINCIPAL------>"<<endl<<endl;// Con '\t\t\t' llevo un poco al centro el mensaje, y con '\n\n' salto 2 lineas hacia abajo. cout<<" 1) Agregar Empleado\n"<<endl; cout<<" 2) Eliminar Empleado\n"<<endl; cout<<" 3) Mostrar la Lista de Empleados\n"<<endl; cout<<" 4) Salir\n"<<endl; cout<<"\nElija una opcion ===> "; cin>>opc; system("cls"); // Funcion para limpiar la pantalla. switch(opc){ case 1: cout<<"\n Ingrese el nombre del empleado: \n"<<endl; cin>>n; cout<<"\n Ingrese la edad: \n"<<endl; cin>>e; miLista.agregarEmpleado(n,e); system("cls"); break; case 2: cout<<"Digite el nombre del empleado que desea eliminar: "<<endl; miLista.eliminarEmpleado(); system("pause"); system("cls"); break; case 3: cout<<"\n LISTA DE EMPLEADOS \n"<<endl; miLista.mostrarLista(); system("pause"); system("cls"); break; case 4: cout<<"Saliendo..."<<endl; exit(0); // Funcion que finaliza el programa. break; default: cout<<"Opcion No valida "<<endl; system("pause"); system("cls"); getch(); return 0; } } }
· Los códigos deben ir en etiquetas GeSHi >aquí las reglas del foro -Engel Lex
|
|
« Última modificación: 3 Mayo 2017, 16:12 pm por engel lex »
|
En línea
|
|
|
|
CalgaryCorpus
|
Seria bueno saber que es lo que el programa hace (o no hace), sino es una adivinanza. Cuales son las entradas, y cual es el comportamiento que tienes que hace que digas que no funciona?
|
|
|
En línea
|
|
|
|
ChuzZ02
Desconectado
Mensajes: 3
|
En el primer case(1), debe de ingresar los datos a la variables n,e. Para cuando se muestre el.case(3), pueda mostrar los datos. Pero no lo hace. Y la implementación del case(2) el algoritmo esta diseñado para eliminar un empleado si se conoce el número de elemento. Como para que elimine por el nombre.
|
|
|
En línea
|
|
|
|
CalgaryCorpus
|
que tal si eliminas el ruido de estar pidiendo los datos desde el teclado, usar un menu, etc. y directamente llamas a los metodos de la clase Lista con valores conocidos, y luego los muestras con el otro metodo? Si funciona, tienes problemas en la lectura y paso de parametros, si no funciona, puedes continuar con esa manera de ingresar datos hasta que los datos que ingresas son los que aparecen en la lista.
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Tienes unos cuantos errores mínimos para pulir y tal, pero el que no te deja hacer funcionar la aplicación como debería es en main: int main(){
while(1){// Funcion que forma un ciclo hasta que el usuario ordene romperlo. Lista miLista; A cada iteración del bucle la lista se genera de nuevo, por tanto siempre estará vacía. Declara primero la lista y después entra en el bucle.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como crear un virus en java y c++ implementando JNI
Java
|
hack-4-life
|
3
|
12,004
|
24 Enero 2011, 20:06 pm
por danielo-
|
|
|
Interfaz Grafica implementando un (Menu) C/SDL
Programación C/C++
|
Fire544
|
1
|
2,102
|
20 Octubre 2012, 01:23 am
por peternash
|
|
|
[Ayuda] Ordenar por edad y por nombre, datos de un struct.
Programación C/C++
|
darking664
|
4
|
16,935
|
7 Octubre 2013, 03:36 am
por darking664
|
|
|
Almacenar una planilla de Jugadores(Nombre,Edad, Altura,etc.) en tipos arreglos.
Programación General
|
Cleaner
|
1
|
4,064
|
14 Marzo 2016, 06:31 am
por El Benjo
|
|
|
Iterarar a traves de una STL Lista y cambiar valores dentro de ella.
Programación C/C++
|
harry_the_blogger
|
0
|
1,475
|
31 Mayo 2016, 06:25 am
por harry_the_blogger
|
|