Sei sulla pagina 1di 4

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. El Porcentaje de usuarios que compraron boletos en la línea Aeropostal con destino a Margarita.
7. 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.
8. 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.

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:

'Declaración de variables compartidas


Dim ContAero As Integer, AcumNeto As Single, ContS As Integer, MenorNeto As Single, MenorNombre As String
Dim Nusuarios As Integer

Prof. Mery Pérez de Colombo / 2017


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

Private Sub Form_Load()


'Preparando la ventana inicial de la aplicación
FrameDatosCte.Visible = False
FramEstadisticas.Visible = False
FacturarCliente.Enabled = False
MostrarEstadisticas.Enabled = False
MenorNeto = 999999
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
OptCaracas.Value = True ' Fija selección
OptContado.Value = True ' Fija selección sobre Pago contado
FrameDatosCte.Visible = True ' Muestra Frame Datos del cliente
FramFactura.Visible = False ' Oculta Frame de los Montos
FramEstadisticas.Visible = False
ProcesarNuevoCte.Enabled = False ' Inhabilita Botón
FacturarCliente.Enabled = True ' Habilita Botón
MostrarEstadisticas.Enabled = False
Salir.Enabled = False
TxtNombre.SetFocus ' Fija cursor en caja de texto Nombre cliente
End Sub

Private Sub FacturarCliente_Click()


'Definiciòn de Variables
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
If TxtNombre.Text <> "" And Val(TxtEdad.Text) > 0 And Val(ComboMes.Text) > 0 Then 'validar ingreso
correcto de datos de entrada
If OptCaracas.Value = True Then 'Para fijar el Precio del Boleto segun destino
PrecioBoleto = PVPCaracas
ElseIf OptSanCristobal.Value = True Then
PrecioBoleto = PVPSanCristobal
Else
PrecioBoleto = PVPMargarita
End If
If TxtEdad.Text < 13 Then 'Para determinar el descuento por edad
DesctoEdad = PrecioBoleto * 20 / 100
ElseIf TxtEdad.Text > 65 Then
DesctoEdad = PrecioBoleto * 50 / 100
Else

Prof. Mery Pérez de Colombo / 2017


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

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 Val(ComboMes.Text) = 11 Or Val(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 Val(ComboMes.Text) >= 4 And Val(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 Val(ComboMes.Text) <= 6 Then
DesctoLinea = PrecioBoleto * 2.5 / 100
Else
DesctoLinea = 0
End If
End If
DescTotal = DesctoEdad + DesctoLinea 'Para determinar el Descuento Total
If OptTarjeta.Value = True Then 'Si es pago por tarjeta
IncremPago = PrecioBoleto * 2 / 100
Else
IncremPago = 0
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
FramFactura.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 Val(ComboMes.Text) >= 4 And Val(ComboMes.Text) <= 6 Then
AcumNeto = AcumNeto + Neto
ContS = ContS + 1
End If
End If

Prof. Mery Pérez de Colombo / 2017


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

'Determinar menor monto neto en Linea Aserca, Destino Caracas


If OptAserca.Value = True And OptCaracas.Value = True And (Val(ComboMes.Text) = 5 Or
Val(ComboMes.Text) = 6) Then
If Neto < MenorNeto Then
MenorNeto = Neto
MenorNombre = TxtNombre.Text
End If
End If
ProcesarNuevoCte.Enabled = True
FacturarCliente.Enabled = False
MostrarEstadisticas.Enabled = True
Salir.Enabled = True
Else
MsgBox "Debe ingresar todos los datos", vbInformation ' Caja de mensaje
End If
End Sub

Private Sub MostrarEstadisticas_Click()


Dim PorcentA As Single, PromNeto As Single
FramEstadisticas.Visible = True
List1.Clear Al ejecutar la aplicación y procesar varios
If Nusuarios > 0 Then usuarios, puede hacer clic sobre el botón
PorcentA = ContAero * 100 / Nusuarios 'Porcentaje de usuarios Mostrar Estadísticas, observará una
en Línea Aeropostal, Destino Margarita ventana similar, donde se muestra los
Else resultados de las estadísticas requeridas:
PorcentA = 0
End If
Private
If ContS Sub Salir_Click()
> 0 Then
End
PromNeto = AcumNeto / ContS
Else End Sub
PromNeto = 0
End If
List1.AddItem "El Porcentaje de usuarios en Linea Aeropostal,
Después de "haber
destino Margarita= procesado
& PorcentA uno o más usuarios,
& "%"
List1.AddItem "Promedio montos netos en línea Sta Bárbara a San
Cristóbal= " & PromNeto
If MenorNeto <> 999999 Then
List1.AddItem "El Cliente : " & MenorNombre & " tiene el
menor neto en linea Aserca a Caracas = " & MenorNeto
Else
List1.AddItem "No Hay Clientes con viaje a Caracas por Linea
Aserca"
End If
End Sub

Prof. Mery Pérez de Colombo / 2017


Pag. Nro. 4

Potrebbero piacerti anche