Las estructuras en c++ son colecciones de elementos, los cuales pueden ser de diferente tipo, y a diferencia de las uniones, en éstas no se comparte la misma área de memoria para los elementos.
La forma de declarar una estructura es:
struct nombre_estructura{
tipo nombre_elemento1;
tipo nombre_elemento2;
};
Es entonces cuando declaramos una variable del tipo de la estructura,
funcionando el nombre de la estructura como un nuevo tipo de datos, de esta
manera, la nueva variable tendrá cada uno de los elementos declarados en ella.
nombre_estructura nueva_variable;
Para acceder a cada uno de sus elementos usamos el operador punto (.), seguido del nombre del elemento, de la misma forma que con las uniones. Una estructura puede ser declarada de forma global o local.
Un ejemplo del uso de los structs:
/*Un instituto registra los datos de los alumnos que llevan cursos de extension,
el monto que paga cada alumno depende del curso que lleva:
Curso Monto(S/.)
Java 580
c++ 420
.net 600
Asimismo, de acuerdo al turno en el que se matricula el monto de la matricula
se incrementa en:
Turno Incremento(%)
Mañana 0
tarde 5
noche 10
Ademas, al final del curso el alumno debe realizar un pago de S/.25.00 por
derecho de examen. Mostrar el monto final que paga los N alumnos del instituto,
asi como la cantidad de alumnos que llevan los cursos de java, c++ y .NET. */
#include <iostream.h>
#include <stdlib.h>
struct
alumno{
char
nom[40], cur, tur;
double
mont, inc, tot;
};
int
i, n;
void
ingresar(
int
&n, alumno a[80]);
void
calcularTotal(
int
n, alumno a[80]);
void
calcularCantidad(
int
n, alumno a[80]);
void
imprimir(
int
n, alumno a[80]);
int
main()
{
alumno a[80];
ingresar(n, a);
calcularTotal(n, a);
calcularCantidad(n, a);
imprimir(n, a);
system
(
"PAUSE"
);
return
0;
}
void
ingresar(
int
&n, alumno a[80]){
cout<<
"Ingresar cantidad de alumnos: "
;
cin>>n;
for
(i=0; i<n; i++){
cout<<
"Ingresar nombre: "
;
cin>>a[i].nom;
cout<<
"Ingresar curso: "
;
cin>>a[i].cur;
cout<<
"Ingresar turno: "
;
cin>>a[i].tur;
}
}
void
calcularTotal(
int
n, alumno a[80]){
for
(i=0; i<n; i++)
switch
(a[i].cur){
case
'J'
: a[i].mont=580;
break
;
case
'C'
: a[i].mont=420;
break
;
case
'N'
: a[i].mont=600;
break
;
}
for
(i=0; i<n; i++)
switch
(a[i].tur){
case
'M'
: a[i].inc=0;
break
;
case
'T'
: a[i].inc=0.05*a[i].mont;
break
;
case
'N'
: a[i].inc=0.10*a[i].mont;
break
;
}
for
(i=0; i<n; i++)
a[i].tot=a[i].mont+a[i].inc+25.00;
}
void
calcularCantidad(
int
n, alumno a[80]){
int
cj=0, cc=0, cn=0;
for
(i=0; i<n; i++)
switch
(a[i].cur){
case
'J'
: cj++;
break
;
case
'C'
: cc++;
break
;
case
'N'
: cn++;
break
;
}
cout<<
"La cantidad de alumnos que llevan Java son "
<<cj<<endl
<<
"La cantidad de alumnos que llevan C++ son "
<<cc<<endl
<<
"La cantidad de alumnos que llevan NET son "
<<cn<<endl;
}
void
imprimir(
int
n, alumno a[80]){
for
(i=0; i<n; i++)
cout<<a[i].nom<<
"\t"
<<a[i].cur<<
"\t"
<<a[i].tur<<
"\t"
<<a[i].mont<<
"\t"
<<a[i].inc<<
"\t"
<<a[i].tot<<endl;
ese programa no corre hijo de puta si vas a subir mierdas q o sirven mejor no subas nada
ResponderBorrarGracias por el programa corre el 100%, no le hagas caso a este Joe Willians, el si es un hijo de puta, lo mas seguro es q no sabe como utilizar los programas segun su sistema operativo...
ResponderBorrar