C/Visual C - agenda C

 
Vista:

agenda C

Publicado por Jorge (1 intervención) el 05/07/2006 23:30:00
hola, necesito Escribir un programa en lenguaje C, que permita el manejo de una lista simple de contactos (similar a la de un teléfono celular) utilizando almacenamiento de datos en un archivo secuencial (de texto). Al momento de iniciar su ejecución, el programa deberá presentar un menú con las siguientes opciones:

1.- Nuevo contacto
2.- Buscar
3.- Modificar contacto
4.- Eliminar contacto
5.- Terminar

Descripción:
1.- Nuevo contacto: al seleccionar esta opción, se mostrará una pantalla de ingreso de datos del contacto. Estos datos serán: Nombre, Apellido, Fecha de nacimiento, Telefono (número variable de cero a diez), correo electrónico, dirección.

Se ingresa un contacto cada vez que se selecciona esta opción. Los datos serán grabados en forma inmediata en un archivo secuencial de nombre contacto.ast

2.- Buscar: al seleccionar esta opción, se mostrará una pantalla en la que se le permite al usuario decidir cual es el criterio de búsqueda: por nombre, por apellido, por fecha de nacimiento, por cumpleaños (contactos cuya fecha de nacimiento es igual a la de hoy).

Se debe presentar una lista con todos los contactos que coinciden con el criterio elegido.

3.- Modificar contacto: aquí el usuario debe poder buscar el contacto que desea modificar, usando la misma función del punto 2 y luego debe poder cambiar los datos que desee. Al seleccionar esta opción, todos los datos del archivo contacto.ast serán cargados en una lista (nodos) en memoria y luego de hechas las modificaciones, todos los datos serán almacenados nuevamente sobre el archivo contacto.ast

4.- Eliminar contacto: aquí el usuario debe poder buscar el contacto que desea aliminar, usando la misma función del punto 2 y luego debe poder eliminarlo. Al seleccionar esta opción, todos los datos del archivo contacto.ast serán cargados en una lista (nodos) en memoria y luego de eliminado el contacto, todos los datos serán almacenados nuevamente sobre el archivo contacto.ast

5.- Terminar: el programa temina su ejecución, dando un mensaje de despedida al usuario.

ojala puedan ayudarme gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:agenda C

Publicado por Nelek (816 intervenciones) el 06/07/2006 10:26:10
Quieres que se te ayude? o que te pasen el codigo?

Haz preguntas concretas, di donde te atascas, que problemas no logras solucionar y recibiras ayuda (si se puede), pero asi tal cual...

En fin, ahi te van algunos consejos.

En primer lugar una variable que lleve el numero de contactos de la agenda para poder ponerles frontera a los "for"s que vayas a necesitas.

Para los menus:
primero todos los printf, con las opciones, un scanf para guardar la seleccion en una variable y luego un switch con esa variable que llame al metodo que toca.

La entidad contacto: Si estas en C tendras que usar una Struct, si estas en C++ te recomiendo una clase sencillita con variables privadas y sus metodos de get y set.

Opcion 1: Solo tienes que hacer printf, scanf y getchar. Aunque sea mas codigo yo suelo preferir usar variables locales y luego mandarlo a la variable final que lo haya de almacenar. Para lo de escribir el fichero... hay muchos mensajes en el foro (pon "fichero" y veras la de resultados que te salen)

Opcion 2: como arriba un swich para saber por que campo lo quieres buscar y la diferencia entre uno y otro sera a la hora de consultar el fichero y hacer la comparacion. Es decir:

si buscas por nombre: if (contacto.nombre == nombre_buscado) -> te traes el contacto entero. Si no... pues buscas en el siguiente.

Opcion 3: Modificar. Una vez tengas el contacto a modificar en la memoria... Pues entonces presentas todos los valores que estaban guardados en la pantalla, preguntas que quieres modificar, los vuelves a pedir sobreescribiendolos y preguntas si ya has acabado de modificar, para seguir cambiando o actualizar el contacto en el fichero. Para lo cual deberas buscar de nuevo el contacto (por los datos antiguos) borrarlo y meterle el nuevo, a no ser que trabajes directamente en el fichero (cosa que si no estas muy seguro... no te recomiendo).

Opcion 4: Como bien dices te creas una coleccion vacia de contactos (o bien con el numero concreto de contactos que tienes en ese momento, o bien con memoria dinamica "allocs, mallocs y demas") coges uno, miras a ver si es el que quieres borrar haciendo un if del parametro que te determina la busqueda) y si no lo es, lo grabas en la ultima posicion del array, si lo es... no haces nada, pasas al siguiente y acabas de llenar el array, para luego devolverlo al fichero.

Opcion 5:

printf ("That's all folks, bye bye"); // :PPPPP

Se que seguramente no es lo que tenias en mente recibir, pero... lo dicho, aqui tienes algo pa ir tirando, cuando tengas preguntas concretas hazlas y a lo mejor te llevas respuestas mas concretas y utiles que esta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar