Está en la página 1de 3

Tarea #7: Tabla de Dispersión y Clase Administradora 1 de 3

Estructuras de Datos II
Tarea #7: Tabla de Dispersión y Clase Administradora

Objetivo

Abstraer la gestión de información relacionada dentro de una clase que oculte la


información en una tabla de dispersión.

Descripción

Implementar una clase administradora de objetos Materia con sus operaciones ABC.

Requerimientos Generales

1. Implementar un programa que utilice una clase administradora para escribir en una
tabla que maneje registros.
2. Los campos a modelar en la tabla sean: idMateria, claveMateria, nombreMateria, y
prerrequisito.
3. Desde main se solicite registrar las siguientes tuplas:

idMateria | clave | nombre | prerrequisito


1 | I5882 | Programación | (Lógica)
2 | I5886 | Estructuras de Datos I | I5882
3 | I5888 | Estructuras de Datos II | I5886
4 | I5890 | Bases de Datos | I5886
5 | I5898 | Ingeniería de Software I | I5890
6 | I5909 | Programación para Internet | I5888
7 | I7035 | Sistemas Concurrentes y Distribuidos | I5909

4. Al imprimirse la tabla se vea en consola de la forma mostrada que en el punto anterior


(incluyendo el alineamiento de columnas).
5. Abstraer los métodos de la administradora en una class y probarla como aplicación de
consola con código de prueba escrito en main y determinado en tiempo de compilación.
6. Evitar gastar tiempo en hacerle una interfaz gráfica o un menú de consola a tareas como
esta; para probar un código no se requiere de interfaz de usuario alguna, simplemente se
hacen las invocaciones a métodos de la class contemplando los casos base y casos
extremos desde main.
7. Dicha clase administradora contenga lo siguiente:
a) un atributo para modelar la colección de objetos y otro contador (este último para el
campo idMateria);
b) un método público que permita agregar una tupla, el cual reciba los parámetros:
clave, nombre y requisito y, devuelva a cambio el idMateria;
c) el método anterior agregue un objeto tipo Materia en la tabla;
Tarea #7: Tabla de Dispersión y Clase Administradora 2 de 3

d) el idMateria empiece desde 1;


e) el objeto tipo Materia contenga el idMateria;
f) un método público que permita dar de baja una tupla según parámetro idMateria y
devuelva verdadero solo si sí se eliminó el objeto;
g) un método público que permita consultar un objeto tipo Materia de la tabla, según
reciba un parámetro idMateria, y devuelva el objeto Materia;
h) implementar un método que permita obtener una lista de objetos Materia, con todas
las tuplas de la tabla, donde dicha lista no sea una cadena sino al menos un arreglo
de objetos;
i) considerar que es posible que se hayan eliminado tuplas al solicitar cualquier
operación ABC;
j) evitar impresiones a consola desde la clase administradora y cualquiera de sus
clases componentes.
8. Imprimir la lista de objetos en consola, mostrando las tuplas una por línea, como se
muestra en el punto 4.
9. Cada que se agregue ó elimine una tupla, imprimir el contenido actual de la tabla
10. Desde main invocar a cada uno de los métodos públicos
11. Desde main solicitar agregar en la administradora las tuplas mostradas en el punto 4
12. Desde main solicitar agregar una tupla más en la administradora, donde se enuncien los
datos de una materia no incluida en el listado del punto 4 y cuyo contenido le haya
gustado al alumn@.
13. Desde main solicitar consultar a la administradora la tupla cuyo idMateria sea aquella
en la que el(la) alumn@ considere que le gustaría más impartir clase, imaginando vivir
en un país donde fuera un requisito indispensable como servicio social de último
semestre de carrera, el impartir una materia durante un semestre y compartir a sus
compañer@s de carrera sus conocimientos.
14. Desde main solicitar eliminar una tupla de la clase administradora, usando un idMateria
aleatorio, donde tal id no resulte ser siempre el mismo, para ejecuciones sucesivas del
programa.
15. Inicializar todos los atributos de los objetos mediante un constructor con parámetros.
16. Emplear una tabla de dispersión (HashMap en Java, o su equivalente en el caso de otro
lenguaje) para modelar la colección de objetos (usando los métodos get, put y remove
en el caso de Java), donde:
a) la llave a usar para la tabla de dispersión sea el idMateria;
b) al listar las tuplas no importa que salieran en desorden;
c) para listar los objetos no se utilice un contador desde el 1, sino usar un método de
API de la tabla de dispersión, el cual devuelva una Enumeration (u otro que
devuelva un Iterator) con las llaves existentes, y entonces usar dichas llaves de la
para la extracción.

Requerimientos Optativos para puntos extras

d) Entregar en el mismo comprimido carpetas diferentes para cada lenguaje:


a) Una nombrada “C” con los códigos fuente en C (ANSI);
b) Una nombrada “C++” con los códigos fuente en C++;
c) Una nombrada “Java” con los códigos fuente en Java;
Tarea #7: Tabla de Dispersión y Clase Administradora 3 de 3

d) Una nombrada “C#” con los códigos fuente en C#;


e) Una nombrada “English” con los códigos fuente escritos en su totalidad en inglés
(solo para el lenguaje de su preferencia).
…las primeras opciones se redacten absolutamente en español y la última
absolutamente en inglés. Si incluye 2 carpetas con lenguajes OO, uno de ellos puede
redactarse en inglés y sin necesidad de entregar la versión en español para ese lenguaje.

Criterios de Evaluación

• Los establecidos en las “Reglas de Operación y Evaluación” del curso.


• Cumplir con la fecha límite de entrega citada en el Excel de Actividades.
• Calificación en base a cobertura de requerimientos y fecha de entrega.
• Cumplir con Requerimientos de Valor Agregado en Código Fuente (hasta el req. “ZZ”).
• Entrega en un lenguaje: C++ o Java o C#.
• Es indispensable la entrega de un programa con variables, comentarios e impresiones a
consola completamente en idioma Español.

También podría gustarte