12
Programación Orientada a Objetos en C# .NET Ing. Bruno López Takeyas, M.C. http://www.itnuevolaredo.edu.mx/Takeyas 1 CAPÍTULO 6 COMPOSICIÓN Y AGREGACIÓN (Varios “todos”) 2 1 2

CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 1

CAPÍTULO 6COMPOSICIÓN Y AGREGACIÓN

(Varios “todos”)

2

1

2

Page 2: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 2

Ejercicio con varios “todos”�Un Grupo Corporativo Empresarial cuenta

con varias sucursales y cada una de ellascontrata de manera exclusiva a variosempleados

�Datos de la sucursal:�Nombre

�Dirección

�Datos del empleado:�Número

�Nombre

� Sueldo3

Composición simple

4

Sin embargo, el Grupo Corporativo Empresarial cuenta con varias sucursales distribuidas en varios

puntos de una ciudad

3

4

Page 3: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 3

5

Diseño de la forma

Diseño completo

6

5

6

Page 4: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 4

Procedimiento al capturar una sucursal

�Crear un objeto local para la nueva sucursal

�Capturar sus datos de los textBoxes

�Agregar la nueva sucursal al listBox

7

Botón para capturar nueva sucursal

private void btnCapturarSucursal_Click(object sender, EventArgs e)

{

// Declaración y creación de un objeto local para nueva sucursal

Sucursal nuevaSucursal = new Sucursal();

// Capturar los datos de la nueva sucursal

nuevaSucursal.Nombre = txtNombreSucursal.Text;

nuevaSucursal.Direccion = txtDireccionSucursal.Text;

// Insertar la nueva sucursal al listBox

lstSucursales.Items.Add(nuevaSucursal);

MessageBox.Show("Nueva sucursal capturada correctamente");

// Limpiar los textBoxes

Limpiar();

}

8

7

8

Page 5: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 5

� El método ToString() se sobrescribe en la claseSucursal para configurar lo que se desea mostraren el listBox cuando se agregue una nueva sucursal

� De no hacerlo, no despliega correctamente sus datosen el listBox

9

Sobrescritura del método ToString() de la clase Sucursal

Ejemplo sin la sobrescritura de

ToString( )

Sobrescritura de ToString()

class Sucursal

{

. . .

. . .

. . .

// Sobrescritura del método ToString()

public override string ToString()

{

return this.Nombre;

}

}10

9

10

Page 6: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 6

Procedimiento al capturar un empleado de una sucursal

� El usuario debe seleccionar una sucursal dellistBox

� El botón de captura de datos del empleadodebe validar que el usuario seleccionecorrectamente una sucursal de la lista

� Crear un objeto local para el nuevo empleado� Capturar los datos de los textBoxes� Insertar el nuevo empleado al objeto de la

sucursal seleccionada de la lista� Actualizar el dataGridView con los datos de los

empleados de la sucursal seleccionada11

Botón para capturar nuevo empleadoprivate void btnCapturarEmpleado_Click(object sender, EventArgs e)

{

// Declaración y creación de un objeto local para la sucursal

Sucursal sucursalSeleccionada = new Sucursal();

// Seleccionar una sucursal del listBox

sucursalSeleccionada = (Sucursal) lstSucursales.SelectedItem;

// Validar que el usuario seleccione una sucursal del listBox

if(sucursalSeleccionada==null)

{

MessageBox.Show("Debe seleccionar una sucursal de la lista");

return;

}

// Declaración y creación de un objeto local para el nuevo empleado

Empleado nuevoEmpleado = new Empleado();

// Capturar los datos del nuevo empleado

nuevoEmpleado.Numero = int.Parse(txtNumeroEmpleado.Text);

nuevoEmpleado.Nombre = txtNombreEmpleado.Text;

nuevoEmpleado.Sueldo = double.Parse(txtSueldoEmpleado.Text);

// Insertar el nuevo empleado a la sucursal seleccionada

sucursalSeleccionada.InsertarEmpleado(nuevoEmpleado);

// Mostrar los empleados de la sucursal seleccionada

MostrarDatosEmpleados(sucursalSeleccionada);

MessageBox.Show("Nuevo empleado insertado a la sucursal");

// Limpiar los textBoxes

LimpiarTextBoxes();

}

12

11

12

Page 7: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 7

Mostrar los datos de una sucursal seleccionada de la lista� Al seleccionar una sucursal almacenada en el listBox se deben

mostrar sus datos y los de sus empleados

� Al hacer click sobre un objeto del listBox se dispara el eventoClick

13

¿Cómo seleccionar el evento Clickdel listBox?

� Abrir la ventana depropiedades dellistBox

� Cambiar a la ventanade eventos

� Hacer doble clicksobre el eventodeseado

14

13

14

Page 8: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 8

Código del evento Clickprivate void lstSucursales_Click(object sender, EventArgs e)

{

// Declaración y creación de un objeto local para la sucursal seleccionada

Sucursal sucursalSeleccionada = new Sucursal();

// Seleccionar una sucursal de la lista

sucursalSeleccionada = (Sucursal) lstSucursales.SelectedItem;

// Validar la correcta selección de la sucursal

if(sucursalSeleccionada==null)

{

MessageBox.Show("Debe seleccionar una sucursal de la lista");

return;

}

// Mostrar los datos de la sucursal seleccionada

MostrarDatosEmpleados(sucursalSeleccionada);

}

15

Ejemplo 1: Contar los empleados de una sucursal seleccionada de la lista� Agregar un botón para contar los empleados de una sucursal

16

15

16

Page 9: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 9

Método de la clase Sucursal para contar los empleados

class Sucursal

{

. . .

. . .

. . .

// Método para contar los empleados

public int ContarEmpleados()

{

return _listaEmpleados.Count;

}

}17

Código del botón para contarprivate void btnContarEmpleados_Click(object sender, EventArgs e)

{

// Declaración y creación de un objeto local para la sucursal

seleccionada

Sucursal sucursalSeleccionada = new Sucursal();

// Seleccionar una sucursal de la lista

sucursalSeleccionada = (Sucursal)lstSucursales.SelectedItem;

// Validar la correcta selección de la sucursal

if (sucursalSeleccionada == null)

{

MessageBox.Show("Debe seleccionar una sucursal de la lista");

return;

}

// Invocar el método ContarEmpleados() de la clase Sucursal

MessageBox.Show("La sucursal " + sucursalSeleccionada.Nombre + "

tiene " + sucursalSeleccionada.ContarEmpleados()+" empleados");

}18

17

18

Page 10: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 10

Ejemplo 2: Sumar los sueldos de los empleados de todas las sucursales

19

Método de la clase Sucursal para sumar los sueldos de los empleadosclass Sucursal

{

. . .

. . .

. . .

// Método para sumar los sueldos de todos sus empleados

public double SumarSueldos()

{

// Declaración de una variable local para la sumatoria

double dblSuma = 0.0;

// Recorrer la lista de empleados

foreach (Empleado miEmpleado in _listaEmpleados)

dblSuma += miEmpleado.Sueldo;

return dblSuma;

}

}20

19

20

Page 11: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 11

Código del botón para sumarprivate void btnSumarSueldos_Click(object sender,

EventArgs e)

{

// Declaración de variable local para la sumatoria

double dblSumaSueldos = 0.0;

// Recorrer todas las sucursales del listBox

foreach(Sucursal miSucursal in lstSucursales.Items)

dblSumaSueldos += miSucursal.SumarSueldos();

MessageBox.Show("La suma de los sueldos de todos los

empleados es " + dblSumaSueldos.ToString("C"));

}

21

22

Ejercicios� ¿Cuántos empleados tiene todo el grupo corporativo empresarial?

� ¿Cuál es la suma de los sueldos de los empleados de todo el grupo corporativo empresarial?

� ¿Cuál es el nombre del empleado con el sueldo mayor de una sucursal seleccionada del listBox?

� ¿Cuál es el nombre del empleado con el sueldo mayor de todo el grupo corporativo empresarial?

� ¿Cuál es el nombre de la sucursal con la menor suma de sueldos de sus empleados?

� De las sucursales, ¿cuál tiene la menor cantidad de empleados?

� Calcular el promedio de sueldo de los empleados del grupo corporativo empresarial

� Calcular el promedio de empleados por sucursal del grupo corporativo empresarial

21

22

Page 12: CAPÍTULO 6 VariosTodos.pdfUn Grupo Corporativo Empresarial cuenta con varias sucursales y cada una de ellas contrata de manera exclusiva a varios empleados Datosdelasucursal: Nombre

Programación Orientada a Objetos en C# .NET

Ing. Bruno López Takeyas, M.C.http://www.itnuevolaredo.edu.mx/Takeyas 12

Otros títulos del autor

http://www.itnuevolaredo.edu.mx/Takeyas/Libro

Bruno López [email protected]

23