Este es el enunciado un poco largo pero bue... desde ya gracias nuevamente
1. Se debe generar un archivo con nombres de docentes de la Facultad de Informática usando registros de longitud fija. Para ello la información (los nombres) se leen desde teclado y finalizan con un docente ZZZ que no debe incorporarse al archivo.
Se debe permitir la eliminación de nombres. Los algoritmos solicitados son:
• Borrar los nombres de manera lógica.
• Idem anterior, generando dentro del mismo archivo una “lista invertida” que permita la posterior recuperación de espacios ante altas de nuevos docentes.
Los nombres a dar de baja deben estar en un archivo de texto.
Se debe permitir el alta de nuevos docentes en el archivo, de manera de reutilizar el espacio disponible, si lo hubiera. Los nombres a dar de alta deben estar en otro archivo de texto. Comparar los tiempos de respuesta de cada algoritmo.
Para resolver este ejercicio se deben hacer dos versiones del mismo programa que sólo difieran en la forma de instrumentar las bajas.
El programa debe comenzar solicitando al usuario que informe si desea crear el archivo docentes (el nombre físico del archivo debe ser “docentes”, sin extensión) o abrirlo; si se escoge crearlo se debe dar lugar al proceso de generación descrito en el primer párrafo, si no, se debe considerar que ya existe y contiene datos y abrirlo.
Luego el programa debe
• listar el contenido original del archivo docentes en un archivo de texto llamado “inicial.txt”,
• eliminar del archivo “docentes” los nombres que figuren en el archivo de texto “bajas.txt”,
• listar el contenido del archivo de datos después de las bajas en un archivo de texto llamado
“postbajas.txt”,
• incorporar al archivo “docentes” los nombres que figuren en el archivo de texto “altas.txt”,
• listar el contenido de “docentes” en un archivo de texto “final.txt”,
• y finalmente informar por pantalla la cantidad de registros leídos para completar las bajas.
Las bajas lógicas deben instrumentarse prefijando el nombre a eliminar con un asterisco, y los registros eliminados lógicamente también deben listarse.
Para instrumentar la lista invertida de registros eliminados se debe usar el primer registro del archivo como cabecera de la lista, y en lugar de tener un nombre de docente debe tener el string ‘0’, si no hay registros libres, o un string con el número relativo del último registro eliminado, si hubiera registros libres. Para efectivizar una baja se debe sobrescribir el nombre a eliminar con el
número relativo de registro libre que aparezca en el primer registro, y actualizar el primer registro con el número relativo del nombre que se elimina. Los números relativos de registro deben listarse como cualquier nombre.
Se debe entregar los códigos fuente y ejecutable de ambos programas, el archivo docente precargado con al menos veinte nombres, y los archivos “bajas.txt” y “altas.txt”. A los efectos de comparar los tiempos de respuesta se ejecutarán ambos programas en distintos directorios con
copias idénticas de los archivos entregados.