Вы находитесь на странице: 1из 3

Estructuras de datos Clase prctica 5

Contenido Ejercicios de listas simples a partir de arreglos

Ejercicio 1
Defina una clase empleado con los siguientes atributos: cdula, sexo (m o f) y edad. Incluir, adems del constructor por defecto, los mtodos para consultar y modificar los atributos.

Material elaborado por: Oscar Arenas y Julin Moreno

Escuela de Sistemas, Facultad de Minas Universidad Nacional de Colombia Sede Medelln

Ejercicio 1
#include <iostream> #include <stdlib.h> using namespace std; class empleado{ private: long cedula; char sexo; int edad; public: empleado(); long consultar_cedula(); char consultar_sexo(); int consultar_edad(); void modificar_cedula(long c); void modificar_sexo(char s); void modificar_edad(int e); }; empleado::empleado(){ cedula = 0; sexo = 'm'; edad = 18; }

Ejercicio 1

long empleado::consultar_cedula(){ return cedula; } char empleado::consultar_sexo(){ return sexo; } int empleado::consultar_edad(){ return edad; }

Ejercicio 1
void empleado::modificar_cedula(long c){ cedula = c; } void empleado::modificar_sexo(char s){ sexo = s; } void empleado::modificar_edad(int e){ edad = e; }

Ejercicio 1
Ahora defina una clase listaEmpleados para implementar una lista mediante arreglos dinmicos como vimos en la clase terica. Incluya solamente los siguientes mtodos: Constructor por defecto longitud : para consultar el tamao de la lista insertarAntes : para agregar un elemento a la lista mostrarElementos : para mostrar todos los elementos de la lista

Ejercicio 1
class listaEmpleados{ private: empleado *primero; int n, cursor; public: listaEmpleados(); int longitud(); void insertarAntes(empleado e); void mostrarElementos(); };

Ejercicio 1
listaEmpleados::listaEmpleados(){ primero = NULL; n = 0; cursor = -1; } int listaEmpleados::longitud(){ return n; }

Ejercicio 1
void listaEmpleados::insertarAntes(empleado e){ int i; primero = (empleado*)realloc(primero, (n+1)*sizeof(empleado)); if (n == 0){ cursor = 0; } else{ for(i=n; i>=cursor+1; i--){ primero[i] = primero[i-1]; } } primero[cursor] = e; n++; } } empleado *aux; aux = primero;

Ejercicio 1
void listaEmpleados::mostrarElementos(){

cout << "Lista de elementos\n"; for (int i = 0; i < n; i++) { cout << "cedula: "; cout << (*aux).consultar_cedula(); cout << " sexo: "; cout << (*aux).consultar_sexo(); cout << " edad: "; cout << (*aux).consultar_edad() << endl; aux++; }

Ejercicio 1
int main(){

Ejercicio 1
listaEmpleados lista1; empleado e1, e2, e3; e1.modificar_cedula(43000001); e1.modificar_sexo('f'); e2.modificar_cedula(78000001); e2.modificar_edad(26); e3.modificar_cedula(43000002); e3.modificar_sexo('f'); e3.modificar_edad(29); lista1.insertarAntes(e1); lista1.insertarAntes(e2); lista1.insertarAntes(e3); lista1.mostrarElementos(); return 0; }

Ahora defina un main que cree 3 empleados y los agregue a una lista para luego mostrarlos.

Tareas
Segn lo visto en clase terica, incluya en la clase listaEmpleados los mtodos insertarAntes y borrar. Defina una funcin no miembro que reciba como parmetro un objeto de tipo de listaEmpleados y retorne el promedio de edad de los elementos que contenga. Defina una funcin no miembro que reciba como parmetro un objeto de tipo de listaEmpleados y retorne 1 si la mayora de los elementos son hombres, -1 si la mayora de los elementos son mujeres, 0 en caso de haber un empate.

Estructuras de datos Clase prctica 5

FIN DE LA CLASE
Gracias por la atencin

Escuela de Sistemas, Facultad de Minas Universidad Nacional de Colombia Sede Medelln

Вам также может понравиться