Sv Community El Salvador

Soporte y Tecnología => Programación => Java => Mensaje iniciado por: Willy59 en septiembre 06, 2015, 01:41:38 am

Título: Ayuda con estos metodos
Publicado por: Willy59 en septiembre 06, 2015, 01:41:38 am
Hola, tengo otro porblemita con programación, esta vez en JAVA!
Sucede que ahora estamos empezando a usar métodos y eso y básicamente le programa es para sacar el promedio de notas de un alumno y ver si aprobó o no.

Se nos pide que creemos un método, el que siempre se crea no! que creemos un objeto "AplicacionNotas" y luego llamar a otro método que es "registrarAlumno" en este método se ponen unos print y unos lectores para los datos del alumno y luego procedemos a otro método "ObtenerNotas" en el que solicitare y ingresar las 3 notas del alumno y por cada nota otro método "setNota1 hasta setNota3" luego me pide crear otro método para para el promedio "calcularPromedio" que lo obtendré de la otra clase y llamaría a "Alumnos.getPromedio" y por ultimo me piden otro método para verificar si aprobó o reprobó la materia con variable tipo boolean, este método se llamara "calcularResultadoFinal()"

Se me complica mucho esto de los métodos, se que esto es para tener todo mas ordenado y dividir cada cosa, pero me ahorraria todo este trabajo de hacerlo de un solo, o de seguir usando pseint   :rofl:

acá las imágenes:

esta es de la clase alumnos
(http://i.imgur.com/4zxX9ld.png)

Citar
package notas;


public class Alumnos {

    public String nombre_alu;
    public String password;
    public int codgi_alu;
    public double nota1;
    public double nota2;
    public double nota3;
    public double promedio;

   
    public Alumnos (String nom, String pass, int cod){
       
        this.nombre_alu = nom;
        this.password = pass;
        this.codgi_alu = cod;
       
    }

     public void setNota1(double n1){
         this.nota1 = n1; 
    }
     
     public void setNota2(double n2){
         this.nota1 = n2; 
    }
     
     public void setNota3(double n3){
         this.nota1 = n3; 
    }
   
    public double getPromedio(){
    this.promedio = (this.nota1*0.33)+(this.nota2*0.33)+(this.nota3*0.33);
    return promedio;
     
   
    }
   

       
     }


(http://i.imgur.com/jARFCxH.png)
(http://i.imgur.com/q25odhf.png)

Citar
package notas;
import java.util.Scanner;
import java.util.ArrayList;

public class Notas {
   Alumnos a1 = new Alumnos();
   
    public static void main(String[] args) {
       
       
        Notas app = new Notas();
        app.registrarAlumno();
        Scanner lector = new Scanner(System.in);
        int opcion = lector.nextInt();
        if(opcion ==87658765){
            System.out.println(" ");
            System.out.println("Introdusca el nombre del Alumno");
            app.a1.nombre_alu = lector.next();
            System.out.println("Introdusca del codigo del Alumno");
            app.a1.codgi_alu = lector.nextInt();
           
           
         }
    }

     public void registrarAlumno() {
        System.out.println("Ingrese la contraseña");
    }
   
    public void obtenerNotas() {
        System.out.println("1.Ingresar las notas del Alumno");
        Notas app = new Notas();
        app.setNota1();
        app.setNota2();
        app.setNota3();
        Scanner lector = new Scanner(System.in);
        double nota1 = lector.nextDouble();
        double nota2 = lector.nextDouble();
        double nota3 = lector.nextDouble();
       
    }
    public void setNota1() {
        System.out.println("Ingrese la segunda nota");
    }
    public void setNota2() {
        System.out.println("Ingrese la segunda nota");
    }
    public void setNota3() {
        System.out.println("Ingrese la tercera nota");
    }
   
    public void calcularPromedio() {
        Notas app = new Notas();
        double calcularPromedio = app.a1.getPromedio();
        System.out.println("Su promedio final es: " +app.a1.getPromedio());
       
        public void calcularResultadoFinal() {
            if(calcularPromedio >=6){
                System.out.println("tru");
                }else{
            System.out.println("false");
        }
    }
   
}

Título: Re:Ayuda con estos metodos
Publicado por: g00mba en septiembre 06, 2015, 10:58:42 am
te da la impresion de que es mas sencillo hacerlo con codigo secuencial porque... lo es. tu problema es demasiado sencillo como para verle la gracia de la POO. ahora, para hacerlo un poco mas ordenado, crea objetos que encapsulen los datos y genera getters y setters. hace modelos solo para eso y usalos para meter y sacar datos de los objetos.
Título: Re:Ayuda con estos metodos
Publicado por: Willy59 en septiembre 06, 2015, 04:26:08 pm
Ya pude solucionar los porblemas, pero aun me queda uno, en la clase Nota debo hacer que

Citar
public void obtenerNotas() {
        System.out.println("1.Ingresar las notas del Alumno");
        Notas app = new Notas();
        app.setNota1();
        app.setNota2();
        app.setNota3();   
       
    }
    public void setNota1() {
        Notas app = new Notas();
        System.out.println("Ingrese la primera nota");
        Scanner lector = new Scanner(System.in);
        double n1 = lector.nextDouble();
        app.a1.setNota1(n1);
    }
    public void setNota2() {
        Notas app = new Notas();
        System.out.println("Ingrese la primera nota");
        Scanner lector = new Scanner(System.in);
        double n2 = lector.nextDouble();
        app.a1.setNota2(n2);
    }
    public void setNota3() {
        Notas app = new Notas();
        System.out.println("Ingrese la primera nota");
        Scanner lector = new Scanner(System.in);
        double n3 = lector.nextDouble();
        app.a1.setNota3(n3);
    }

almacene los datos en la clase Alumnos:

Citar
public void setNota1(double n1){
         this.nota1 = n1; 
    }
     
     public void setNota2(double n2){
         this.nota1 = n2; 
    }
     
     public void setNota3(double n3){
         this.nota1 = n3; 
    }
   
    public double getPromedio(){
    this.promedio = (this.nota1*0.33)+(this.nota2*0.33)+(this.nota3*0.33);
    return promedio;

Para así dar paso a:
Citar
public void calcularPromedio() {
        Notas app = new Notas();
        double calcularPromedio = app.a1.promedio;
        System.out.println("Su promedio final es: " + app.a1.promedio);
       
       
            if(calcularPromedio >=6){
                System.out.println("tru");
                }else{
            System.out.println("false");
        }

Pero el problema es que el lector no lo almacena y por lo tanto siempre en promedio me da 0 y false
Título: Re:Ayuda con estos metodos
Publicado por: hkadejo en septiembre 07, 2015, 09:02:35 am
Cada vez que haces esto  Notas app = new Notas(); creas un nuevo objeto completamente independiente de los otros. Vos seteas valores en un lado y queres llamar los de otro. Entonces no te va a funcionar.
Título: Re:Ayuda con estos metodos
Publicado por: Non Servium en septiembre 07, 2015, 09:38:23 am
A parte que tenés que estudiar un poco sobre qué propiedades van donde en tus objetos "Alumnos" y "Notas"... personalmente pondría un ArrayList<Notas> en la clase alumnos pero bueno, realmente tendrías que aprovechar toda la funcionalidad que te da NetBeans... de hecho, declarar public las variables es otra falta grave en tu caso. Deberían ser private... Generalmente deben accederse por medio de getters y setters como sugiere g00mba y la clase main no debería ser la clase Notas