Mensaje: #3
RE: ayuda final algoritmos 06/08/11
me confundi de fecha: es este
Una empresa lleva el registro de entrada y salida de sus empleados, por tres diferentes puertas principales, y almacena los movimientos de un mes en un archivo binario, con el siguiente diseño:
EntradaSalida.Dat, con un registro por cada movimiento, ordenado por número de puerta, fecha y hora:
1. ID de puerta (1,2,3) 2. Fecha (aaaammdd) 3. Hora (hhmm)
4. Evento (‘E’:entrada, ‘S’:salida) 5. Legajo empleado (1..1000)
Los empleados pueden entrar o salir por cualquiera de las tres puertas principales, y varias veces al día. Toda entrada registrada en un día tiene registrada la salida, no hay inconsistencias.
También posee otro archivo Empleados.Dat, con un registro por cada empleado, máximo 1000 empleados, ordenado alfabéticamente por apellido y nombre y con el siguiente diseño:
1. Legajo (1..1000) 2. Apellido y nombre (25 caract) 3.Departamento (15 caract )
Se pide:
1. Obtener la fecha del sistema.
2. Desarrollar la metodología necesaria para realizar un algoritmo que emita el siguiente reporte, ordenado alfabéticamente por apellido y nombre del empleado, fecha y hora:
Reporte del e-lock
Fecha del reporte: dd/mm/aaaa
Total General entradas/salidas Puerta 1 9999
Total General entradas/salidas Puerta 2 9999
Total General entradas/salidas Puerta 3 9999
Apellido y Nombre: Perez, Juan Departamento: Sistemas
Fecha Hora Evento ID puerta
08/07/2008 14:49 Entrada 1
08/07/2008 18:15 Salida 2
10/07/2008 8:30 Entrada 2
10/07/2008 15:10 Salida 3
14/07/2008 8:26 Entrada 3
14/07/2008 15:09 Salida 1
15/07/2008 8:24 Entrada 1
15/07/2008 10:32 Salida 2
15/07/2008 11:40 Entrada 2
15/07/2008 13:13 Salida 3
Cantidad dias trabajados de Juan Perez: 99
....................................................................................................................
Recursos, Restricciones y Observaciones:
• Memoria para arrays: 4000 bytes + 6 bytes.
• Memoria para estructuras dinámicas: nodos de 12 bytes.
• Accesos a archivos: un solo recorrido secuencial para cada archivo
• Utilizar procedimientos y funciones para desarrollar el algoritmo.
• Bloque principal sólo invocaciones a módulos.
• Optimización: dado que el uso de ciclos afecta el tiempo de ejecución de un proceso, se evaluará la eficiencia en el uso de los mismos.
• Desarrollar todos los módulos invocados.
• Utilizar nombres significativos para los identificadores, dibujos para las estructuras a utilizar, rotulando cada elemento, tamaño, breve leyenda de cómo se generan y estado inicial, respetar esos nombres para utilizarlos en el algoritmo. Letra clara, trazo fuerte y tamaño apreciable para que pueda leerlo un tercero. Escribir una carilla por hoja rotulando c/u. de ellas con su Apellido, Nombre y Nro. Pág. x de y.
|