UC3M

Grado en Ing. Telemática/Sist. Audiovisuales/Sist. de Comunicaciones

Arquitectura de Sistemas

Septiembre 2017 - Enero 2018

14.13.5. Diseño, creación y compilación de un programa en C

Recursos

Plan de trabajo

  1. Abre los documentos anteriores. En ellos se explican las opciones más usadas del compilador gcc y como usar la función printf para imprimir un mensaje por pantalla. Tenlos a mano para consultarlos durante la práctica.

  2. Crea una carpeta src en tu carpeta de trabajo.

  3. Descarga los ficheros data_read.o de tu arquitectura, menu.h, menu_operations.c y cópialos en la carpeta src, creada en el paso anterior.

  4. Diseñe y crea una aplicación que cumpla los siguientes requisitos: cargar la información de las redes wifi escaneadas por un teléfono móvil, esta información está almacenada en un array estático dado; listar todas las redes por pantalla; que se pueda consultar la información de una de ellas en concreto y que permita salir del programa. La aplicación debe imprimir en la pantalla un menú con cuatro opciones tal como el que se muestra en la siguiente figura.

    • Primero define los componentes (ficheros: .c, .h) que harán parte de tu programa. Para ello agrupa las funciones teniendo en cuenta las funcionalidades del programa (Ejemplo: programa principal, mostrar el menú, operaciones del menú, definiciones de prototipos). Debes tener en cuenta que ya tienes dos ficheros: menu.h y menu_operations.c, los cuales debes usar para completar la práctica.

    • Escribe el código de la función void menu() para imprimir el menú por pantalla.

    • Crea la función main(), dentro de esta define las variables locales que considere necesarias para que el programa funcione. Entre ellas debes definir una de tipo long int para guardar el valor tecleado cuando se invoca la función data_read(), que retorna una valor de dicho tipo. El código de esta función se incluye en el fichero data_read.o; y para usarla, debes incluirlo en el comando de compilación, cuando vayas a compilar su programa. También debes definir una variable local tipo array de 6 posisiciones (ARRAY_SIZE). Cada posición guardará en una estructura struct ap_scan_info la información de una red wifi. La estructura está definida en el fichero menu.h.

    • Crea las funciones necesarias para implementar la funcionalidad para cada opción del menú:

      • La opción [1] inicializa el array local definido en la función main() con los datos del array wifi definido como una variable estática en la función array_load() en el fichero menu_operations.c

      • La opción [2] imprime por pantalla los datos de las redes wifi disponibles, guardadas en el array. Debes imprimir los datos tabulados y con el formato tal como se muestra en la figura siguiente.

      • la opción [3] imprime la información de una red seleccionada. Para seleccionar la red se debe teclear un valor entre 1 y 6. La informción impresa en la pantalla debe estar formateada tal como se muestra en la figura siguiente

      • la opción [4] termina la ejecución del programa y retorna al sistema operativo.

  5. Compila el código escrito usando el comando gcc, corrige los errores si los hubiese. Al compilar debes incluir en el comando los ficheros .c y el fichero data_read.o.

  6. Modifica el código para que sea compatible con el script de pruebas automáticas (autoprueba) que se os da. Puedes enseñarle el resultado a tu tutor.