Sei sulla pagina 1di 14

Estructuras

1) el operador de acceso a miembro, llamado operador punto.


Ejemplo:

#include <iostream>
struct fecha {
int dia, mes, year;
};
using namespace std;

int main()
{
struct fecha hoy;
cout <<"Ingreso fecha de hoy (dd/mm/aaaa): "<< endl;
cin>>hoy.dia>>hoy.mes>>hoy.year;
cout<<"\nEl dia de hoy es: ";
cout<<hoy.dia<<'/'<<hoy.mes<<'/'<<hoy.year<<endl;
return 0;
}
2. operador de flecha o tambin operador de puntero a miembro.
Ejemplo:

#include <iostream>
struct fecha {
int dia, mes, year;
}hoy;
using namespace std;

int main()
{
struct fecha *aptr;
aptr=&hoy;
cout <<"Ingreso fecha de hoy (dd/mm/aaaa): "<< endl;
cin>>aptr->dia>>aptr->mes>>aptr->year;
cout<<"\nEl dia de hoy es: ";
cout<<aptr->dia<<'/'<<aptr->mes<<'/'<<aptr->year<<endl;
return 0;
}
Ejemplos 1:

#include <iostream>
using namespace std;

struct complejo {
float real;
float imag;
};
complejo suma(complejo x, complejo y);
complejo resta(complejo x, complejo y);
int main()
{
complejo x, y, z;
cout <<"Ingrese parte real y parte imaginaria de x => "<< endl;
cin>>x.real>>x.imag;
cout <<"Ingrese parte real y parte imaginaria de y => "<< endl;
cin>>y.real>>y.imag;
z=suma(x,y);
cout<<"\n La suma es : "<<z.real<<"+"<<z.imag<<"i"<<endl;
z=resta(x,y);
cout<<"\n La resta es: "<<z.real<<"+"<<z.imag<<"i"<<endl;
return 0;
}
complejo suma(complejo x, complejo y)
{
complejo z;
z.real=x.real+y.real;
z.imag=x.imag+y.imag;
return z;
}
complejo resta (complejo x, complejo y)
{
complejo z;
z.real=x.real-y.real;

z.imag=x.imag-y.imag;
return z;
}
Ejemplo 2:

#include <iostream>
#include <stdlib.h>
using namespace std;
struct complejo {
float real;
float imag;
};
complejo suma(complejo x, complejo y);
complejo resta(complejo x, complejo y);
int main()
{
complejo x={1,2}, y={2,3}, z;
z=suma(x,y);
cout <<"\n La suma es: "<<z.real<<"+"<<z.imag<<"i"<<endl;
z=resta(x,y);
cout<<"\n La resta es: "<<z.real<<"+"<<z.imag<<"i"<<endl;
return 0;
}
complejo suma(complejo x, complejo y)
{
complejo z;
z.real=x.real+y.real;
z.imag=x.imag+y.imag;

return z;
}
complejo resta (complejo x, complejo y)
{
complejo z;
z.real=x.real-y.real;
z.imag=x.imag-y.imag;
return z;
}
Ejemplo 3:

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
struct punto{
float x;
float y;
};
double modulo (punto p1, punto p2);
void printpunto (punto p1);
int main()
{
punto p1={1,1},p2 ={2,2};
printpunto (p1);
double distancia;

distancia=modulo(p1,p2);
cout<<"\n La ditancia es:
"<<setw(10)<<setprecision(7)<<distancia<<endl;
return 0;
}
double modulo (punto p1, punto p2)
{
return sqrt(pow(p1.x-p2.x, 2)+pow(p1.y-p2.y, 2));
}
void printpunto(punto p)
{
cout<<"\n Punto p ("<<p.x<<", "<<p.y<<")"<<endl;
}
Ejemplo 4:

#include <iostream>
#include <stdio.h> //para get()
using namespace std;
struct producto{
char nombre[30];
char fabricante [30];
int cantidad;
float precio_unitario;
float valor_total;
};
int main ()

//Estructura_producto_1.cpp

{
producto p;
float valor_total;
cout<<"\nIngreso de datos: "<<endl;
//Leer el nombre del producto
cout<<"\nNombre del producto-> ";
gets(p.nombre);
//leer el nombre del fabricante
cout<<"\nNombre del fabricante -> ";
gets(p.fabricante);
//leer el numero de productos
cout<<"\nNumero de productos -> ";
cin>>p.cantidad;
//leer el precio unitario
cout<<"Precio de cada producto ->";
//calcular el valor total
valor_total=p.cantidad*p.precio_unitario;
cout<<"\nProducto\t"<<p.nombre<<endl;
cout<<"Fabricante\t"<<p.fabricante<<endl;
cout<<"Precio unitario\t"<<p.precio_unitario<<endl;
cout<<"Cantidad\t"<<p.cantidad<<endl;
cout<<"Valor total\t"<<p.valor_total<<endl;
return 0;
}
Ejemplo 5:

#include <iostream>
#include <stdio.h> //para get()
using namespace std;
struct producto{
char nombre[30];
char fabricante [30];
int cantidad;
float precio_unitario;
};
void leerproducto (producto &p);
void resultado (producto p);
int main ()

//Estructura_producto_1.cpp

{
producto p;
leerproducto(p);
resultado(p);
}
void leerproducto( producto &p)
{
cout<<"\nIngreso de datos: "<<endl;
//Leer el nombre del producto
cout<<"\nNombre del producto-> ";

gets(p.nombre);
//leer el nombre del fabricante
cout<<"\nNombre del fabricante -> ";
gets(p.fabricante);
//leer el numero de productos
cout<<"\nNumero de productos -> ";
cin>>p.cantidad;
//leer el precio unitario
cout<<"Precio de cada producto ->";
cin>>p.precio_unitario;
}
void resultado(producto p)
{
float valor_total;
//calcular el valor total
valor_total=p.cantidad*p.precio_unitario;
cout<<"\nProducto\t"<<p.nombre<<endl;
cout<<"Fabricante\t"<<p.fabricante<<endl;
cout<<"Precio unitario\t"<<p.precio_unitario<<endl;
cout<<"Cantidad\t"<<p.cantidad<<endl;
cout<<"Valor total\t"<<valor_total<<endl;
//return 0;
}
Ejemplo 6:
#include <iostream>
#include <stdio.h> //para get()
struct fecha{
int dia, mes, year;
};
struct persona{

char nombre [40];


short edad;
fecha fnac;
char direccion [45];
char ocupacion [20];
};
void leerpersona(persona &p);
void imprimepersona(persona p);
using namespace std;
int main ()
{struc persona p1;
leerpersona(p1);
imprimepersona(p1);
return 0;
}
void leerpersona( persona &p)
{
cout<<"\nLectura de datos de la persona: "<<endl;
cout<<"\nIngresar Nombre-> ";
gets(p.nombre);
cout<<"\nIngresa la edad: -> ";
cin>>p.edad;
cout<<"\ningrese fecha de nacimiento: ";
fflush(stdin);
cin>>p.fnac.dia>>p.nac.mes>>f.nac.year;
cout<<"Ingrese direccion: ";
gets(p.direccion);
fflush(stdin);
cout<<"ingrese ocupacion: ";
gets(p.ocupacion);

}
void imprimepersona(persona p)
{
cout<<"\nDatos de la persona"<<endl;
cout<<"Nombre\t"<<p.nombre<<endl;
cout<<"Edad\t"<<p.edad<<endl;
cout<<"Fecha de nacimiento\t";
cout<<p.fnc.dia<<"/"<<p.fnac.mes<<"/"<<p.nac.year<<endl;
cout<<"Direccion:\t"; puts(p.direccion);
cout<<"Ocupacion: "; puts(p.ocupacion);
}
Ejemplo 7:
#include <iostream>
#include <stdio.h>
#include <string.h>
const int N=50;
struct fecha{
int dia, mes, year;
};
struct persona{
char nombre[40];
short edad;
fecha fnac;
char direccion [45];
char ocupacion [20];
};
//prototipo de funciones
void leerpersona(persona &p);
void imprimepersona(persona &p);
void leerarraypersonas(persona jov[], int n);

void imprimearraypersonas(persona jov[], int n);


void buscapersonas(persona jov[], int n, char nom[]);
using namespace std;
int main ()
{
persona jovenes[N];
int n;
cout<<"\nIngrese cantidad de personas: ";
cin>>n;
leerarraypersonas (jovenes,n);
imprimearraypersonas(jovenes,n);
cout<<endl;
char nom [80];
cout<<" Ingrese nombre a buscar: "; gets(nom);
buscapersonas(nom, n, persona);
return 0;
}
void leerpersona (persona &p)
{
cout<<"\nIngresar nombre: "; gets(p.nombre); fflush(stdin);
cout<<"\nIngrese la edad: "; cin>>p.edad;
cout<<"\ningrese fecha de nacimiento (dd/mm/aaaa):"; fflush(stdin);
cin>>p.fnac.dia>>p.fnac.mes>>p.fnac.year; fflush(stdin);
cout<<"Ingrese direccion: "; gets(p.direccion); fflush(stdin);
cout<<"ingrese ocupacion: "; gets(p.ocupacion);
}
void imprimepersona(persona &p)
{
cout<<"\nDatos de la persona"<<endl;
cout<<"\nNombre"<<p.nombre<<endl;

cout<<"Edad:"<<p.edad<<endl;
cout<<"Fecha de nacimiento (dd/mm/aaaa): ";
cout<<p.fnac.dia<<"/"<<p.fnac.mes<<"/"<<p.fnac.year<<endl;
cout<<"Direccion:\t"; puts(p.direccion);
cout<<"Ocupacion: "; puts(p.ocupacion);
}
void leerarraypersonas (persona jov[], int n)
{
cout<<"lectura de datos en el array de personas"<<endl;
for(int i=0; i<n; i++)
{ fflush(stdin);
leerpersona(jov[i]);
}
}
void imprimearraypersonas(persona jov[], int n)
{
cout<<"\nArray de personas"<<endl;
for (int i=0; i<n; i++)
imprimepersona(jov[1]);
}
void buscapersona(persona jov[], int n, char nom[])
{
bool existe=false;
strupr(nom);
for (int i=0; i<n; i++)
{ strupr(jov [i].nombre);
if(strcmp(jov [i].nombre,nom)==0)
{
existe =true;
imprimepersona(jov [i]);

}
}
if (existe==false)
cout<<"persona no existe!..."<<endl;
}

Potrebbero piacerti anche