El siguiente paso consiste en decidir las estructuras básicas que van a emplearse para llevarlo a cabo.
La estructura de datos del programa podría ser la siguiente:
- Cada dato individual se almacena en un struct. Para que se pueda guardar tantos datos como se desee, los struct individuales se almacenarán en un vector.
Y las funciones en las que se descompondrían podrían ser estas:
- mostrarMenu: muestra la lista de opciones disponibles conforme al prototipo visual.
- nuevaFicha: pide los datos de una nueva persona y los añade a la lista de contactos existentes.
- verFichas: muestra en pantalla la primera ficha. Al pulsar sobre ciertas teclas el usuario podrá elegir consultar la ficha anterior (si existen), la posterior, modificar la actual (función adicional) o borrar la actual (otra función).
- modificar(n): pide los campos de la ficha que se indique como parámetro. Si se desea cambiar un dato, se tiene que volver a introducir el texto de los campos que se quieran modificar. En cambio, si no se desea, bastará con pulsar Intro para conservarlo como estaba.
- intentarBorrar(n): solicita confirmación para borrar datos.
- buscarTexto: pide al usuario el texto que desea buscar, cuenta cuántas fichas lo contienen y, finalmente, las muestra de una en una.
- buscarCumpleMes: muestra las fechas de nacimiento y los nombres y apellidos de las personas que cumplen años en un cierto mes. Si hay más de veinte datos, el programa hace una pausa y espera a que el usuario pulse Intro.
- guardar: vuelca todos los datos a fichero, reemplazando el contenido anterior de dicho fichero.
- cargar: lee todos los datos desde fichero. Se debe llamar automáticamente al principio del programa.