UNIVERSIDAD NACIONAL DE INGENIERIA Líder en Ciencia y Tecnología Sede Regional Estelí Docente: Enmanuel Fonseca Alfaro e-mail: [email protected] Web: http://www.tchefonsecalfaro.wordpress.com Curso: Programación II Objetivos de la guía: Uso adecuadamente las herramientas principales del lenguaje de programación. Utilizo las reglas para nombrar variables, constantes y funciones. Aplico adecuadamente palabras reservadas. Defino correctamente tipos de datos estándares Aplicada las técnicas de arreglos para la solución de problemas prácticos. I. Desarrolle el siguiente formulario Control Label Textbox Button Button Button Detalle de Formulario Propiedades Name Text ReadOnly Label1 Para digitalizar --los datos presione el botón Leer TxtDetalle True BtnLeer Leer --BtnAnalizar Analizar --BtnSalir Salir --- Multiline --True ------- Programación del Formulario Public Class FrmFacturacion Dim fact As Double Dim suma As Double Dim facturado As Boolean Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load facturado = True End Sub Private Sub Btnsalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnsalir.Click If MessageBox.Show("Desea realmente salir de la aplicación...", "Cerrar", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk) = Windows.Forms.DialogResult.Yes Then Me.Close() End If End Sub 2M1-IS Página 1 Private Sub BtnLeer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLeer.Click If facturado = True Then suma = 0 TxtDetalle.Text = "" Dim i As Integer = 0 For i = 1 To 5 myerror: Try fact = CDbl(InputBox("Control de factura " & i & ": ", "digitalizar facturas")) Catch ex As Exception MessageBox.Show("Ingrese un valor numerico", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) GoTo myerror End Try If fact < 0 Then MessageBox.Show("Ingrese un valor mayor o igual a cero", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) GoTo myerror End If suma = suma + fact Me.TxtDetalle.Text = Me.TxtDetalle.Text & "Factura " & i & "= " & fact & Chr(13) & Chr(10) Next facturado = False Else MessageBox.Show("Presione el boton Analizar...", "Sistema de facturación", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) End If End Sub Private Sub Btnanalizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnanalizar.Click If TxtDetalle.Text = "" Then MessageBox.Show("No hay datos que analizar...", "acción abortada ", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub ElseIf facturado = True Then MessageBox.Show("Esta tarea ya ha sido ejecutada...", "acción abortada ", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub End If MessageBox.Show("Resultado de la Facturacion " & suma, "La suma total de las Facturas es: ", MessageBoxButtons.OK, MessageBoxIcon.Information) Me.TxtDetalle.Text = Me.TxtDetalle.Text & "Factura Total= " & suma & Chr(13) & Chr(10) facturado = True End Sub End Class 2M1-IS Página 2 II. Diseñe el siguiente formulario Detalle de Formulario Propiedades Control name Text ComboBox CmbNombres Textbox TxtSitios Textbox TxtDpto Listbox LstNombres ListBox LstSitios ListBox LstDpto Public Class FrmDirecciones Dim Dim Dim Dim a(5) As String b(5) As String c(5) As String pos As Integer 'Arreglo 'Arreglo 'Arreglo 'Arreglo que que que que guarda guarda guarda guarda los Nombre los Sitios de Nicaragua los Departamentos de Nicaragua la Posición Actual Private Sub FrmDirecciones_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i As Short = 0 a(0) b(0) c(0) a(1) b(1) c(1) a(2) b(2) c(2) a(3) b(3) c(3) a(4) b(4) c(4) a(5) b(5) c(5) = = = = = = = = = = = = = = = = = = "Ericka" "Jardines de Varacruz" "Managua" "Maria" "Colonia Holanda" "Nueva Guinea" "Rosa" "Waspan" "Rama" "Giovanni" "Villa Flor Sur" "Managua" "Marlon" "Colonia Masaya" "Masaya" "Juan" "Cantro America" "Ciudad Sandino" 'Establecer valores en tiempo de Ejecucion. Me.CmbNombres.Text = "Nombres" Me.TxtSitios.Text = "Sitios" Me.TxtDpto.Text = "Departamento" 'Asigar los valores del Arreglo. For i = 0 To 4 Me.CmbNombres.Items.Add(i + 1 & ".-" & a(i)) Me.LstNombres.Items.Add(i + 1 & ".-" & a(i)) Me.LstSitios.Items.Add(i + 1 & ".-" & b(i)) Me.LstDpto.Items.Add(i + 1 & ".-" & c(i)) 2M1-IS Página 3 Next i End Sub Private Sub CmbNombres_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbNombres.SelectedIndexChanged LstNombres.SelectedIndex = CmbNombres.SelectedIndex End Sub Private Sub LstNombres_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LstNombres.SelectedIndexChanged CmbNombres.SelectedIndex = LstNombres.SelectedIndex MsgBox("Sr(a). " & a(LstNombres.SelectedIndex) & vbCrLf & _ "Residencia en: " & b(LstNombres.SelectedIndex) & vbCrLf & _ "Departamento de: " & c(LstNombres.SelectedIndex)) End Sub End Class 2M1-IS Control Label Name Label1 TextBox TxtDetalle Detalle de Formulario Propiedades Text ReadOnly Inventario de Medicinas Farmacia Nueva Vida --------True Página 4 Label Label2 Listado De Productos Mediante un Combo: ComboBox CmbProductos Label Label3 Producto Seleccionado en el Combo TextBox Label TxtProducto Label4 TextBox Label TxtPrecio Label5 TextBox Label TxtCantidad Label6 TextBox Button TxtCompra BtnSalir ------------------------True Valor Individual por Producto: --------True Total de Productos a Comprar: --------True Valor de la Compra: --------True Salir de la Aplicación --------- Public Class Form2 ' Este es Nombre de Productos Dim Nombre_Productos(0 To 5) As String Dim Precio_Productos(0 To 5) As Double Dim Cant_Pr As Short 'Arreglo que guarda el nombre del producto 'Arreglo que guarda el precio del producto Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim i As Short = 0 'Centinela de Control de Ciclo, para recorrido del Arreglo 'Inicializando los el Nombre_Productos(0) = Nombre_Productos(1) = Nombre_Productos(2) = Nombre_Productos(3) = Nombre_Productos(4) = Nombre_Productos(5) = Arreglo Nombre de productos "Amoxicilina" "Penisilina" "Antimicina" "Panadol" "Antigripal" "Dulce sueño" 'Precio de los Productos en la Farmacia Precio_Productos(0) = 2.5 Precio_Productos(1) = 3.5 Precio_Productos(2) = 7.5 Precio_Productos(3) = 5.5 Precio_Productos(4) = 8.5 Precio_Productos(5) = 3.5 'Ahora utilizar las Funciones que se habian explicado anteriormente, como es LBound y UBound For i = LBound(Nombre_Productos) To UBound(Nombre_Productos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno. Me.TxtDetalle.Text = Me.TxtDetalle.Text & " Nombre Medicina[" & i + 1 & "]=" & Nombre_Productos(i) & Chr(13) & Chr(10) Next 'Agregar Elementos al ComboBox1 Me.CmbProductos.Text = "Producto - Farmacia Nueva Vida" For i = LBound(Nombre_Productos) To UBound(Nombre_Productos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno. Me.CmbProductos.Items.Add(Nombre_Productos(i)) 2M1-IS Página 5 'En el caso del ComboBox1, es mediante la Propiedad Item.add es que se puede 'llegar a agregar elementos al Objeto. Next End Sub Private Sub BtnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSalir.Click End End Sub Private Sub CmbProductos_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbProductos.SelectedIndexChanged Dim p As Short = 0 ' Utilizado para guardar la posición del ComboBox1 y así identificar elemento. Dim Cad As String = " " ' Guarda la cadena actual en donde se hizo click en el ComboBox1. Dim compra As Double ' Guarda el valor de la Compra en la farmacia If Me.CmbProductos.SelectedIndex = -1 Then Exit Sub ' No selecciono ningun elemento. Else 'Seleccionar elemento actual en caso de hacer digitalizado en alguno p = Me.CmbProductos.SelectedIndex 'Mostrar el valor de la posición seleccionada MessageBox.Show("Valor de la Celda es: " & p, "Valor de la posición en el Combo Box", MessageBoxButtons.OK, MessageBoxIcon.Information) 'Ahora, controlar la cadena actual, el cual se refiere al elemento en el cual esta posicionado Cad = Me.CmbProductos.Text 'Asignar esa cadena al TextBox para visualizar el elemento. Me.TxtProducto.Text = Cad 'leer la cantidad de Productos a Comprar Cant_Pr = InputBox("Digitalizar la Cantidad de " & Cad & " a comprar: ", "Proporcine la cantidad a Comprar") 'realizar el calculo de la compra, en base a la seleccion hecha por el usuario compra = Precio_Productos(p) * Cant_Pr 'Valor del producto individual Me.TxtPrecio.Text = Precio_Productos(p) & " Por Unidad" 'Cantidad de Productos por Unidad Me.TxtCantidad.Text = Cant_Pr & " Unidades desea Comprar.!!!" 'valor total de la Compra Me.TxtCompra.Text = compra & " Valor Total de la Compra" End If End Sub End Class 2M1-IS Página 6