Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: aythor94 en 4 Septiembre 2009, 20:01 pm



Título: Nota media con calificacion
Publicado por: aythor94 en 4 Septiembre 2009, 20:01 pm
Hola!!!
Necesito ayuda sobre como insertar notas (del instituto) y que luego me de una nota media con un mensaje que diga, por ejemplo:
Si tengo un 10 --------- Eres un crack
Si tengo un 9----------- Te queda muy poco.

Y asi del 10 al 0, alguien tiene idea si esto se puede hacer en vb.net?

Es una inquietud que tengo desde hace ya vario tiempo, y me gustaria saber como se puede hacer.
Gracias de antemano,
Un salu2!!!

PD: Este mismo post lo abri en otra categoria, cierren el que puse en la otra y dejen este.
Gracias,
Un salu2!!!


Título: Re: Nota media con calificacion
Publicado por: Atrum en 4 Septiembre 2009, 20:12 pm
Con un select case se puede hacer algo asi, primero sacas la media y despues haces algo como

Select Case Media
    Case 10
        MessageBox.Show("Eres un crack")
    Case 9
        MessageBox.Show("Te queda muy poco")
    Case n
        'etc
    Case else
End Select


Título: Re: Nota media con calificacion
Publicado por: aythor94 en 4 Septiembre 2009, 20:17 pm
Hola!!!
Gracias por tu rapida respuesta, pero no se puede hacer de la forma que al hacer el calculo, aparezca en la pantalla, pero no como un mensaje flotante, si no que aparezca en un textbox?
Gracias de nuevo,
Un salu2!!!


Título: Re: Nota media con calificacion
Publicado por: Atrum en 4 Septiembre 2009, 20:24 pm
Pues eso seria asi:

Select Case Media
    Case 10
        TextBox1.Clear()
        TextBox1.Text= "Eres un crack"
    Case 9
        TextBox1.Clear()
        TextBox1.Text= "Te queda muy poco"
    Case n
        'etc
    Case else
End Select


Título: Re: Nota media con calificacion
Publicado por: Novlucker en 4 Septiembre 2009, 20:25 pm
Tienes tarea verdad? porque es el más que clásico ejercicio que le ponen a todo el mundo cuando comienzan con los condicionales :-X

Código
  1. Select Case Media
  2. Case 10
  3. textbox.Text = "Eres un crack"
  4. Case 9
  5. textbox.Text = "Te queda muy poco"
  6. Case n
  7. 'etc
  8. Case else
  9. End Select

Y ya, lo que preguntas esta en el primer capítulo de cualquier libro

Saludos

Ups ... ya lo había escrito, así que no lo iba a borrar XD


Título: Re: Nota media con calificacion
Publicado por: Atrum en 4 Septiembre 2009, 20:30 pm
el textBox.Clear() no es necesario, jeje  ;D el codigo de Novlucker es el correcto


Título: Re: Nota media con calificacion
Publicado por: aythor94 en 4 Septiembre 2009, 20:36 pm
Ok, un millon de gracias  :D
Pero tengo otra duda, quizas la que normalmente suelo tener casi siempre:
¿Como relaciono el resultado de la operacion con la cadena de calificacion?
Gracias,
Un salu2!!!


Título: Re: Nota media con calificacion
Publicado por: Novlucker en 4 Septiembre 2009, 20:41 pm
A que te refieres con "¿Como relaciono ..." ?
Se supone que la relación aparece cuando realizas el Select Case, Case 1, Case 2, Case 3, etc

De lo contrario puedes crear un diccionario y tener los "elementos asociados", pero el resto del código cambiaría (ya no sería un Select Case)

Saludos


Título: Re: Nota media con calificacion
Publicado por: aythor94 en 4 Septiembre 2009, 20:45 pm
Clero, yo me referia ha donde insertar esto.
Ahora se que va en la operación matemática que ponga, la verdad es que en este tema estoy dudoso, pero bueno, sera cuestion de leerse algunos tutoriales sobre el manejo un poco más avanzado del Vb.net
Gracias por todo,
Un salu2!!!


Título: Re: Nota media con calificacion
Publicado por: Atrum en 4 Septiembre 2009, 20:46 pm
Lo que te de la operacion lo guardas en la variable Media y asi ya esta relacionado

dim Media as Integer

Media = (cal1 + cal2 + cal3) /3

select case Media

etc...


Título: Re: Nota media con calificacion
Publicado por: Braayhaan en 4 Septiembre 2009, 20:47 pm
Tambien puedes usar if :P

Código
  1. If TextBox1.Text = "10" Then
  2. TextBox2.Text = "Eres un Crack"
  3.  
  4. ElseIf TextBox1.Text = "9" Then
  5. TextBox2.Text = "Te queda muy poco"
  6. End If

es mas largo pero creo que servira no?

Otra cosa:

Si quieres que solo se puedan ingresar numeros, entonces haz esto:

Primero crea 1 Modulo y en el codigo introduce esto:

Código
  1.   Function SoloNumeros(ByVal Keyascii As Short) As Short
  2.        If InStr("1234567890", Chr(Keyascii)) = 0 Then
  3.            SoloNumeros = 0
  4.        Else
  5.            SoloNumeros = Keyascii
  6.        End If
  7.        Select Case Keyascii
  8.            Case 8
  9.                SoloNumeros = Keyascii
  10.            Case 13
  11.                SoloNumeros = Keyascii
  12.        End Select
  13.    End Function

Esto va debajo de Form1:

Código
  1. Public Class Form1
  2.    Inherits System.Windows.Forms.Form
  3.    Public KeyAscii As Short

Ahora Pon en el Codigo de Tu TextBox, ve donde dice Declarations, y ponlo en el evento Keypress y pon esto;

Código
  1.        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
  2.        keyascii = CShort(SoloNumeros(keyascii))
  3.        If keyascii = 0 Then
  4.            e.Handled = True
  5.        End If

Saludos ;)


Título: Re: Nota media con calificacion
Publicado por: aythor94 en 4 Septiembre 2009, 21:12 pm
Tambien puedes usar if :P

Código
  1. If TextBox1.Text = "10" Then
  2. TextBox2.Text = "Eres un Crack"
  3.  
  4. ElseIf TextBox1.Text = "9" Then
  5. TextBox2.Text = "Te queda muy poco"
  6. End If

es mas largo pero creo que servira no?

Otra cosa:

Si quieres que solo se puedan ingresar numeros, entonces haz esto:

Primero crea 1 Modulo y en el codigo introduce esto:

Código
  1.   Function SoloNumeros(ByVal Keyascii As Short) As Short
  2.        If InStr("1234567890", Chr(Keyascii)) = 0 Then
  3.            SoloNumeros = 0
  4.        Else
  5.            SoloNumeros = Keyascii
  6.        End If
  7.        Select Case Keyascii
  8.            Case 8
  9.                SoloNumeros = Keyascii
  10.            Case 13
  11.                SoloNumeros = Keyascii
  12.        End Select
  13.    End Function

Esto va debajo de Form1:

Código
  1. Public Class Form1
  2.    Inherits System.Windows.Forms.Form
  3.    Public KeyAscii As Short

Ahora Pon en el Codigo de Tu TextBox, ve donde dice Declarations, y ponlo en el evento Keypress y pon esto;

Código
  1.        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
  2.        keyascii = CShort(SoloNumeros(keyascii))
  3.        If keyascii = 0 Then
  4.            e.Handled = True
  5.        End If

Saludos ;)

Hola!!!
Muchas gracias por tu ayuda y por la de todos, ahora mismo voy a poner manos a la obra.
Gracias,
Salu2!!!


Título: Re: Nota media con calificacion
Publicado por: Braayhaan en 4 Septiembre 2009, 21:13 pm
Tranquilop para eso estamos  ;D

y de paso te dejo el ejemplo con notas del 1 al 10  :xD

(http://i86.servimg.com/u/f86/11/66/25/27/califi10.png)

Descargar:

Programa (http://www.sendspace.com/file/z7nkfh)

Codigo Fuente (http://www.sendspace.com/file/kzsnwd)


Título: Re: Nota media con calificacion
Publicado por: aythor94 en 4 Septiembre 2009, 21:41 pm
Woooooowwww  :D
Muchisimas gracias tio por el programa y el codigo fuente, ahora entiendo muchisimo mejor el mecanismo del programa.
Un salu2!!!
 :) :)


Título: Re: Nota media con calificacion
Publicado por: aythor94 en 4 Septiembre 2009, 21:50 pm
Acabo de probar el proyecto, pero le podria asignar una opción de guardado?
Un salu2!!!


Título: Re: Nota media con calificacion
Publicado por: Braayhaan en 4 Septiembre 2009, 22:10 pm
Si pero yo el unico metodo de guardado que se es guardarlo en un .txt que es un texto normal, pero solo con RichTextBox no con TextBox Normal, a lo mejor los users de aca saben algo.

Con un RichTextBox para guardar seria, Añadir el SaveFileDialog y en el Codigo del Boton Guardar "Si es  que lo hay" poner esto:

Código
  1.  If SaveFileDialog1.ShowDialog = DialogResult.OK Then
  2.            RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)
  3.        End If
  4.        Form1.ActiveForm().Text() = "Guardado" + SaveFileDialog1.FileName

y para cargarlo o abrirlo ps, entonces agregar un OpenFileDialog y pones esto en el boton "Si es que lo hay":

Código
  1. If OpenFileDialog1.ShowDialog = DialogResult.OK Then
  2.            RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
  3.        End If
  4.       Form1.ActiveForm().Text() = "Abierto" + OpenFileDialog1.FileName

Salu2!


Título: Re: Nota media con calificacion
Publicado por: raul338 en 4 Septiembre 2009, 22:25 pm
un ricthtextbox para una nota simple?? D:

jajaja XD impresinonante cuantos mensajes me perdi mientras no estaba XD xD, pero supongo que aythor94 no tiene todos los promedios calculados, seria mejor un mini-programa que pida ingresar todas las notas y que al final aparezca el promedio y el texto "eres un crack" por ejemplo  ;) (ahora justo me voy a buscar a cierta persona, pero sino lo haria)


Título: Re: Nota media con calificacion
Publicado por: Braayhaan en 4 Septiembre 2009, 22:27 pm
si bueno raul lo que pasa es que yo tambien soy medio nuevo en esto y no se mas formas de guardar cosas jajajaja :xD

Edito_

No se han dado cuenta que casi nunca me desconecto? xD


Título: Re: Nota media con calificacion
Publicado por: raul338 en 4 Septiembre 2009, 22:30 pm
jajajaj xD, pon todo el contenido en un string, e importa el namespace System.IO
y usas

Código
  1. Dim sw As StreamWriter = File.CreateText(Application.StartupPath & "\notas.txt")
  2. sw.Write(nota)
  3. sw.Close()
  4. sw = Nothing

y listo ^^