Ejemplo de Objetos: uso de cola (Queue) y pila (Stack)

Comenzamos con un ejercicio de objetos. Hacer un programa para dar de alta un paciente cuando llega al médico (datos: nombre, NSS y hora de llegada). En otra zona del formulario, aparecen los datos del paciente y el médico le da al botón de “atender”. Los pacientes vienen en una cola (queue): el 1º en llegar será el 1º en ser atendido.

 

En el formulario:

 

Public Class Form1

 

    Private Cola As New Queue(Of Paciente)  '(Of Paciente) se puede evitar el ponerlo.

    'Contendrá sólo objetos de la clase Paciente.

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'Inserta un paciente en la cola de espera.

        Dim p As New Paciente(tbInsertarNombre.Text, tbInsertarNSS.Text, CDate(tbInsertarHora.Text))

        'Inserta al final de la cola.

        Cola.Enqueue(p)

 

        tbInsertarNombre.Clear() : tbInsertarNSS.Clear() : tbInsertarHora.Clear()

        tbInsertarNombre.Focus()

    End Sub

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        'Si la cola está vacía....

        If Cola.Count = 0 Then

            MsgBox("No hay pacientes para atender", MsgBoxStyle.Information, "Cola de espera")

            Exit Sub

        End If

        'Extrae al paciente al frente de la cola.

        Dim p As Paciente = Cola.Dequeue()

        'Vuelco los datos del paciente.

        tbAtenderNombre.Text = p.Nombre : tbAtenderNSS.Text = p.NSS : tbAtenderHora.Text = p.Horallegada

 

    End Sub

 

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        tbInsertarHora.Text = CStr(dtpHora.Value)

    End Sub

End Class

 

 

Como se puede ver, también hemos practicado con el DateTimePicker.

En el módulo, creamos la clase “Paciente” (similar a la clase “Persona” de otra ocasiones).

 

 

Otro ejemplo de cola. Esta vez… UNA PILA. Pondremos STACK en lugar de QUEUE.

 

Con respecto al ejercicio anterior, son éstos los cambios:

       Pila.Push(c)        ‘Push es quien inserta al pricipio de la pila.

 -----------------

Dim c As Contenedor = Pila.Pop()  'Extrae al contenedor del principio de la pila.

Comentarios

Aún no hay comentarios.

Añadir un Comentario:



Inserta aquí el código de verificación que ves en la imagen.

Acerca de paiou2011

Blog de aula

Suscríbete

RSS | Atom

Contacto

Contactar

Albergado en:blogspot.es

Noticias: Noticias