Memoria del proyecto - aigora/twQ103-agenda-electronica GitHub Wiki

Hola Buenas.

El objetivo principal de este proyecto era crear una agenda electrónica que ayudase a profesores a organizar los datos de sus alumnos. Para ello, hemos programado con estructuras, funciones, ficheros y punteros. La razón por la que hemos usado punteros es que hemos usado tantas funciones, funciones que llaman a funciones, y funciones a las que se las llama varias veces, que realizar el proyecto con punteros nos ha parecido apropiado.

A continuación se procede a explicar el funcionamiento del programa: Para empezar pensamos en qué funciones queríamos que hiciera nuestra agenda electrónica. Decidimos que queríamos gestionar contactos, para ello hicimos funciones de añadir/guardar alumno, funciones de eliminarlo, buscar un alumno especifico, otra para ordenar los guardados segun el criterio que quisiesemos y una ultima que mostrara los alumnos guardaos en el momento que se requieren. El fichero ficha.txt contiene 3 alumnos inicialmente. Programamos la función LeerTodosAlumnos que lleva consigo la funcion leer alumno, la cual toma del fichero los datos del alumno.

Inicialmente se creo el menu principal, con un switch-case en el que se estructuraban las diferentes opciones: https://github.com/aigora/twQ103-agenda-electronica/commit/65a3f84f1eb0c28cdd34cd66944a81114e5b5c0a

La primera fucion que programamos fue la de añadir un alumno, para ello creamos una estructura con las variables que iba a tener cada alumno, nombre, apellido, matricula, nota1 y nota2. Luego hicimos la funcion PedirAlumno, en la que pedimos al usuario cada uno de los datos del alumno, y con otra funcion (NuevoAlumno) contamos el numero de alumnos que llevamos.

La segunda opcion es la de mostrar la ficha, esta opcion mostrará todos lo alumnos que previamente se han añadido. Aqui programamos la funcion MostrarTodosAlumnos, que mediante un bucle for imprime todos los alumnos que han sido introducidos.

En la opción 3 se pregunta por el dato del alumno por el que se desea buscar al alumno y se ejecuta la funcion buscar alumno. En esta funcion se ejecuta la funcion de menu que mostrata por pantalla el menu para elegir con un switch-case. Una vez elegida la opcion se ejecuta la funcion comparar alumno, que compara el dato introducido con todos los almacenados y si lo encuentra lo imprime por pantalla.

En la cuarta opcion lo primero que nos preguntan es en qué dato del alumno queremos basarnos para ordenar a los alumnos. Se hace una llamada a la función Menu2(), que nos muestra por pantalla las opciones entre las que podemos escoger para ordenar a los alumnos. En dicha función se nos pide que elijamos una opción, hasta que la opción elegida sea una de las posibles, esto lo logramos con un bucle do while. La función devuelve un número al main. Dicho número sirve como argumento para la siguiente función a la que se llama, MostrarTodosAlumnos. Esta función imprime todos los datos de todos los alumnos que se han introducido, con ayuda de un bucle for.

En la opción 5 se va a eliminar uno de los alumnos guardados, para ello incialmente se pide cual de los alumnos se quiere eliminar y se muestra la lista numerada con la funcion mostrar todos los alumnos. Una vez seleccionado el alumno a eliminar, se procede a eliminarlo mediante la funcion EliminarAlumno, la cual a través de un bucle for lo busca y lo elimina. Por ultimo se muestra por pantalla la ficha con el alumno ya eliminado.

Para entender mejor el programa hemos añadido un diagrama de flujo.