Arreglos de Objetos

Anuncio
Arreglos de Objetos
Pantalla
1
Diagrama de Clases
2
Código Fuente
Public Class Persona
' Atributos
Protected cedula As Integer
Protected nombre As String
Protected edad As Integer
Protected sexo As String
Public Sub New(ByVal cedula As Integer, _
ByVal nombre As String, _
ByVal edad As Integer, _
ByVal sexo As String)
Me.cedula = cedula
Me.nombre = nombre
Me.edad = edad
Me.sexo = sexo
End Sub
' Agregar Cedula
Public Sub setCedula(ByVal cedula As Integer)
Me.cedula = cedula
End Sub
' Mostrar Cedula
Public Function getCedula() As Integer
Return Me.cedula
End Function
' Agregar Nombre
Public Sub setNombre(ByVal nombre As String)
Me.nombre = nombre
End Sub
' Mostrar Nombre
Public Function getNombre() As String
Return Me.nombre
End Function
' Agregar Edad
Public Sub setEdad(ByVal edad As Integer)
Me.edad = edad
End Sub
' Mostrar Edad
Public Function getEdad() As Integer
Return Me.edad
End Function
' Agregar Sexo
Public Sub setSexo(ByVal sexo As String)
Me.sexo = sexo
End Sub
' Mostrar Sexo
Public Function getSexo() As String
Return Me.sexo
End Function
End Class
3
Public Class Alumno
Inherits Persona
' Atributos
Private becado As Boolean
Public Sub New(ByVal
ByVal
ByVal
ByVal
ByVal
cedula As Integer, _
nombre As String, _
edad As Integer, _
sexo As String, _
becado As Boolean)
MyBase.New(cedula, nombre, edad, sexo)
Me.becado = becado
End Sub
' Agregar Becado
Public Sub setBecado(ByVal becado As Boolean)
Me.becado = becado
End Sub
' Mostrar Becado
Public Function isBecado() As Boolean
Return Me.becado
End Function
End Class
4
Public Class Instituto
' Atributos
Private estudiante() As Alumno
Private cant As Integer = 0
Private pos As Integer
Public Function agregarEstudiante(ByVal
ByVal
ByVal
ByVal
ByVal
Dim agregar As Boolean = True
cedula As Integer, _
nombre As String, _
edad As Integer, _
sexo As String, _
becado As Boolean) As Boolean
pos = Me.buscarEstudiante(cedula)
If (pos = -1) Then
ReDim Preserve estudiante(cant)
estudiante(cant) = New Alumno(cedula, nombre, edad, sexo, becado)
cant = cant + 1
Else
agregar = False
End If
Return agregar
End Function
Public Function mostrarEstudiante(ByVal
ByRef
ByRef
ByRef
ByRef
Dim mostrar As Boolean = True
cedula As Integer, _
nombre As String, _
edad As Integer, _
sexo As String, _
becado As Boolean) As Boolean
Me.pos = Me.buscarEstudiante(cedula)
If (Me.pos <> -1) Then
nombre = Me.estudiante(Me.pos).getNombre
edad = Me.estudiante(Me.pos).getEdad
sexo = Me.estudiante(Me.pos).getSexo
becado = Me.estudiante(Me.pos).isBecado
Else
mostrar = False
End If
Return mostrar
End Function
Public Function modificarEstudiante(ByVal
ByVal
ByVal
ByVal
ByVal
Dim modificar As Boolean = True
cedula As Integer, _
nombre As String, _
edad As Integer, _
sexo As String, _
becado As Boolean) As Boolean
Me.pos = Me.buscarEstudiante(cedula)
If (Me.pos <> -1) Then
Me.estudiante(Me.pos).setNombre(nombre)
Me.estudiante(Me.pos).setEdad(edad)
Me.estudiante(Me.pos).setSexo(sexo)
Me.estudiante(Me.pos).setBecado(becado)
Else
5
modificar = False
End If
Return modificar
End Function
Public Function listarEstudiantes() As DataTable
Dim i As Integer
' Representa las filas del listado que se van a mostrar
Dim dtAlumno As New DataTable
Dim drAlumno As DataRow
' Crear las columnas
dtAlumno.Columns.Add(New
dtAlumno.Columns.Add(New
dtAlumno.Columns.Add(New
dtAlumno.Columns.Add(New
dtAlumno.Columns.Add(New
DataColumn("Cedula", GetType(Integer)))
DataColumn("Nombre", GetType(String)))
DataColumn("Edad", GetType(Integer)))
DataColumn("Sexo", GetType(String)))
DataColumn("Becado", GetType(String)))
For i = 0 To cant - 1
' Se recorre cada alumno y se carga los datos en el DataRow
drAlumno = dtAlumno.NewRow
drAlumno(0) = Me.estudiante(i).getCedula
drAlumno(1) = Me.estudiante(i).getNombre
drAlumno(2) = Me.estudiante(i).getEdad
drAlumno(3) = Me.estudiante(i).getSexo
If Me.estudiante(i).isBecado Then
drAlumno(4) = "Si"
Else
drAlumno(4) = "No"
End If
' Se agregar el DataRow lleno al DataTable
dtAlumno.Rows.Add(drAlumno)
dtAlumno.AcceptChanges()
Next i
Return dtAlumno
End Function
' Busca al estudiante en el arreglo
' Devuelve la posición del estudiante si existe en el arrglo
' Si no existe devuelve -1
Private Function buscarEstudiante(ByVal cedula As Integer) As Integer
Dim encontrado As Integer = -1
Dim i As Integer = 0
While (i < Me.cant) AndAlso (encontrado = -1)
If (cedula = Me.estudiante(i).getCedula) Then
encontrado = i
End If
i += 1
End While
Return encontrado
End Function
End Class
6
Public Class RegistroEstudiantes
' Atributos
Private IUGT As New Instituto
Private cedula As Integer
Private nombre As String
Private edad As Integer
Private sexo As String
Private becado As Boolean
Public Sub New()
' Llamada necesaria para el Diseñador de Windows Forms.
InitializeComponent()
' Agregue cualquier inicialización después de la llamada a
' InitializeComponent().
Me.rdbAgregar.Checked = True
Me.llenarComboBox()
End Sub
Private Sub btnEjecutar_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnEjecutar.Click
If Me.rdbAgregar.Checked Then
Me.agregarEstudiante()
ElseIf Me.rdbBuscar.Checked Then
Me.mostrarEstudiante()
ElseIf Me.rdbModificar.Checked Then
Me.modificarEstudiante()
ElseIf Me.rdbListar.Checked Then
Me.listarEstudiantes()
End If
End Sub
Public Sub agregarEstudiante()
If validarCampo(Me.txtCI.Text) AndAlso validarCampo(Me.txtEdad.Text) Then
' Se capturan los datos
Me.cedula = Me.txtCI.Text
Me.nombre = Me.txtNombre.Text
Me.edad = Me.txtEdad.Text
Me.sexo = Me.cmbSexo.SelectedItem.ToString
Me.becado = Me.chkBecado.Checked
' Se agrega el nuevo estudiante
If Me.IUGT.agregarEstudiante(Me.cedula, Me.nombre, Me.edad, Me.sexo, _
Me.becado) Then
MsgBox("Se ha registrado satisfactoriamente", _
MsgBoxStyle.Information, "Registro")
Else
MsgBox("El usuario ya existe!!!", MsgBoxStyle.Exclamation, _
"Error de registro")
End If
' Se limpia los campos
limpiarCampos(True, True, True, True, True)
Else
MsgBox("Ingresar valores correctos!!!", MsgBoxStyle.Exclamation, _
"Error de dato")
End If
End Sub
7
Public Sub mostrarEstudiante()
If validarCampo(Me.txtCI.Text) Then
Me.cedula = Me.txtCI.Text
If (Me.IUGT.mostrarEstudiante(Me.cedula, Me.nombre, Me.edad, Me.sexo, _
Me.becado)) Then
Me.txtNombre.Text = Me.nombre
Me.txtEdad.Text = Me.edad
Me.cmbSexo.SelectedItem = Me.sexo
Me.chkBecado.Checked = Me.becado
Else
MsgBox("El usuario NO existe!!!", MsgBoxStyle.Exclamation, _
"Error de registro")
End If
End If
End Sub
Public Sub modificarEstudiante()
If validarCampo(Me.txtCI.Text) AndAlso validarCampo(Me.txtEdad.Text) Then
' Se capturan los datos
Me.cedula = Me.txtCI.Text
Me.nombre = Me.txtNombre.Text
Me.edad = Me.txtEdad.Text
Me.sexo = Me.cmbSexo.SelectedItem.ToString
Me.becado = Me.chkBecado.Checked
' Se modifica los datos del Estudiante
If IUGT.modificarEstudiante(Me.cedula, Me.nombre, Me.edad, Me.sexo, _
Me.becado) Then
MsgBox("Se ha modificado los datos satisfactoriamente", _
MsgBoxStyle.Information, "Registro")
Else
MsgBox("El usuario NO existe!!!", MsgBoxStyle.Exclamation, _
"Error de registro")
limpiarCampos(True, False, False, False, False)
End If
Else
MsgBox("Ingresar valores correctos!!!", MsgBoxStyle.Exclamation, _
"Error de dato")
End If
End Sub
Public Sub listarEstudiantes()
Me.dgvListado.DataSource = Me.IUGT.listarEstudiantes
Me.tamanoColumnasDataGridView()
End Sub
Private Sub rdbAgregar_CheckedChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles rdbAgregar.CheckedChanged
If Me.rdbAgregar.Checked Then
activarCampos(True, True, True, True, True)
End If
End Sub
8
Private Sub rdbBuscar_CheckedChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles rdbBuscar.CheckedChanged
If Me.rdbBuscar.Checked Then
activarCampos(True, False, False, False, False)
End If
End Sub
Private Sub rdbModificar_CheckedChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles rdbModificar.CheckedChanged
If Me.rdbModificar.Checked Then
activarCampos(True, True, True, True, True)
End If
End Sub
Private Sub rdbListar_CheckedChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles rdbListar.CheckedChanged
If Me.rdbListar.Checked Then
activarCampos(False, False, False, False, False)
End If
End Sub
Private Sub llenarComboBox()
' Carga de los valores del ComboBox
Me.cmbSexo.Items.Add("Masculino")
Me.cmbSexo.Items.Add("Femenino")
' Se posiciona en el 1er elemento del ComboBox
Me.cmbSexo.SelectedIndex = 0
Me.cmbSexo.DropDownStyle = ComboBoxStyle.DropDownList
End Sub
Private Sub tamanoColumnasDataGridView()
Me.dgvListado.Columns.Item(0).Width
Me.dgvListado.Columns.Item(1).Width
Me.dgvListado.Columns.Item(2).Width
Me.dgvListado.Columns.Item(3).Width
Me.dgvListado.Columns.Item(4).Width
Me.dgvListado.ReadOnly = True
=
=
=
=
=
70
99
40
60
50
End Sub
Private Function validarCampo(ByVal campo As String) As Boolean
Dim valido As Boolean = True
If Not IsNumeric(campo) Then
valido = False
End If
Return valido
End Function
9
Private Sub limpiarCampos(ByVal
ByVal
ByVal
ByVal
ByVal
cedula As Boolean, _
nombre As Boolean, _
edad As Boolean, _
sexo As Boolean, _
becado As Boolean)
If cedula Then
Me.txtCI.Clear()
End If
If nombre Then
Me.txtNombre.Clear()
End If
If edad Then
Me.txtEdad.Clear()
End If
If sexo Then
Me.cmbSexo.SelectedIndex = 0
End If
If becado Then
Me.chkBecado.Checked = False
End If
End Sub
Private Sub activarCampos(ByVal
ByVal
ByVal
ByVal
ByVal
cedula As Boolean, _
nombre As Boolean, _
edad As Boolean, _
sexo As Boolean, _
becado As Boolean)
Me.txtCI.Enabled = cedula
Me.txtNombre.Enabled = nombre
Me.txtEdad.Enabled = edad
Me.cmbSexo.Enabled = sexo
Me.chkBecado.Enabled = becado
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSalir.Click
Me.Close()
End Sub
Private Sub dgvListado_CellClick(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
Handles dgvListado.CellClick
Dim fila As DataGridViewRow = dgvListado.CurrentRow
Me.txtCI.Text = fila.Cells(0).Value.ToString
Me.txtNombre.Text = fila.Cells(1).Value.ToString
Me.txtEdad.Text = fila.Cells(2).Value.ToString
Me.cmbSexo.SelectedItem = fila.Cells(3).Value.ToString
If fila.Cells(4).Value.ToString = "Si" Then
Me.chkBecado.Checked = True
Else
Me.chkBecado.Checked = False
End If
End Sub
End Class
10
Descargar