9. Estructuras
• La estructura (struct) es un tipo de dato definido por el usuario. • En otros lenguajes de programación se les conoce como registros
(record). • Es el fundamento para la construcción de clases en programación
orientada a objetos.
• Una estructura contiene miembros, los cuáles son tipos de datos primitivos o en su caso otras estructuras.
• Estos tipos de datos pueden acomodarse en arreglos, listas con punteros o archivos.
• Los elementos de la estructura deben ser asociados a la entidad que los define, así que la estructura de un alumno, tendría como elementos a:
nombre, número de cuenta, fecha de nacimiento, escuela, carrera, dirección, teléfono, entre otros.
Estructuras
El formato general de la estructura es:
Struct nombre_estructura{ tipo de dato dato_miembro1;tipo de dato dato_miembro2;tipo de dato dato_miembro3;…….}; // ojo con el ; es obligatorio //
Estructuras
Ejemplos de definiciones de estructura:Coordenadas de un punto en el cuadrante x,y: struct punto { int x; Int y; };
Componentes de un número complejo: struct complejo { double x; double y; };
Identificación de un alumno: struct alumno { double cuenta; char nombre[30]; char escuela[50]; char fechanac[10]; char plantel[15]; };
Estructuras
A estas estructuras se les deberá asignar ahora un nombre de variable, ya que son tipos de datos. Para utilizar sus elementos se debe utilizar el operador de referencia punto.
Ejemplos: Punto puntox;Puntox.x = 10;Puntox.y = 100;
Dentro de una función, quedaría:Void funct(){ alumno ralumno;Ralumno.nombre = “José Gonzalez”;Ralumno.cuenta = 123456;}
Estructuras
El manejo mediante apuntadores sería:
Punto puntox; // se define una variable del tipo estructuraPunto *ptrx = puntox; //se define un apuntador del tipo estructura y queapunta a la localidad de la variable puntoxptrx -> x = 10; // en lugar del punto se utiliza la flecha ->ptrx -> y = 100;
Estructuras
Finalmente un ejemplo de estructura anidada es:struct equipo{ struct Dirección;{ Char calle[30];Char población [20];Char estado[15];Long codpostal;}Char nombre[10];Dirección patrocinador;}
Estructuras
Uso de estructuras dentro de un arreglo
Considérese la siguiente estructura:
Struct cliente{ char nombre [20];Direccion [20];Saldo_deudor double;}
Para definir un arreglo de clientes: cliente arr_cltes [100];
El siguiente código muestra un manejo simple de un struct:
Estructuras
#include <iostream>using namespace std;struct cliente{ char nombre [20];char direccion [20];double saldo_deudor;};cliente arr_cltes [10];
……………
Estructuras
void main(){ int i;for (i=0; i < 5; i++) // se carga el arreglo{ cout << "\ncliente no. " << i;cout << "\t nombre: "; cin >> arr_cltes[i].nombre;cout << "\n\t direccion: "; cin >> arr_cltes[i].direccion;cout << "\n\t saldo deudor: "; cin >> arr_cltes[i].saldo_deudor;}for (i=0; i < 5; i++) // se muestra el arreglo{ cout << "\ncliente no. " << i;cout << "\tnombre: " << arr_cltes[i].nombre;cout << "\n\t\tdireccion: " << arr_cltes[i].direccion;cout << "\n\t\tsaldo deudor: " << arr_cltes[i].saldo_deudor;}}
Estructuras
Actividad:
Se desea llevar el control de las calificaciones de los alumnos con un registro que contenga los siguientes elementos:No. De cuentaApellido paternoApellido maternoNombreClave de carreraAsistencias del periodoFaltas del periodoPromedio de tareasCalificación de examen
El control debe contar con las siguientes operaciones:Alta de alumnosBaja de alumnosBúsqueda de alumnos por apellido (devuelve localización en el arreglo)Actualización de: asistencias, faltas, promedio de tareas y calificación de examenReporte de resultados: …..(con cálculos)………………………
Estructuras
Cuenta |Nombre completo|Carrera|Asistencias|Faltas|prom.|Examen|tareas|examen| finaltareas 30% 70%99999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.4
Estructuras
Top Related