You are on page 1of 3

Trabajo de estructuras y archivos secuenciales. Con las siguientes definiciones, realice el programa que posteriormente se describe. <#include stdio.

h> <#include conio.h> <#include <stdlib.h> #define CORREGIR 1 #define ARCHIVO datos.bin #define MSG_DUPLICADO Registro ya existe #define MSG_NO_EXISTE Registro no existe #define TAMANIO sizeof(persona) typedef struct { int cedula; char nombre [20]; int activo } persona;

void v_miGetch() { if (!CORREGIR) getch(); } void v_miBorrar() { if (!CORREGIR) system(cls); else printf(\n**\n); }

Realizar un programa que almacene en un archivo los registros con la estructura previamente definida. En ningn caso puede utilizarse arreglos para el manejo de los registros. El programa debe permitir la insercin, modificacin, bsqueda y eliminacin lgica de registros. Para simular el borrado de registros debe usarle el campo activo definido en la estructura. Al momento de agregar un registro este campo debe almacenarse con valor 1 (uno) y para borra el registro este valor se cambiar a 0 (cero). Defina las constantes segn sea el caso. Aunque el programa debe permitir el ingreso de registros con nombres repetidos, no debe permitir la insercin de registros cuya cdula se repita. Esto debe validarse tanto al insertar registros como al modificar. Se sugiere la creacin de una funcin que reciba como parmetro la cdula y que devuelva la posicin del archivo (o nmero del registro) en la que encontr el registro o menos uno (-1) si el registro no fue encontrado. Se sugiere el siguiente men para la ejecucin del programa. La opcin debe ser una letra (a, b, c, d, e, f) a. Agregar registro. b. Modificar registro. c. Eliminar registro. d. Consultar registro. e. Lista de registros. f. Fin. La opcin Agregar registro debe pedir los datos del registro y agregar el mismo. Si el registro existe, el programa debe emitir el mensaje de error correspondiente. La opcin Modificar registro debe pedir la cdula. Si el registro no existe el programa debe emitir el mensaje de error correspondiente. Si el registro existe debe permitir cambiar tanto la cdula como el nombre. Si el nuevo valor de cdula genera un registro duplicado, el programa debe emitir el mensaje de error correspondiente. La opcin Eliminar registro debe pedir la cdula. Si el registro no existe el programa debe emitir el mensaje de error correspondiente. Si el registro existe debe borrarlo lgicamente segn se explic previamente. La opcin Consultar registro debe pedir la cdula. Si el registro no existe el programa debe emitir el mensaje de error correspondiente. Si el registro existe debe imprimir el nombre y la cdula del registro encontrado. La opcin Lista de registros imprime todos los registros activos. La opcin Fin termina la ejecucin del programa. Debe crearse una funcin llamada v_crearArchivo(). sta har lo siguiente: Si el archivo no existe, lo crear. Si el archivo existe no har nada. Esta funcin debe llamarse al inicio del programa.

No habr mensajes de confirmacin de ningn tipo, como por ejemplo Registro agregado exitosamente o Est seguro de borrar el registro?. Se parte del supuesto que el usuario est seguro de lo que debe hacer.

Recomendaciones 1. Para efectos prcticos se sugiere el uso de funciones anlogas a las de la prctica de estructuras y archivos secuenciales. a. Realizar una funcin que reciba por parmetro un puntero a la estructura y pida por teclado los datos de la misma. La funcin primero lee la cdula y luego el nombre. Slo debe hacer eso. Esta funcin deber invocarse tanto al agregar como modificar. b. Realizar una funcin que reciba por parmetro la estructura e imprima los datos de la misma. La funcin primero imprime la cdula y luego el nombre. Slo debe hacer eso. c. Realizar una funcin que permita agregar un registro al archivo. Debe tomarse en cuenta el caso de los registros repetidos. d. Realice una funcin que muestre un men con las opciones descritas previamente. e. Realice el resto de las funciones que se indican en este documento y agregue las que considere necesarias. f. Recuerde que para agregar un registro al disco, la funcin debe estar codificada de la siguiente manera: i. Llamar a la funcin que pide los datos por teclado. ii. Llamar a la funcin que verifica si dicha cdula existe o no. iii. Si la cdula existe debe procederse como se explic previamente. En caso contrario se agrega el registro. iv. De manera anloga debe programarse la funcin que modifica registros. 2. En lugar de invocar la funcin getch() debe invocarse v_miGetch(). 3. No borre la pantalla en ningn caso. Para simular esto, utilice v_miBorrar() 4. La funcin main() slo deber tener la llamada a la funcin que inicializa el archivo y la llamada al men. 5. Cada opcin del men slo debe llamar a una funcin. Guese por la prctica de archivos secuenciales. 6. Debe usarse las definiciones antes expuestas. Puede agregar las suyas pero es obligado utilizar las que se definieron previamente. 7. No puede usarse variables globales. EN CLASES SE DAR LA AYUDA NECESARIA PARA LA REALIZACIN DE ESTE TRABAJO.

You might also like