Sei sulla pagina 1di 6

EC417 Lenguaje de Programación II ESTRUCTURAS en Visual STUDIO

Lenguaje de Programación II ESTRUCTURAS en Visual STUDIO Laboratorio N° 9. Uso de REGISTROS Estructuras en
Laboratorio N° 9. Uso de REGISTROS Estructuras en Visual Basic Ejemplo 1. Registro de información
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

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
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

Lenguaje de Programación II ESTRUCTURAS en Visual STUDIO For j = 1 To N If (InStr(Empleados(j).Categ,
For j = 1 To N If (InStr(Empleados(j).Categ, C) > 0) Then SumSalario += Empleados(j).Salario
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 & "
Next
End Sub
" & w1(j).Salario)
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

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
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

Lenguaje de Programación II ESTRUCTURAS en Visual STUDIO Documento(i).Codigo = lstCodigo.Items.Item(i - 1)
Documento(i).Codigo = lstCodigo.Items.Item(i - 1) Documento(i).Tipo = lstTipo.Items.Item(i - 1) Documento(i).Autor =
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 & "
Next
End Sub
" & w(j).Autor & "
" & w(j).Titulo)

Laboratorio Nº 9

-

ASC_UNI / Pag. 5

EC417 – Lenguaje de Programación II Uso de ESTRUCTURAS Private Sub btnBuscar_Click(sender As Object, e

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
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