Sunteți pe pagina 1din 6

EC417 – Lenguaje de Programación II

ESTRUCTURAS en Visual STUDIO

Laboratorio N° 9. Uso de REGISTROS


Estructuras en Visual Basic
Ejemplo 1. Registro de información correspondiente a empleados. Ordenación,
Búsquedas para un distrito y Estadísticas del Salario para un distrito particular.
En este caso, para cada empleado se han registrado los siguientes datos:
Nombres, Salario, Distrito y Categoria

PASO 1. COMPONENTES del Proyecto


Nuestro proyecto está compuesto de un solo formulario, tal como se muestra en la
siguiente figura:

cmbDistrito

cmbCateg

cmbBDistrito

cmbBCateg

Paso 2. CODIFICACION de controles.


Public Class frmRegistro
Structure Datos
Dim Nombres As String, Salario As Integer
Dim Distrito As String, Categ As String
End Structure
Public N As Integer
Public Empleados() As Datos

Laboratorio Nº 9 - ASC_UNI / Pag. 1


EC417 – Lenguaje de Programación II
Uso de ESTRUCTURAS

Sub Pasar()
Dim j As Integer
For j = 1 To N
Empleados(j).Nombres = lstNombres.Items.Item(j - 1)
Empleados(j).Salario = lstSalario.Items.Item(j - 1)
Empleados(j).Distrito = lstDistrito.Items.Item(j - 1)
Empleados(j).Categ = lstCategoria.Items.Item(j - 1)
Next
End Sub
Private Sub btnIngresar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnIngresar.Click
lstNombres.Items.Add(txtNombres.Text)
lstSalario.Items.Add(Val(txtSalario.Text))
lstDistrito.Items.Add(cmbDistrito.Text)
cmbDistrito.SelectedIndex = -1
lstCategoria.Items.Add(cmbCategoria.Text)
cmbCategoria.SelectedIndex = -1
txtNombres.Clear()
txtSalario.Clear()
txtNombres.Focus()
End Sub
Private Sub btnDistrito_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnDistrito.Click
Dim j As Integer, NCiudad As Integer = 0
Dim SumCiudad As Integer = 0
Dim Aux As String
N = lstNombres.Items.Count : ReDim Empleados(N)
Pasar()
lstBDistrito.Items.Clear()
Aux = Trim(cmbBDistrito.Text)
For j = 1 To N
If (InStr(Empleados(j).Distrito, Aux) > 0) Then
NCiudad += 1 : SumCiudad += Empleados(j).Salario
lstBDistrito.Items.Add(Empleados(j).Nombres & " " &
Empleados(j).Salario)
End If
Next
End Sub
Private Sub btnEstad_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnEstad.Click
Dim j As Integer, NCateg As Integer = 0, SumSalario As Integer = 0
Dim C As String
N = lstNombres.Items.Count : ReDim Empleados(N)
Pasar()
C = cmbBCateg.Text

Laboratorio Nº 9 - ASC_UNI / Pag. 2


EC417 – Lenguaje de Programación II
ESTRUCTURAS en Visual STUDIO

For j = 1 To N
If (InStr(Empleados(j).Categ, C) > 0) Then
SumSalario += Empleados(j).Salario
NCateg += 1
End If
Next
lblEstadisticas.Text = "El Salario PROMEDIO en " & C & " es " & (SumSalario /
NCateg)
End Sub
Private Sub btnOrden_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnOrden.Click
Dim j As Integer, k As Integer, Solt As Integer = 0
Dim w1() As Datos, Aux As Datos
N = lstNombres.Items.Count : ReDim Empleados(N)
Pasar()
ReDim w1(N)
lstOrden.Items.Clear()
For j = 1 To N
w1(j) = Empleados(j)
Next
For j = 1 To N - 1
For k = j + 1 To N
If (StrComp(w1(k).Nombres, w1(j).Nombres) < 0) Then
Aux = w1(k) : w1(k) = w1(j) : w1(j) = Aux
End If
Next
Next
For j = 1 To N
lstOrden.Items.Add(w1(j).Nombres & " " & w1(j).Categ & " " &
w1(j).Distrito & " " & w1(j).Salario)
Next
End Sub
Private Sub btnLimpiar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnLimpiar.Click
lstNombres.Items.Clear() : lstSalario.Items.Clear()
lstDistrito.Items.Clear() : lstCategoria.Items.Clear()
lstBDistrito.Items.Clear()
lstOrden.Items.Clear()
lblEstadisticas.Text = ""
txtNombres.Clear() : txtSalario.Clear()
txtNombres.Focus()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click
End

Laboratorio Nº 9 - ASC_UNI / Pag. 3


EC417 – Lenguaje de Programación II
Uso de ESTRUCTURAS

End Sub
End Class

Grabe la aplicación.
Ejecute usando los datos del archivo Empleados.xlsx

Ejemplo 2. Registro de información correspondiente a Documentos. Lectura,


Ordenación por Autor y Búsqueda por Area.
Nuestro proyecto está compuesto de un solo formulario, tal como se muestra en la
siguiente figura:

CODIFICACION de controles.
Public Class frmDocumentos
Structure Biblioteca
Dim Codigo As String, Tipo As String
Dim Autor As String, Titulo As String
Dim Idioma As String, As String
End Structure
Dim N As Integer
Dim Documento() As Biblioteca
Sub Pasar(k As Integer)
Dim i As Integer
For i = 1 To k

Laboratorio Nº 9 - ASC_UNI / Pag. 4


EC417 – Lenguaje de Programación II
ESTRUCTURAS en Visual STUDIO

Documento(i).Codigo = lstCodigo.Items.Item(i - 1)
Documento(i).Tipo = lstTipo.Items.Item(i - 1)
Documento(i).Autor = lstAutor.Items.Item(i - 1)
Documento(i).Titulo = lstTitulo.Items.Item(i - 1)
Documento(i).Idioma = lstIdioma.Items.Item(i - 1)
Documento(i).Area = lstArea.Items.Item(i - 1)
Next
End Sub
Private Sub btnIngresar_Click(sender As Object, e As EventArgs) Handles
btnIngresar.Click
lstCodigo.Items.Add(Trim(txtCodigo.Text))
lstTipo.Items.Add(cmbTipo.Text)
lstAutor.Items.Add(Trim(txtAutor.Text))
lstTitulo.Items.Add(Trim(txtTitulo.Text))
lstIdioma.Items.Add(cmbIdioma.Text)
lstArea.Items.Add(cmbArea.Text)
txtCodigo.Clear()
cmbTipo.SelectedIndex = -1
txtAutor.Clear()
txtTitulo.Clear()
cmbIdioma.SelectedIndex = -1
cmbArea.SelectedIndex = -1
txtCodigo.Focus()
End Sub
Private Sub btnOrdenar_Click(sender As Object, e As EventArgs) Handles
btnOrdenar.Click
Dim i As Integer, j As Integer, m As Integer
N = lstCodigo.Items.Count
ReDim Documento(N)
Pasar(N)
Dim w(N) As Biblioteca
For j = 1 To N
w(j) = Documento(j)
Next
For i = 1 To N - 1
m=i
For j = i + 1 To N
If (StrComp(w(j).Autor, w(m).Autor) < 0) Then m = j
Next
w(0) = w(m) : w(m) = w(i) : w(i) = w(0)
Next
lstResultado.Items.Clear()
For j = 1 To N
lstResultado.Items.Add(w(j).Codigo & " " & w(j).Autor & " " & w(j).Titulo)
Next
End Sub

Laboratorio Nº 9 - ASC_UNI / Pag. 5


EC417 – Lenguaje de Programación II
Uso de ESTRUCTURAS

Private Sub btnBuscar_Click(sender As Object, e As EventArgs) Handles


btnBuscar.Click
Dim Cadena As String, j As Integer
Cadena = InputBox("AREA de busqueda", "BUSQUEDAS")
N = lstCodigo.Items.Count
ReDim Documento(N)
Pasar(N)
lstResultado.Items.Clear()
Dim Ndoc As Integer = 0
For j = 1 To N
If (InStr(Documento(j).Area, Cadena) > 0) Then
Ndoc += 1
lstResultado.Items.Add(Documento(j).Codigo & " " & Documento(j).Autor &
" " & Documento(j).Titulo)
End If
Next
End Sub
Private Sub btnNuevo_Click(sender As Object, e As EventArgs) Handles
btnNuevo.Click
lstCodigo.Items.Clear() : lstTipo.Items.Clear()
lstAutor.Items.Clear() : lstTitulo.Items.Clear()
lstIdioma.Items.Clear() : lstArea.Items.Clear()
lstResultado.Items.Clear()
txtCodigo.Focus()
End Sub
Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles
btnSalir.Click
MsgBox("Hasta Pronto. Escuela de INGENIERIA ESTADISTICA - UNI")
End
End Sub
End Class

Laboratorio Nº 9 - ASC_UNI / Pag. 6

S-ar putea să vă placă și