Empezando en VB.Net

Iniciado por MK-Ultra, 19 Marzo 2009, 21:46 PM

0 Miembros y 1 Visitante están viendo este tema.

MK-Ultra

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:

Código (VB.NET) [Seleccionar]

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:



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!
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

Meta

¿Cómo hiciste el encuadre en negro del programa?

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

MK-Ultra

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
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

Mr. Crowley

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
Mi blog personal: www.calirojas.com

MK-Ultra

Podrías darme un ejemplo de como se puede "romper" ?

Thx ^^

PD: Argumenten por favor  ;D
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

43H4FH44H45H4CH49H56H45H

Seria bueno implementar try - catch para el manejo de errores.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

Meta

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

KJD

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
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???

BrokenWindow

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.


MK-Ultra

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
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ