curso9 estructuras

12
9. Estructuras

Upload: carmen4452002

Post on 29-Jul-2015

250 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Curso9 estructuras

9. Estructuras

Page 2: Curso9 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

Page 3: Curso9 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

Page 4: Curso9 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

Page 5: Curso9 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

Page 6: Curso9 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

Page 7: Curso9 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

Page 8: Curso9 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

Page 9: Curso9 estructuras

#include <iostream>using namespace std;struct cliente{ char nombre [20];char direccion [20];double saldo_deudor;};cliente arr_cltes [10];

……………

Estructuras

Page 10: Curso9 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

Page 11: Curso9 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

Page 12: Curso9 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