A pesar de que el tı́tulo merezca el susto de más de uno, la idea de este ejercicio es exactamente la expuesta en el tı́tulo, crear y modificar una Base de Datos de personas. ¿Qué nos interesa saber de las personas? Su nombre y apellido, sexo, edad, estado cı́vil, de estar casado, con quién y, de tener hijos, cuántos. Estos datos deberán ser guardados en un archivo de texto que será nuestra base de datos. El programa, a su vez, debe ser interactivo y permitir que el usuario ingrese cuántas entradas quiera hasta que no desee ingresar ninguna más. Por entrada se entiende una tira completa de los datos de una persona, por ejemplo: Marı́a Pérez, Femenino, 45 años, Casada, Mario Mariotto, 2 hijos. El usuario debe poder decidir si quiere seguir ingresando datos o no. Como plus, resultarı́a de gran valor que pudieran informarle al usuario si ingresó erróneamente alguno de los datos, por ejemplo, en vez de Masculino/Femenino ingresó Masculoni y darle la chance de reingresarlo o que comience nuevamente. La base podrá ser actualizada en sucesivas ejecuciones del programa, es decir, si luego de la primera ejecución la base cuenta con 5 entradas, estas deberán permanecer en ella luego de realizar ejecuciones que agreguen o no más datos a la misma y ası́ sucesivamente. Se trata de una base incremental, los datos persistidos (guardados en disco) no se borran ni alteran (por ahora...). Por otro lado, como requerimiento no funcional el main no podrá ser muy “largo”, donde largo implica menos de 20 lı́neas. La idea es que encapsulen las distintas tareas que realiza el programa en diversas fun- ciones. Por ejemplo, leerDatosPorPantalla y escribirEntradaEnBase por citar algunos conceptos explicitados. Por último, deberán tener muy en cuenta qué formato les resulta más conveniente para guardar los datos, qué convención utilizarán, si realizan un guardado minimal o hay datos superfluos, etc.
2. Consultar la Base de Datos
En este ejercicio se pretende que realicen una consulta a la base de datos que crearon en el ejercicio anterior. Deben encontrar y devolver por pantalla el nombre y apellido de la mujer casada más joven que más hijos tenga. En caso de no haber mujeres casadas devolver un mensaje que indique tal eventualidad. En caso de haber varias mujeres casadas con la misma edad mı́nima y con la misma cantidad de hijos, devolver alguna de ellas (o todas, lo dejamos a su criterio). Análogamente, como requerimiento no funcional el main debe tener menos de 20 lı́neas. Aquı́ también se pueden rescatar algunos conceptos como leerEntradaDeBase y obtenerMujer. Además, para encontrar dicha mujer pueden recorrer como máximo 1 vez completa el archivo, no más. ¿Se podrı́a recorrerlo menos de 1 vez? ¿Por qué no? ¿Por qué sı́ y cómo? Por último, en ambos ejercicios, para satisfacer el requerimiento del main quizás les resulte útil la utilización de punteros. No es necesario que los usen pero ténganlos en mente por si acaso.