Bienvenido

Bienvenido
Disfruta el contenido

domingo, 21 de diciembre de 2014

Programacion en C Estructuras

 Uso de estructuras en C

En este articulo les muestro un programa para poder aprender el uso de estructuras en el lenguaje C y como podemos aplicarlo de manera practica. El programa muestra la declaracion de estructuras y como tener acceso a los miembros.

Aqui el usuario debe colocar los datos del cliente dependiendo si este  es deudor o no de un almacen. Se declara un arreglo de datos tipo cliente definidos en la estructura 'cliente'.


 Al final de la ejecucion el programa muestra un reporte de los datos de las personas ingresadas a modo de lista mostrando si son deudores o si ya han pagado dependiendo del status ingresado durante la ejecucion del programa.

 Un poco sobre estructuras
Las estructuras son un conjunto de variables relacionadas, las cuales tienen varios tipos de datos en ocasiones  teniendo un nombre comun.  Es por este motivo que las estructuras se les considera tipos de datos derivados.

Al final de la ejecucion el programa muestra un reporte de los datos
de las personas ingresadas a modo de lista mostrando si son deudores o si
ya han pagado dependiendo del status. 

Una estructura tiene la siguiente forma

struct alumno{
       char nombre[100];
       char apellido[100];
       float calificacion;     
};

La palabra reservada struct sirve para la definicion de la estructura. Cada estructura lleva tambien un identificador, en este caso alumno. Ahi que tomar en cuenta que el identificador debe ser unico en nuestro programa para cada estructura que declaremos.El identificador servira tambien mas adelante para referirse a los miembros de la estructura. Los miembros son los tipos de datos relacionados a la estructura.

Los miembros de la estructura pueden ser de tipo basico ya sean float, int, etc o bien otras estructuras.

El acceso a los miembros de la estructura se realiza por medio de dos operadores, ya sea un operador punto o un operador de apuntador de apuntador a estructura. 

En el caso del operador punto se tiene acceso a los miembros de la estructura a traves del identificador de la estructura. En este programa se tendra acceso a los miembros de esta forma.

Ejecucion del programa y codigo 
 Aqui les dejo unas capturas de pantalla sobre el funcionamiento del programa. Este codigo como todos los demas que les muestro fue probado con Dev C++ y ejecutado en plataforma Windows.




Ejecucion del programa para colocar los datos del cliente. En este momento el programa tiene acceso a los miembros del tipo de dato definido en la estructura.



Informe del programa del estado de pago con los clientes.



/*PROGRAMA DE CLIENTES BASICO  
Juan Lopez

El programa muestra la declaracion de estructuras y como tener acceso a los
miembros.

Aqui el usuario debe colocar los datos del cliente dependiendo si este
es deudor o no de un almacen. Se declara un arreglo de datos tipo cliente
definidos en la estructura 'cliente'

La constante simbolica CLIENTES define la cantidad de entradas que
pueden ingresarse para el usuario. Solo cambia este valor para seleccionar
la cantidad de entradas.

Al final de la ejecucion el programa muestra un reporte de los datos
de las personas ingresadas a modo de lista mostrando si son deudores o si
ya han pagado dependiendo del status.

Opciones para el usuario
d.-  deudas
p.-  facturas pagadas

*/

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

#define CLIENTES 2 //esta constante simbolica define la cantidadd de clientes que pueden ingresarse

enum meses {ENERO = 1, FEB, MAR, MAY, JUN, JUL, AGOS,
             SEP, OCT, NOV, DIC };

//Definicion de la estructura del dato tipo cliente

struct cliente{
       char nombre[100];
       char apellido[100];
       int numUnidades;
       float precio;
       char estado;
};




int main(int argc, char *argv[])
{
    struct cliente listado[CLIENTES];
    int i, j;
    int maximo = 100;
    enum meses mes;
    char *nombreMes = { "Enero", "Febrero", "Marzo", "Abril",
                       "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "octubre", "Noviembre", "Diciembre"};
       
   
    printf("Programa de clientes basico.\n\n");   
    for(i = 0; i  <= CLIENTES -1; i++ )
    {
          system("cls");
          printf("Programa de clientes basico.\n");
          printf(" INGRESO DE DATOS %d.\n\n", i );
         
          for(j = 0; j <= 10; j++)
            printf("-");          
                   
          printf("\n Ingrese el nombre del cliente: ");
          scanf("%s", &listado[i].nombre);
         
          printf("\n Ingrese el apellido del cliente: ");
          scanf("%s", &listado[i].apellido);
         
          printf(" Ingrese la cantidad de unidades solicitadas: ");
          scanf("%d", &listado[i].numUnidades );
         
          printf(" Ingrese el precio de cada unidad: ");
          scanf("%f", &listado[i].precio);
         
          printf(" Ingrese el estado del cliente (d DEUDOR/p PAGADO): ");
          scanf("%s", &listado[i].estado);         
         
                   
    } 
   
 
    system("cls");
    printf("\n-.Reporte de Clientes.-\n\n");   
    printf("\n-Cliente       Estado-\n\n");
    for(i = 0; i  <= CLIENTES -1; i++ )
    {
          if(listado[i].estado == 'd')
            printf("%d.- %s %s DEUDOR\n", i+1,listado[i].nombre, listado[i].apellido);
         
          if(listado[i].estado == 'p')
          {
      //     if( listado[i].precio * listado[i].numUnidades > maximo)
            printf("%d.- %s %s PAGADO\n", i+1,listado[i].nombre, listado[i].apellido);
          }
    }  
   
    //Impresion de calendario por enumeracion
  //for(mes = ENERO; mes <= DIC; mes++)
    //  printf("%2d%11s\n", mes, nombreMes[mes]);  
  
 
  system("PAUSE");   
  return 0;
}






No hay comentarios:

Publicar un comentario