Para comprender el funcionamiento del programa, recorreremos cada menú y función de este, explicando su funcionamiento individual
Enviado por Jorge Barcenas Avelar • 8 de Abril de 2018 • Trabajo • 3.658 Palabras (15 Páginas) • 117 Visitas
Para comprender el funcionamiento del programa, recorreremos cada menú y función de este, explicando su funcionamiento individual.
Comenzaremos en el main.
Aquí se da la bienvenida al usuario al programa y se le presenta un menú para elegir a que submenú quiere ingresar.
[pic 1]
La función “Menu”, la cual será la misma en todas las ocasiones que se utilice, se encuentra declarada en el archivo menu.h, y su funcionalidad se encuentra en el archivo menu.c, esta función recibe una cadena de texto y un número, lo que hace es imprime la cadena que recibió, capturar un número, entra a un ciclo donde se verifica que ese número sea menor a 1 o mayor al que se le mando a la función como parámetro, en caso de ser verdadero manda un mensaje de error y se repite el ciclo, en caso contrario se sale del ciclo y retorna el número capturado, que en este caso será guardado en la variable “opcion”.
La función “Menu” se utiliza cada que queremos mandar a pantalla un menú y queremos verificar que la opción que elija el usuario se valida.
[pic 2]
[pic 3]
[pic 4]
Después de haber validado la opción de usuario, se hace uso de la instrucción “switch” evaluando a “opcion”, según sea el caso se mandara a llamar la función “menuProd” o “menuVendedores” (que explicaremos más adelante), al finalizar cualquiera de esta funciones, se verifica que “opcion” sea diferente de 3, que en este caso será la opción para salir del programa, en caso contrario se volverá a presentar el menú.
[pic 5]
Comenzaremos con la función “menuProd”, declarada en el archivo “menuProd.h” y su funcionalidad se encuentra en “menuProd.c”, esta función es un submenú, en donde se manejara todo lo relacionado a los productos de nuestra tienda.
[pic 6]
[pic 7]
[pic 8]
Para poder comprender mejor el funcionamiento de las funciones es necesario conocer el tipo de estructuras y las variables de tipo global que se manejaran, declaradas en el archivo “prototiposProd.h”.
[pic 9]
[pic 10]
Al inicio hacemos nuestra declaración de variables, dos de tipo int y un apuntador de una variable de tipo estructura “estProd”.
[pic 11]
La variable “productos” recibirá el contenido de la función “crearProducto”, para la cual primero se le hace un cast.
[pic 12]
La función “crearProducto” declarada en el archivo “prototiposProd.h” y con su funcionalidad en “funcionesProd.c” lo que hará será reservar memoria de tipo dinámica únicamente para una estructura “estProd” y mandara un mensaje de advertencia en caso de que se pidiera reservar memoria.
[pic 13]
[pic 14]
La función “inicializarIndice” ” declarada en el archivo “prototiposProd.h” y con su funcionalidad en “funcionesProd.c” lo que hace es que recibe como parámetro un apuntador a una variable de tipo estructura “estProd” y a su elemento índice le asigan el valor de -1.
[pic 15]
[pic 16]
[pic 17]
La función “llenarProductos” nos servirá para leer un archivo y guardar la información dentro de la variable “productos” en su campo “producto”, esta función (y todas las funciones que utiliza) se encuentran declaradas en el archivo “archivoProd.h” y su funcionalidad en “archivoProd.c”
[pic 18]
[pic 19][pic 20]
[pic 21]
Para poder explicar la “llenarProductos” me gustaría primero explicar la funcionalidad de “vaciar”, “copiarProd” y “copiarCod”, que también se encuentran en “archivoProd.c”, para que al momento de revisar “llenarProductos” ya sepamos que hacen estas funciones.
“vaciar” nos ayuda a vaciar una cadena de 500 casillas y llenarla de caracteres de vacío
[pic 22]
“copiarProd” recibirá como parámetros una cadena, una variable de tipo int y un apuntador a una variable de tipo estructura “Producto”, que llamaremos “articulo”, “i” y “producto” respectivamente, primero se dimensionara articulo se le sumara 1 y se guardara en la variable N, se reservara memoria dinámicamente para poder guardar a articulo en la variable producto en su casilla i en su campo prod.
[pic 23]
“copiarCod” recibirá como parámetros una cadena, una variable de tipo int y un apuntador a una variable de tipo estructura “Producto”, que llamaremos “articulo”, “i” y “producto” respectivamente, lo único que hará será guardar en la variable producto en su casilla i en el campo código la conversión de articulo de char a int.
[pic 24]
Ahora sí, podemos explicar “llenarProducto”.
Primero se hace la declaración de las variables que usaremos, dos de tipo int, una de tipo char, una cadena de tipo char y un apuntado de tipo FILE la cual usaremos para manejar el archivo “productos,txt”
[pic 25]
Primero se debe conocer el número de productos que se van a guardar, lo que se hace es que en un ciclo while se contaran el número de líneas que se tienen dentro de nuestro archivo y se irán registrando en cont, para que cuando se termine de contar las líneas de pueda reservar memoria para ese número de productos y regresamos el cursor al inicio del archivo.
[pic 26]
A continuación se ingresa en un ciclo for que irá desde i=0 hasta el final del archivo, dentro de este for tenemos otros for anidados los cuales tienen un mismo propósito que es ir leyendo letra por letra nuestro archivo e ira guardando esa letra dentro de una cadena y al momento de encontrar un guion “-“se cortara esa cadena introduciendo el carácter de fin de cadena ‘\0’ y mandando a llamar a la función correspondiente para guardar dicha cadena.
Como nosotros ya conocemos el orden del archivo(nombre , código y precio) y al ya haber guardado nombre y código solo quedara guardar el precio para el cual ya no es necesario contar carácter por carácter, lo que se hace es que se toma el resto del párrafo, se convierte de carácter a float y se guarda en producto en su casilla i en el campo precio.
[pic 27]
Al llegar al final del archivo se sale del for principal, se cierra el archivo y se retorna nuestra variable de tipo Producto con toda la información capturada.
...