Sei sulla pagina 1di 6

UNIVERSIDAD CENTROCCIDENTAL

“LISANDRO ALVARADO”
DECANATO DE INGENIERIA CIVIL

Programación I

Ejercicio práctico de Visual Basic con manejo de objetos frames

El Aeropuerto de Barquisimeto desea automatizar el Sistema de Ventas de Boletos. Para ello se


requiere leer los siguientes datos de N usuarios: Nombre del usuario, Edad, Línea aérea (Aserca,
Aeropostal, Santa Bárbara), Destino (Caracas, Margarita, San Cristóbal), Tipo de Pago (Al Contado,
Tarjeta de Crédito) y Mes de compra del boleto.

Destino Precio del Boleto (Bs.)


Caracas 4500,00
San Cristóbal 3600,00
Margarita 6900,00

Además se ofrece al público las siguientes políticas:


a.- Por Edad:
- Si el usuario es mayor de 65 años recibe un descuento del 50% sobre precio del boleto. Si
el usuario es menor de 13 años recibe un descuento del 20% sobre precio del boleto.
b.- Por Línea Aérea
Aserca:
- Si el destino es San Cristóbal y compra el boleto en los meses de noviembre y diciembre,
tiene un descuento de 8.5% sobre el precio del boleto.
Aeropostal:
- Si el destino es Caracas y compra el boleto en el segundo trimestre del año, tiene un
descuento de 4.5% sobre el precio del boleto.
Santa Bárbara:
- Para los destinos Margarita o San Cristóbal en el primer semestre del año, tiene un
descuento de 2.5% sobre el precio del boleto.
c.- Por Tipo de Pago:
- Si el pago es con Tarjeta de Crédito recibirá un incremento del 2% sobre el precio del
boleto.
Diseñe una aplicación en Visual Basic que permita calcular y mostrar en objetos apropiados:
1. Precio del Boleto por usuario.
2. Monto de los descuentos y el Total de descuentos por usuario.
3. Monto de Incremento por tipo de pago.
4. Monto IVA.
5. Monto neto a pagar.
6. ( Mostrar las siguientes estadísticas en un segundo formulario)
7. El Porcentaje de usuarios que compraron boletos en la línea Aeropostal con destino a
Margarita.
8. El Promedio de los montos netos para usuarios que compraron boletos en la línea Santa
Bárbara con destino a San Cristóbal, durante segundo trimestre del año.
9. El Cliente con el menor monto neto en usuario a la línea Aserca con destino a Caracas en
los meses de mayo y junio, con su correspondiente monto.

Prof. Mery Pérez de Colombo / Abril-2017


Pag. Nro. 1
UNIVERSIDAD CENTROCCIDENTAL
“LISANDRO ALVARADO”
DECANATO DE INGENIERIA CIVIL

SOLUCIÓN
1.- Insertar los objetos tal como se muestran en la
siguiente ventana de Formulario (Form1).
2.- Insertar en la ventana de código del Formulario1, el
siguiente código:

Private Sub Form_Load()


'Preparando la ventana inicial de la aplicación
Label1.Caption = "Aeropuerto de Barquisimeto"
FrameDatosCte.Visible = False ' Oculta Frame
FacturarCliente.Enabled = False 'Inhabilita botón
MostrarEstadisticas.Enabled = False 'Inhabilita botón
MenorNeto = 99999
End Sub

Private Sub MostrarEstadisticas_Click()


Form1.Hide
Form2.Show
End Sub

Private Sub ProcesarNuevoCte_Click()


'Proced. que muestra la ventana de ingreso de datos para nuevo cliente
TxtNombre.Text = "" 'Limpia caja de texto
TxtEdad.Text = "" : TxtPrecioBoleto.Text = ""
TxtDesctoEdad.Text = "" : TxtDesctoLinea.Text = ""
TxtDescTotal.Text = "" : TxtIncremPago = ""
TxtIVA.Text = "" : TxtNeto.Text = ""
OptAeropostal.Value = True ' Fija selección sobre Aerolinea Aeropostal
OptCaracas.Value = True ' Fija selección sobre destino Caracas
OptContado.Value = True ' Fija selección sobre Pago contado
FrameDatosCte.Visible = True ' Muestra Frame Datos del cliente
FrameMontos.Visible = False ' Oculta Frame de los Montos
ProcesarNuevoCte.Enabled = False ' Inhabilita Botón
FacturarCliente.Enabled = True ' Habilita Botón
MostrarEstadisticas.Enabled = True
Salir.Enabled = False
TxtNombre.SetFocus ' Fija cursor en caja de texto Nombre cliente
End Sub

Private Sub FacturarCliente_Click()


'Definiciòn de Variables locales
Dim PrecioBoleto As Single, MontoPago As Single
Dim DesctoEdad As Single, DesctoLinea As Single, DescTotal As Single
Dim IncremPago As Single, IVA As Single, Neto As Single
'Definición de constantes
Const PVPCaracas As Single = 4500, PVPSanCristobal As Single = 3600, PVPMargarita As Single =
6900
Prof. Mery Pérez de Colombo / Abril-2017
Pag. Nro. 2
UNIVERSIDAD CENTROCCIDENTAL
“LISANDRO ALVARADO”
DECANATO DE INGENIERIA CIVIL

If TxtNombre.Text <> "" And (TxtEdad.Text) > 0 And (ComboMes.Text) > 0 Then 'validar ingreso
correcto de datos de entrada
'Para fijar el Precio del Boleto segun destino
If OptCaracas.Value = True Then
PrecioBoleto = PVPCaracas
ElseIf OptSanCristobal.Value = True Then
PrecioBoleto = PVPSanCristobal
Else
PrecioBoleto = PVPMargarita
End If
'Para determinar el descuento por edad
If TxtEdad.Text < 13 Then
DesctoEdad = PrecioBoleto * 20 / 100
ElseIf TxtEdad.Text > 65 Then
DesctoEdad = PrecioBoleto * 50 / 100
Else
DesctoEdad = 0
End If
'Para determinar el descuento por Linea Aerea
If OptAserca.Value = True Then 'Si el botón seleccionado es Aserca
If OptSanCristobal.Value = True And ComboMes.Text = 11 Or ComboMes.Text = 12 Then
DesctoLinea = PrecioBoleto * 8.5 / 100
Else
DesctoLinea = 0
End If
ElseIf OptAeropostal.Value = True Then 'Si el botón seleccionado es Aeropostal
If OptCaracas.Value = True And ComboMes.Text >= 4 And ComboMes.Text <= 6 Then
DesctoLinea = PrecioBoleto * 4.5 / 100
Else
DesctoLinea = 0
End If
ElseIf OptSantaBarbara.Value = True Then 'Si el botón seleccionado es Santa Barbara
If OptSanCristobal.Value = True Or OptMargarita.Value = True And ComboMes.Text <= 6 Then
DesctoLinea = PrecioBoleto * 2.5 / 100
Else
DesctoLinea = 0
End If
End If
'Para determinar el Descuento Total
DescTotal = DesctoEdad + DesctoLinea
'Para determinar el monto de incremento por tipo de pago
If OptTarjeta.Value = True Then 'Si es pago por tarjeta
IncremPago = PrecioBoleto * 2 / 100
Else
IncremPago = 0

Prof. Mery Pérez de Colombo / Abril-2017


Pag. Nro. 3
UNIVERSIDAD CENTROCCIDENTAL
“LISANDRO ALVARADO”
DECANATO DE INGENIERIA CIVIL

End If
MontoPago = PrecioBoleto - DescTotal + IncremPago 'Determinar el monto total a pagar
IVA = MontoPago * 12 / 100 'Cálculo del IVA
Neto = MontoPago + IVA 'Cálculo del monto neto
TxtPrecioBoleto.Text = PrecioBoleto 'Guarda PrecioBoleto en caja de texto
TxtDesctoEdad.Text = DesctoEdad 'Guarda Descuento Edad en caja de texto
TxtDesctoLinea.Text = DesctoLinea
TxtDescTotal.Text = DescTotal
TxtIncremPago.Text = IncremPago
TxtIVA.Text = IVA
TxtNeto.Text = Neto
FrameMontos.Visible = True 'Muestra el frame de los montos
'Calculo de las estadisticas
Nusuarios = Nusuarios + 1
'Determinar cantidad de usuarios en Linea Aeropostal, Destino Margarita
If OptAeropostal.Value = True And OptMargarita.Value = True Then
ContAero = ContAero + 1
End If
If OptSantaBarbara.Value = True And OptSanCristobal.Value = True Then
If ComboMes.Text >= 4 And ComboMes.Text <= 6 Then
AcumNeto = AcumNeto + Neto
ContS = ContS + 1
End If
End If
'Determinar menor monto neto en Linea Aserca, Destino Caracas
If OptAserca.Value = True And OptCaracas.Value = True And (ComboMes.Text = 5 Or
ComboMes.Text = 6) Then
If Neto < MenorNeto Then
MenorNeto = Neto
MenorNombre = TxtNombre.Text
End If
End If
ProcesarNuevoCte.Enabled = True 'Habilita el botòn
FacturarCliente.Enabled = False: Salir.Enabled = True 'Inhabilita botón Facturar
Else
MsgBox "Debe ingresar todos los datos", vbInformation
' Caja de mensaje
End If
End Sub
Private Sub Salir_Click()
End
End Sub

3.- Inserte un segundo Formulario (Form2), haciendo clic en la


opción Proyecto del menú principal y luego hacer clic en la
opción Agregar Formulario, luego hacer clic en la opción Abrir.

Prof. Mery Pérez de Colombo / Abril-2017


Pag. Nro. 4
UNIVERSIDAD CENTROCCIDENTAL
“LISANDRO ALVARADO”
DECANATO DE INGENIERIA CIVIL

Posteriormente, insertar los siguientes objetos, tal como se muestra en la ventana del Form2.

4.- Inserte en la ventana de código del Form2, las siguientes instrucciones:

Private Sub Form_Load()


Label1.Caption = "Resultados de las Estadísticas"
End Sub

Private Sub MostrarEstadisticas_Click()


Dim PorcentA As Single, PromNeto As Single
List1.Clear
'Porcentaje de usuarios en Línea Aeropostal, Destino Margarita
If Nusuarios > 0 Then
PorcentA = ContAero * 100 / Nusuarios
Else
PorcentA = 0
End If
If ContS > 0 Then
PromNeto = AcumNeto / ContS
Else
PromNeto = 0
End If
List1.AddItem "El Porcentaje de usuarios en Linea Aeropostal, destino Margarita: " & PorcentA & "%"
List1.AddItem "Promedio montos netos en línea Sta Bárbara a San Cristóbal: " & PromNeto
List1.AddItem "El Cliente : " & MenorNombre & " tiene el menor neto en linea Aserca a Caracas =" &
MenorNeto
End Sub

Private Sub Regresar_Click()


Form2.Hide
Form1.Show
End Sub

5.- Inserte un módulo de datos, haciendo clic en la opción Proyecto del menú principal y luego hacer clic
en la opción Agregar Módulo, luego hacer clic en la opción Abrir. Luego definir en este módulo las
variables que son públicas, las cuales se utilizan en los dos formularios.
'Declaraciòn de variables públicas
Public ContAero As Integer, AcumNeto As Single, ContS As Integer, Nusuarios As Integer
Public MenorNeto As Single, MenorNombre As String

6.- Al ejecutar la aplicación, observará la ventana inicial del proyecto, como se muestra.

Prof. Mery Pérez de Colombo / Abril-2017


Pag. Nro. 5
UNIVERSIDAD CENTROCCIDENTAL
“LISANDRO ALVARADO”
DECANATO DE INGENIERIA CIVIL

Hacer clic sobre el botón Procesar Nuevo Cliente, y


observará la ventana siguiente, ingrese los datos de
entrada. Al hacer clic sobre el botón Facturar,
observará la siguiente ventana:

Luego haga clic de nuevo sobre el botón Procesar


Nuevo Cliente, e ingrese los datos de entrada como se
indica a continuación. Al hacer clic sobre el botón
Facturar, observará la siguiente ventana:

Después de haber procesado varios usuarios con


datos cualquiera, y luego de hacer clic sobre el
botón Mostrar Estadísticas, observará la
siguiente ventana, donde se muestra los
resultados de las estadísticas requeridas:

Prof. Mery Pérez de Colombo / Abril-2017


Pag. Nro. 6

Potrebbero piacerti anche