Ayuda

Nestle
08 de Diciembre del 2005
Taller de Programación I


El siguiente taller tiene como objetivo la implementación de una estructura híbrida de datos, la cual contiene estructuras de asignación estática de memoria ( vectores o arreglos ) y estructuras dinámicas de memoria ( listas enlazadas ).


Entregados los objetivos y pormenores del trabajo, a continuación se entrega el detalle de este taller :

Se pide implementar una agenda que permita mantener un conjunto de registros de personas clasificados ( u ordenados ) alfabéticamente en esta estructura de datos.

Para esta implementación se cuenta con dos estructuras :

Primero : una estructura de arreglo llamada AGENDA la cual contiene los siguientes elementos :

- Campo 1 : letra de tipo carácter.
- Campo 2 : puntero a PERSONAS.

El tamaño del arreglo deberá ser declarado como una constante llamada NRO_LETRAS con el largo correspondiente a cada una de las letras del alfabeto.

Segundo : una estructura dinámica ( un nodo ) de nombre PERSONAS, la cual contiene los siguientes elementos :

- Campo 1 : Rut
- Campo 2 : Nombres
- Campo 3 : Apellidos ( Paterno y luego Materno )
- Campo 4 : Dirección
- Campo 5 : edad
- Campo 6 : sexo ( H : hombre, M : mujer )
- Campo 7 : Teléfono
- Campo 8 : email.
- Campo 9 : puntero a PERSONAS.

Los tipos de datos para esta estructura deberán ser definidos por el alumno.



Teniendo la definición de estructuras de este trabajo procedemos a entregar la operaciones que deberán implementarse para este TAD.

- iniciar_agenda : asignar los valores correspondientes al vector AGENDA, asignando las letras correspondientes y el valor NULL a los punteros de la estructura PERSONAS.
- letra_vacia : función que deberá entregar un valor verdadero cuando el puntero de la letra correspondiente tenga valor NULL en su campo apuntado a PERSONAS o en caso contrario valor falso.
- ingresar_persona : función que aceptará por pantalla los datos definidos en la estructura PERSONAS y serán ingresados en la letra correspondiente. Los registros de personas quedarán ordenados ( por apellido ) en la estructura de lista.
- eliminar_persona : función que tomará como entrada el rut de la persona y procederá a su eliminación de la lista.
- recorrido : función que recorrerá la estructura desplegando en forma alfabética los componentes de la estructura.
- persona_de_mayor_edad : función que encuentra y despliega la persona con mayor edad.
- persona_de_menor_edad : función que encuentra y despliega la persona de menor edad.
- cantidad_de_mujeres : función que despliega la cantidad de mujeres que hay en la agenda.
- cantidad_de_hombres : función que despliega la cantidad de hombres que hay en la agenda.

Para la función principal se pide tener el siguiente menú de opciones :

1.- Registrar persona.
2.- Eliminar persona.
3.- Listar agenda.
4.- Persona de mayor edad.
5.- Persona de menor edad
6.- Cantidad de hombres.
7.- Cantidad de mujeres.
8.- fin.