Eventos y Arreglos

Anuncio
UNIVERSIDAD FEMENINA DEL SAGRADO CORAZÓN
FACULTAD DE INGENIERIA DE SISTEMAS
Curso : Taller de Computación
Tema : “Eventos y Arreglos”
Profesora :
Gladys Hortencia, Garcia Vilcapoma
Alumnas:
Pastor Humpiri, Fanny Rosana
2006-1
Problema 1: Construir un problema usando eventos
Los eventos usados en este problema son: TextChanged, LostFocus, GotFocus, Load,
MouseEnter, MouseDown, MouseLeave.
Imports System.Drawing.Image
Public Class Form1
Inherits System.Windows.Forms.Form
Const pi = 3.1416
Private Sub TxtMasa_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtMasa.TextChanged
Me.TxtDensidad.Text = (Val(Me.TxtMasa.Text)) / (pi * (Val(Me.TxtDiam.Text) / 2) ^ 2 *
Val(Me.TxtLong.Text))
End Sub
Private Sub TxtDiam_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtDiam.TextChanged
Me.TxtDensidad.Text = Math.Round((Val(Me.TxtMasa.Text)) / (pi * (Val(Me.TxtDiam.Text)
/ 2) ^ 2 * Val(Me.TxtLong.Text)))
End Sub
Private Sub TxtLong_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtLong.TextChanged
Me.TxtDensidad.Text = Math.Round((Val(Me.TxtMasa.Text)) / (pi * (Val(Me.TxtDiam.Text)
/ 2) ^ 2 * Val(Me.TxtLong.Text)))
End Sub
Private Sub TxtDensidad_LostFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtDensidad.LostFocus
Me.BackColor = Color.Empty
End Sub
Private Sub TxtDensidad_GotFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtDensidad.GotFocus
Me.BackColor = Color.Beige
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Me.BackColor = Color.Aqua
End Sub
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
Me.BackColor = Color.Chocolate
End Sub
Private Sub BtnAlum_MouseEnter(ByVal sender As Object, ByVal e As
System.EventArgs) Handles BtnAlum.MouseEnter
Me.TxtMasa.Text = 51.5
Me.TxtDiam.Text = 2.52
Me.TxtLong.Text = 3.75
Me.TxtDensidad.Text = 3
End Sub
Private Sub BtnCobre_MouseEnter(ByVal sender As Object, ByVal e As
System.EventArgs) Handles BtnCobre.MouseEnter
Me.TxtMasa.Text = 56.3
Me.TxtDiam.Text = 1.23
Me.TxtLong.Text = 5.06
Me.TxtDensidad.Text = 9
End Sub
Private Sub BtnEst_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs)
Handles BtnEst.MouseEnter
Me.TxtMasa.Text = 69.1
Me.TxtDiam.Text = 1.75
Me.TxtLong.Text = 3.74
Me.TxtDensidad.Text = 8
End Sub
Private Sub TxtDensidad_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtDensidad.TextChanged
If Val(TxtDensidad.Text) = 3 Then
Me.PicSustancia.Image = FromFile(Application.StartupPath & "\" & "aluminio.jpg")
ElseIf Val(TxtDensidad.Text) = 9 Then
Me.PicSustancia.Image = FromFile(Application.StartupPath & "\" & "cobre.jpg")
ElseIf Val(TxtDensidad.Text) = 8 Then
Me.PicSustancia.Image = FromFile(Application.StartupPath & "\" & "estaño.jpg")
End If
End Sub
Private Sub BtnAlum_MouseLeave(ByVal sender As Object, ByVal e As
System.EventArgs) Handles BtnAlum.MouseLeave
Me.PicSustancia.Image = Nothing
End Sub
Private Sub BtnCobre_MouseLeave(ByVal sender As Object, ByVal e As
System.EventArgs) Handles BtnCobre.MouseLeave
Me.PicSustancia.Image = Nothing
End Sub
Private Sub BtnEst_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs)
Handles BtnEst.MouseLeave
Me.PicSustancia.Image = Nothing
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Me.TxtMasa.Clear()
Me.TxtDiam.Clear()
Me.TxtLong.Clear()
Me.TxtDensidad.Clear()
End Sub
End Class
Problema 2. En una biblioteca de una Universidad, se registran los libros por codigo, titulo,
autor, area, canlibros, editorial y Año de Edición. Calcular el total de libros. Mostrar los nombres
de las areas que tienen menos libros. Obtenga los codigos y titulos de los libros que tienen más
de 10 años de antigüedad. Mostrar en orden creciente según autor. Actualizar la cantidad de
libros.
Public Class Form1
Inherits System.Windows.Forms.Form
Dim Codigo() As Integer = {1, 2, 3, 4, 5, 6}
Dim Titulo() As String = {"Filosofia", "Ecologia", "Biologia",
"Geometria Analitica", "Psicologia", "Java"}
Dim Autor() As String = {"Stepman", "Chester", "Gubman", "Lehman",
"Downsted", "Wess"}
Dim Area() As String = {"Humanidades", "Humanidades", "Ciencias",
"Ciencias", "Ciencias", "Ciencias"}
Dim AEdicion() As Integer = {1996, 2000, 2003, 2001, 1979, 1995}
Dim CanLibros(6) As Integer
Dim i, Total, conth, contc As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
conth = 0
contc = 0
For i = 0 To Codigo.Length - 1
ListBox1.Items.Add(Codigo(i))
ListBox2.Items.Add(Titulo(i))
ListBox3.Items.Add(Autor(i))
ListBox4.Items.Add(Area(i))
If Area(i) = "Humanidades" Then
conth = conth + 1
ElseIf Area(i) = "Ciencias" Then
contc = contc + 1
End If
ListBox6.Items.Add(AEdicion(i))
Next
Me.TxtHuman.Text = conth
Me.TxtCiencias.Text = contc
End Sub
Private Sub BtnIngresar_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles BtnIngresar.Click
Total = 0
For i = 0 To Codigo.Length - 1 Step 1
CanLibros(i) = Val(InputBox("Ingresando Cantidad de
libros" & i + 1 & ":"))
Me.ListBox5.Items.Add(CanLibros(i))
Total = Total + CanLibros(i)
Next i
Me.TxtTotal.Text = Total
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button4.Click
Me.Close()
End Sub
Private Sub BtnLimpiar_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles BtnLimpiar.Click
Me.ListBox5.Items.Clear()
Me.TxtTotal.Clear()
End Sub
Private Sub BtnAutor_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles BtnAutor.Click
Me.ListBox1.Items.Clear()
Me.ListBox2.Items.Clear()
Me.ListBox3.Items.Clear()
Me.ListBox4.Items.Clear()
Me.ListBox5.Items.Clear()
Me.ListBox6.Items.Clear()
Dim i, j, k As Integer
Dim aux As Integer
Dim auxn As String
For k = 0 To Codigo.Length - 2
For j = 0 To Codigo.Length - 2 - k
If Autor(j) > Autor(j + 1) Then
aux = Codigo(j)
Codigo(j) = Codigo(j + 1)
Codigo(j + 1) = aux
auxn = Titulo(j)
Titulo(j) = Titulo(j + 1)
Titulo(j + 1) = auxn
auxn = Autor(j)
Autor(j) = Autor(j + 1)
Autor(j + 1) = auxn
auxn = Area(j)
Area(j) = Area(j + 1)
Area(j + 1) = auxn
aux = CanLibros(j)
CanLibros(j) = CanLibros(j + 1)
CanLibros(j + 1) = aux
aux = AEdicion(j)
AEdicion(j) = AEdicion(j + 1)
AEdicion(j + 1) = aux
End If
Next
Next
For i = 0 To Codigo.Length - 1
ListBox1.Items.Add(Codigo(i))
ListBox2.Items.Add(Titulo(i))
ListBox3.Items.Add(Autor(i))
ListBox4.Items.Add(Area(i))
ListBox5.Items.Add(CanLibros(i))
ListBox6.Items.Add(AEdicion(i))
Next
End Sub
Private Sub btnAnt_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnAnt.Click
Dim dif As Integer
Const año = 2006
For i = 0 To Codigo.Length - 1
dif = año - AEdicion(i)
If dif >= 10 Then
ListBox7.Items.Add(Autor(i))
ListBox8.Items.Add(Titulo(i))
End If
Next
End Sub
End Class
Problema 3: Los Resultados de las últimas elecciones a alcalde en el pueblo x han sido los
siguientes:
Distrito
Candidato Candidato Candidato Candidato
A
B
C
D
1
194
48
206
45
2
180
20
320
16
3
221
90
140
20
4
432
50
821
14
5
820
61
946
18
Escribir un programa que haga las siguientes tareas:
a) Imprimir la tabla anterior con cabeceras incluidas
b) Calcular e imprimir el número total de votos recibidos por cada candidato y el
porcentaje del total de votos emitidos. Asimismo, visualizar el candidato más votado.
c) Si algún candidato recibe más del 50 por 100 de los votos, el programa imprimirá un
mensaje declarándolo ganador
d) Si ningún candidato recibe más del 50 por 100 de los votos el programa debe imprimir
el nombre de los dos candidatos más votados, que serán los que pasen a la segunda
ronda de las elecciones.
Public Class Form1
Inherits System.Windows.Forms.Form
Dim distrito() As Integer = {1, 2, 3, 4, 5}
Dim A() As Integer = {194, 180, 221, 432, 820}
Dim B() As Integer = {48, 20, 90, 50, 61}
Dim C() As Integer = {206, 320, 140, 821, 946}
Dim D() As Integer = {45, 16, 20, 14, 18}
Dim i, conta, contb, contc, contd As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
For i = 0 To distrito.Length - 1
ListBox1.Items.Add(distrito(i))
ListBox2.Items.Add(A(i))
ListBox3.Items.Add(B(i))
ListBox4.Items.Add(C(i))
ListBox5.Items.Add(D(i))
Next
End Sub
Private Sub BtnCalcular_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles BtnCalcular.Click
conta = 0
contb = 0
contc = 0
contd = 0
Dim total As Integer
Dim cinc As Single
For i = 0 To distrito.Length - 1
conta = conta + A(i)
contb = contb + B(i)
contc = contc + C(i)
contd = contd + D(i)
Next
Me.TxtTotA.Text = conta
Me.TxtTotB.Text = contb
Me.TxtTotC.Text = contc
Me.TxtTotD.Text = contd
total = conta + contb + contc + contd
cinc = total * 0.5
If conta > cinc And contb > cinc And contc > cinc And contd >
cinc Then
Me.LblMostrar.Text = "HABRA NUEVAS ELECCIONES"
End If
If conta > cinc And contb > cinc Then
Me.LblMostrar.Text = "CANDIDATO A y CANDIDATO B PASAN A
SEGUNDA VUELTA"
End If
If conta > cinc And contc > cinc Then
Me.LblMostrar.Text = "CANDIDATO A y CANDIDATO C PASAN A
SEGUNDA VUELTA"
End If
If conta > cinc And contd > cinc Then
Me.LblMostrar.Text = "CANDIDATO A y CANDIDATO D PASAN A
SEGUNDA VUELTA"
End If
If contb > cinc And contc > cinc Then
Me.LblMostrar.Text = "CANDIDATO B y CANDIDATO C PASAN A
SEGUNDA VUELTA"
End If
If contb > cinc And contd > cinc Then
Me.LblMostrar.Text = "CANDIDATO B y CANDIDATO D PASAN A
SEGUNDA VUELTA"
End If
If contc > cinc And contd > cinc Then
Me.LblMostrar.Text = "CANDIDATO C y CANDIDATO D PASAN A
SEGUNDA VUELTA"
End If
If conta > cinc Then
Me.LblMostrar.Text = "CANDIDATO A GANADOR DE LAS
ELECCIONES"
ElseIf contb > cinc Then
Me.LblMostrar.Text = "CANDIDATO B GANADOR DE LAS
ELECCIONES"
ElseIf contc > cinc Then
Me.LblMostrar.Text = "CANDIDATO C GANADOR DE LAS
ELECCIONES"
ElseIf contd > cinc Then
Me.LblMostrar.Text = "CANDIDATO D GANADOR DE LAS
ELECCIONES"
Else
Me.LblMostrar.Text = "HABRA NUEVAS ELECCIONES"
End If
End Sub
Private Sub BtnSalir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles BtnSalir.Click
Me.Close()
End Sub
End Class
SEGUNDA PARTE DEL TRABAJO
Enunciado: Hacer una aplicación para transporte terrestre, donde se seleccione una ruta
de pasaje, y muestre el destino y el origen, y se pueda escoger si es Pasaje o
encomienda, ademas la cantidad a seleccionar por un combobox. Y el Precio de venta
total, sera la cantidad por el precio.
Dim PKG, PBOL As Single
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RB1.CheckedChanged
LBUNI.Text = "BOLETO"
LBPRE.Text = PBOL.ToString
End Sub
‘ Si selecciona pasaje, entonces el textbox unidad, mostrara “boleto” y en el textbox precio
mostrara el ‘precio del boleto. ToString convierte a cadena el numero que esta en PBOL
Private Sub RB2_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RB2.CheckedChanged
LBUNI.Text = "KILOGRAMOS"
LBPRE.Text = PKG.ToString
End Sub
‘ Si selecciona pasaje, entonces el textbox unidad, mostrara “kilogramos” y en el textbox precio
mostrara el ‘precio del boleto.
Private Sub LB1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles LB1.SelectedIndexChanged
Dim I As Integer
I = LB1.SelectedIndex + 1
Select Case I
Case 1, 2, 4, 9
PBOL = 80 : PKG = 5 : LBOR.Text = "LIMA" : LBDES.Text = "TACNA"
Case 3, 6
PBOL = 70 : PKG = 4.5 : LBOR.Text = "LIMA" : LBDES.Text = "TUMBES"
Case 5, 7
PBOL = 90 : PKG = 5.5 : LBOR.Text = "LIMA" : LBDES.Text = "PUNO"
Case 8, 10
PBOL = 30 : PKG = 3 : LBOR.Text = "LIMA" : LBDES.Text = "ICA"
End Select
End Sub
‘ da valores a pbol, que es el precio de boleto, pkg precio en kilogramos, y lbor que es origen y
lbdes que es destino
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim CAN As Integer
CAN = Val(ComboBox1.Text)
LBVEN.Text = Val(LBPRE.Text) * CAN
End Sub
Problema: Hacer una aplicacion de una tienda de artefactos, donde se seleccione
mediante una lista los artefactos, y salga el precio al contado, al credito y un obsequio.
Luego seleccionando a cuantos meses desea pagar, calcule la cuota inicial, el saldo y la
cuota mensual.
Dim PRECIO() As Single = {300, 450, 700, 850, 900, 1500, 200}
Private Sub LB1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles LB1.SelectedIndexChanged
Dim I As Integer
I = LB1.SelectedIndex
Select Case PRECIO(I)
Case 100 To 300
LBO.Text = "CUCHILLO ELECTRICO"
Me.LblPCre.Text = 400
Case 301 To 600
LBO.Text = "WODMAN PHILIPS"
Me.LblPCre.Text = 700
Case 601 To 1000
LBO.Text = "TOSTADORA"
Me.LblPCre.Text = 1200
Case 1001 To 1600
LBO.Text = "RADIO CASETERA"
Me.LblPCre.Text = 1800
Case 1600 To 1800
LBO.Text = "SECADORA"
Me.LblPCre.Text = 1900
End Select
LBPREA.Text = PRECIO(I).ToString
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
If Me.rbn6.Checked Then
Me.LblCuoIni.Text = Me.LblPCre.Text * 0.5
ElseIf Me.rbn12.Checked Then
Me.LblCuoIni.Text = Me.LblPCre.Text * 0.4
Else
Me.LblCuoIni.Text = Me.LblPCre.Text * 0.3
End If
Me.LblSaldo.Text = Me.LblPCre.Text - Me.LblCuoIni.Text
If Me.rbn6.Checked Then
Me.LblCuoMen.Text = Me.LblSaldo.Text / 6
ElseIf Me.rbn12.Checked Then
Me.LblCuoMen.Text = Me.LblSaldo.Text / 12
Else
Me.LblCuoMen.Text = Me.LblSaldo.Text / 18
End If
End Sub
Problema: Presentar una aplicación donde se muestre la hora actual, el dia de hoy, el
mes actual, la hora actual, usando las propiedades: now, today, today.tolongdatestring,
today.day, today.dayofweek, Today.DayOfWeek.ToString, TimeOfDay
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
'LA PROPIEDAD NOW NOS DEVUELVE LA FECHA ACTUAL. Y la hora
'ESTA PROPIEDAD PERTENECE A LA ESTRUCTURA DE DATETIME
TextBox1.Text = Now
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
TextBox2.Text = Today
‘Devuelve solo la fecha: dia/mes/año en numero
End Sub
Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Button3.Click
TextBox3.Text = Today.ToLongDateString
‘Devuelve la fecha actual pero en letras ejemplo: Viernes, 26 de Mayo ‘ de 2006
End Sub
Private Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Button4.Click
TextBox4.Text = Today.Day
‘ solo muestra el dia de hoy, en numero.
End Sub
Private Sub Button5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Button5.Click
TextBox5.Text = Today.DayOfWeek
‘ muestra el mes de hoy, en numero
End Sub
Private Sub Button6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Button6.Click
TextBox6.Text = Today.DayOfWeek.ToString
‘ muestra el dia de la semana, de hoy en cadena
End Sub
Private Sub Button7_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Button7.Click
'HACE QUE TE MUESTRE LA HORA
TextBox7.Text = TimeOfDay
End Sub
Problema: Crear una aplicación, donde ingresando su dni, y seleccionando si es persona
normal o juridica, aparezca su número de RUC.
Private Sub BTNGENERAR_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNGENERAR.Click
Dim RUC, ELE, CAR As String
Dim A, R, SM As Integer
'ELE toma el valor de la caja de texto
ELE = TXTEL.Text
'Si se ha elegido un tipo
If RBJ.Checked Then
RUC = "12"
ElseIf RBN.Checked Then
RUC = "10"
Else
MsgBox("ELIJA UN TIPO")
End If
'Concatena ELE con el RUC por la izquierda
RUC = RUC & ELE
SM = 0
'Suma los digitos de la ELE
For A = 1 To Len(ELE)
CAR = Mid(ELE, A, 1)
SM = SM + Val(CAR)
Next
'Coge el resto de dividir entre 10
R = SM Mod 10
'Concatena por la derecha con el digito R
RUC = RUC & R
LBRUC.Text = RUC
End Sub
'valida elnumero ingresado por teclado
Private Sub TXTEL_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles
TXTEL.Validated
' si el text de TxtEL no es numerico o su longitud es diferente de 8
If Not IsNumeric(TXTEL.Text) Or Len(TXTEL.Text) <> 8 Then
MsgBox("INGRESE SOLO # Y LONGITUD 8")
' selecciona una porcion de texto
TXTEL.Select()
End If
End Sub
Problema: Crear una aplicacion donde se ingrese nombre y apellidos materno y paterno,
y genera el numero de registro del carnet de asegurado
Dim NUMERO As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles BTNACEPTAR.Click
Dim FE As Date
Dim CAD1, CAD2, CAD3, CAD4, CAD, SEXO, APP, AMM, NOM As String
Dim D, M, Y As Integer
'Lo convierte a Fecha
FE = CDate(TextBox4.Text)
'Establece el formato asi Año/Mes/Dia
CAD = Format(FE, "yyMMdd")
‘Format establece valor de una cadena a una variable
If RBM.Checked Then
SEXO = "1"
End If
If RBF.Checked Then
SEXO = "0"
End If
NOM = TextBox1.Text
If Len(NOM) >= 4 Then
‘ len es la longitud de la cadena
CAD3 = Mid(NOM, 1, 1) & Mid(NOM, 4, 1)
Else
CAD3 = Mid(NOM, 1, 1) & Mid(NOM, 2, 1)
End If
AMM = TextBox3.Text
If Len(AMM) >= 4 Then
CAD2 = Mid(AMM, 1, 1) & Mid(AMM, 4, 1)
Else
‘ Mid pasa a una variable los valores de cadena recortados
CAD2 = Mid(AMM, 1, 1) & Mid(AMM, 2, 1)
End If
APP = TextBox2.Text
If Len(APP) >= 4 Then
CAD1 = Mid(APP, 1, 1) & Mid(APP, 4, 1)
Else
CAD1 = Mid(APP, 1, 1) & Mid(APP, 2, 1)
End If
' CAD4 = Format(NUMERO, "000")
LBSEG.Text = UCase(CAD & SEXO & CAD1 & CAD2 & CAD3 & "000")
‘ UCase convierte a mayuscula lo que esta en minusculas
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles BTNUEVO.Click
NUMERO = NUMERO + 1
Label7.Text = Format(NUMERO, "000")
End Sub
Descargar