Título: Empezando en VB.Net
Publicado por: MK-Ultra en 19 Marzo 2009, 21:46 pm
Recién hoy estoy empezando con .NET en el colegio, y la profesora nos pidió de hacer una calculadora, aca les dejo la que hice yo, les pido POR FAVOR que la critiquen ;D (Con criticar me refiero solo a criticas constructivas, y hagan el favor de argumentar :rolleyes:) Code: Public Class Form1 Dim Num1, Num2 As Integer Dim Resultado As Single Dim numeros(9) As Short Private Sub btnmas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnmas.Click Dim comp1 As String = txtnum1.Text Dim comp2 As String = txtnum2.Text If comp1 = "" Or comp2 = "" Then MessageBox.Show("Hay que completar los cuadros de texto con los dígitos del 0 al 9 antes de elegir el operador", "Error") Else Num1 = Convert.ToInt32(txtnum1.Text) Num2 = Convert.ToInt32(txtnum2.Text) Resultado = Num1 + Num2 txtresultado.Text = Convert.ToSingle(Resultado) End If End Sub Private Sub btnmenos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnmenos.Click Dim comp1 As String = txtnum1.Text Dim comp2 As String = txtnum2.Text If comp1 = "" Or comp2 = "" Then MessageBox.Show("Hay que completar los cuadros de texto con los dígitos del 0 al 9 antes de elegir el operador", "Error") Else Num1 = Convert.ToInt32(txtnum1.Text) Num2 = Convert.ToInt32(txtnum2.Text) Resultado = Num1 - Num2 txtresultado.Text = Convert.ToSingle(Resultado) End If End Sub Private Sub btnpor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnpor.Click Dim comp1 As String = txtnum1.Text Dim comp2 As String = txtnum2.Text If comp1 = "" Or comp2 = "" Then MessageBox.Show("Hay que completar los cuadros de texto con los dígitos del 0 al 9 antes de elegir el operador", "Error") Else Num1 = Convert.ToInt32(txtnum1.Text) Num2 = Convert.ToInt32(txtnum2.Text) Resultado = Num1 * Num2 txtresultado.Text = Convert.ToSingle(Resultado) End If End Sub Private Sub btndiv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndiv.Click Dim comp1 As String = txtnum1.Text Dim comp2 As String = txtnum2.Text If comp1 = "" Or comp2 = "" Then MessageBox.Show("Hay que completar los cuadros de texto con los dígitos del 0 al 9 antes de elegir el operador", "Error") Else Num1 = Convert.ToInt32(txtnum1.Text) Num2 = Convert.ToInt32(txtnum2.Text) Resultado = Num1 / Num2 txtresultado.Text = Convert.ToSingle(Resultado) End If End Sub Private Sub btnclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnclear.Click txtnum1.Clear() txtnum2.Clear() txtresultado.Clear() End Sub Private Sub txtnum1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtnum1.KeyPress If e.KeyChar.IsDigit(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Else e.Handled = True MessageBox.Show("Solo dígitos del 0 al 9 =P", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Sub Private Sub txtnum2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtnum2.KeyPress If e.KeyChar.IsDigit(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Else e.Handled = True MessageBox.Show("Solo dígitos del 0 al 9 =P", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Sub End Class
Imagen: (http://img4.imageshack.us/img4/4103/calc.png) Ah, una cosa más, la profesora nos dijo que iba a intentar "romperla", hay otra medida de seguridad aparte de validar los textboxs que se pueda implementar? Saludos!
Título: Re: Empezando en VB.Net
Publicado por: Meta en 19 Marzo 2009, 22:15 pm
¿Cómo hiciste el encuadre en negro del programa?
(http://img4.imageshack.us/img4/4103/calc.png)
Título: Re: Empezando en VB.Net
Publicado por: MK-Ultra en 19 Marzo 2009, 22:41 pm
En paint :xD
Para, vos te referis al del Form o al de la imagen?
Si es del Form, es que tengo ese style del xp, por lo que los programas se ven así en mi PC ;D
Título: Re: Empezando en VB.Net
Publicado por: Mr. Crowley en 20 Marzo 2009, 00:03 am
Hola ^Arkangel^. A mi parecer la calculadora esta muy facil de "romper"... Verifique si los valores ingresados son numericos, puede hacerlo como lo muestro en este ejemplo: Private Sub btnBoton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBoton.Click If IsNumeric(Me.txtNumero.Text) Then MsgBox("El valor es numerico :)", MsgBoxStyle.Information) Else MsgBox("Introduzca un valor valido :(", MsgBoxStyle.Critical) End If End Sub
Saludos ;D
Título: Re: Empezando en VB.Net
Publicado por: MK-Ultra en 20 Marzo 2009, 01:06 am
Podrías darme un ejemplo de como se puede "romper" ?
Thx ^^
PD: Argumenten por favor ;D
Título: Re: Empezando en VB.Net
Publicado por: 43H4FH44H45H4CH49H56H45H en 20 Marzo 2009, 03:39 am
Seria bueno implementar try - catch para el manejo de errores.
Título: Re: Empezando en VB.Net
Publicado por: Meta en 20 Marzo 2009, 04:13 am
Hola:
Se refiere a esto: http://msdn.microsoft.com/es-es/library/0yd65esw.aspx
Saludo.
Título: Re: Empezando en VB.Net
Publicado por: KJD en 20 Marzo 2009, 15:44 pm
Mis observaciones, linda interfaz, aunque la haria mas chica, usa solo un textbox que por defecto tenga el valor 0, como dicen los companieros del foro valida si solo acepta numeros, y por las dudas pon un try catch en las funciones de suma resta etc y no se como pero valida si se usa mas de un punto decimal como 2.2.3 por ejemplo que esta mal.
Saludos
Título: Re: Empezando en VB.Net
Publicado por: BrokenWindow en 20 Marzo 2009, 16:00 pm
Usa try en las conversiones, nunca esperes que el usuario ingrese lo que tiene que ingresar. Try Num1 = Convert.ToInt32(txtnum1.Text) Num2 = Convert.ToInt32(txtnum2.Text) Resultado = Num1 + Num2 txtresultado.Text = Convert.ToSingle(Resultado) Catch ex As Exception messagebox.show("Error!") End Try
Aunque ya cubres ese error en KeyPress es mejor prevenir.
Título: Re: Empezando en VB.Net
Publicado por: MK-Ultra en 20 Marzo 2009, 21:36 pm
Gracias por las aclaraciones, ya se lo mostré a la prof. y me dió un par de cosas en las que trabajar, ahora cuando recupere el pendrive les muestro como quedó el code ;D
|