Título: Ayuda, para mostrar estrucutra de datos
Publicado por: Panic0 en 11 Octubre 2022, 02:24 am
Hola, estoy trabajando en un programa en c++, en el cual tengo una estructura de datos Tengo este código #include <iostream> #include <conio.h> #include <string>
using namespace std;
#define MAX_empleados 100 #define clear system("cls") #define pause cout << "<ENTER>";getch();
struct empleados { int id_empleado; string nombre; string apellido; int edad; int sueldo; };
int main() { empleados empleado[MAX_empleados];
int nro_empleado = 1; int cant_empleados = 0; int op;
bool termine = false; char respuesta; string nom_empleado, ape_empleado; int edad_empleado, sueldo_empleado;
while (true) { clear; cout << "1: Alta Empleado" << endl; cout << "2: Consulta de Empleado"<< endl; cout << "3: Listado de Empleados"<< endl; cout << "0: Salir"<< endl << "> "; cout << "El valor de la variable cant_empleados es " << cant_empleados<< endl; cin >> op; if(op == 0){ cout << "Gracias por usar!"; break; } switch (op) {
case 1: clear; cin.ignore(); cout <<"Nombre del empleado : "; getline(cin, nom_empleado); cout <<"Apellido del empleado : "; getline(cin,ape_empleado); cout <<"Ingrese su edad : ";cin >> edad_empleado; cout <<"Ingrese su Salario : ";cin >> sueldo_empleado; cin.ignore(); cout <<"\n"; clear; cout << "empleado a ingresar: "<<endl; cout << "Nombre : "<<nom_empleado<<endl; cout << "Apellido : "<<ape_empleado<<endl; cout << "Edad : "<<edad_empleado<<endl; cout << "Salario : "<<sueldo_empleado<<endl; cout << "\n"; cout << "Quiere ingresar este Empleado ? (s/n) ";cin >> respuesta; cin.ignore(); respuesta = toupper(respuesta); if (respuesta == 'S') { cant_empleados++; empleado[nro_empleado].id_empleado = nro_empleado; empleado[nro_empleado].nombre = nom_empleado; empleado[nro_empleado].apellido = ape_empleado; empleado[nro_empleado].edad = edad_empleado; empleado[nro_empleado].sueldo = sueldo_empleado; } case 2: break; case 3: if(cant_empleados >= 1){ clear; cout << " Datos de empleados ingresados" << endl << "Total de Empleados:"<<cant_empleados<<endl; for (int nro = 0; nro <=cant_empleados;nro++) { cout << " Nombre : "<<empleado[nro].nombre<<endl; cout << " Apellido : "<<empleado[nro].apellido<<endl; cout << " Edad : "<<empleado[nro].edad<<endl; cout << " Salario : "<<empleado[nro].sueldo<<endl; cout <<"--------------------"<<endl; pause; break; } }
default: break; } } return 0; } Tengo listas la función de agregar, pero al momento de mostrar lo agregado, no me lo muestra, alguien tiene idea de lo que puede ser?
Título: Re: Ayuda, para mostrar estrucutra de datos
Publicado por: K-YreX en 24 Octubre 2022, 17:43 pm
Por un lado, hay un foro específico para C/C++... :silbar: Y por otro, varias cosas: - Estás empezando a guardar empleados en el índice 1 y el primero es el índice 0.
- El 'break' del case 3 está dentro del for() por lo que intenta mostrar el elemento 0, que está vacío porque guardaste en el 1 y sale del for() con el break, llega al default porque el break no estaba donde tenía que estar, vuelve al principio del 'while (true)', se ejecuta el 'clear' y por tanto "oh vaya, pestañeaste y te lo perdiste :P"
PD: En vez de usar 'getch()' de la librería <conio.h> (que no es una librería estándar), usa 'cin.get()' de <iostream>... :rolleyes: :rolleyes:
|