Estructuras y Uniones

Una Estructura contiene múltiples variables, que pueden ser de tipos diferentes. Se usa para la creación de potentes programas como bases de datos en donde se administran una gran cantidad de información. Son los inicios de lo que más adelante se le llama objeto en la programación Orientada a Objetos

Ejemplo 1

#include<iostream.h>

struct El_sotano{

char sucursales[20];

};

struct clasificacion{

char temas[20];

};

struct libro{

char nombre[20];

char autor[10];

char editorial[10];

int anio;

int paginas;

El_sotano suc;

clasificacion clas;

};

void main(){

libro lib;

cout<<"Cuál es el nombre del libro ";

cin>>lib.nombre;

cout<<"Que sucursal visitaras ";

cin>>lib.suc.sucursales;

cout<<"El libro que seleccionaste "<<lib.nombre<<endl;

cout<<"La sucursal que visitaras es: "<<lib.suc.sucursales;

}

Ejemplo 2:

#include<iostream.h>

struct Fecha{

unsigned int dia;

unsigned int mes;

unsigned int anio;

};

struct Persona{

char nombre[10];

unsigned int edad;

float altura;

float peso;

Fecha fec;

};

struct PersonaEmpleado{

Persona persona;

unsigned int salario;

unsigned int horas_por_semana;

};

void main(){

//Definimos una variable PersonaEmpleado

PersonaEmpleado pe;

//Establecemos a los miembros

cout<<"Introduce el nombre del empleado ";

cin>>pe.persona.nombre;

cout<<"Cuál es su edad ";

cin>>pe.persona.edad;

cout<<"Dame su altura ";

cin>>pe.persona.altura;

cout<<"Cuanto pesa ";

cin>>pe.persona.peso;

cout<<"Introduce su fecha de nacimiento ";

cin>>pe.persona.fec.dia;

cin>>pe.persona.fec.mes;

cin>>pe.persona.fec.anio;

cout<<"Cuanto gana?? ";

cin>>pe.salario;

cout<<"Cuantas horas trabajó en la semana";

cin>>pe.horas_por_semana;

cout<<endl;

cout<<"Nombre: "<<pe.persona.nombre<<endl;

cout<<//Termina el programa....

}

Ejercicio:

Elabora un programa que se llame Estudiante, administre sus argumentos(carrera, matricula, nombre, teléfono, email, etc), la siguiente estructura será datos personales (dirección, calle, No. exterior, No. Interior, colonia, Delegación, CP, Ciudad, País), agrega una estructura que se llame Primero y maneje la información de las materias que tuviste en ese cuatrimestre, crea otra estructura llamada Docentes y contenga los argumentos que tengan que ver con el profesor (clave, carrera, especialidad, director, etc.). Por último crea una estructura llamada Calificaciones, la cuál administrará las calificaciones de las materias de primer cuatrimestre que cursaste.

El programa solicitará la información y la mostrará al usuario

Arreglos como miembros de una Estructura

Los miembros de las estructuras también pueden estar conformados por arreglos, podemos declarar un arreglo de 100 estructuras, cada estructura tienen información de datos de empleados de una compañia.

#include <iostream.h>

#include <stdio.h>

#include <ctype.h>

struct inventario

{

char titulo[25];

char fecha_pub[20];

char autor[30];

int num;

int pedido;

float precio_venta;

};

main()

{

struct inventario libro[100];

int total=0;

char resp;

do{

cout<<"Total de libros "<< (total+1)<< "\n";

cout<<"¿Cuál es el titulo ?";

gets(libro[total].titulo);

cout<<"¿Cuál es la fecha de la publicación? ";

gets(libro[total].fecha_pub);

cout<<"¿Quén es el autor? ";

gets(libro[total].autor);

cout<<"¿Cuantos libros existen? ";

gets(libro[total].num);

cout<<"¿Cuantos ejemplares existen pedidos ? ";

gets(libro[total].pedido);

cout<<"¿Cuál es el precio de venta? ";

gets(libro[total].precio_venta);

fflush(stdin);

cout<<"\nHay más libros? (S/N)";

cin>>resp;

fflush(stdin);

resp=toupper(resp);

if(resp=='S')

{

total++;

continue;

}

}while(resp=='S');

return 0;

}

virj