0 votos
por (220 puntos) en Java
hola a todos, me piden que haga este programa que describo acontnuacion pero soy novato aun y no se como resolverlo, gracias de antemano.

Desarrollar una clase llamada Asignatura que:

-    Tenga dos atributos private de tipo int (el identificador) y de tipo double (la calificación).

-    Tenga un constructor con un parámetro de tipo int.

-    Tenga un getter para cada uno de los atributos.

-    Tenga un setter para la calificación.

Desarrollar una clase llamada Alumno que:

-    Tenga tres atributos private de tipo Asignatura.

-    Tenga un constructor con tres parámetros de tipo Asignatura que inicialice los tres atributos.

-    Tenga un constructor con tres parámetros de tipo int que inicialice los tres atributos.

-    Tenga un getter para cada uno de los atributos.

Desarrollar una clase llamada Profesor que:

-    Tenga un método ponerNotas que recibe un parámetro de tipo Alumno y que no devuelve nada. Pondrá una calificación aleatoria a cada una de las asignaturas del alumno.

-    Tenga un método calcularMedia que recibe un parámetro de tipo Alumno y devuelve un double.

Desarrollar una clase llamada Actividad1 que en su método main:

-    Cree e inicialice tres Asignaturas.

-    Cree un Alumno con las tres Asignaturas.

-    Cree un Profesor que le ponga calificaciones al Alumno y muestre por pantalla la media del Alumno.

Nota: Para calcular un número aleatorio usaremos Math.random() que devuelve un double entre 0.0 y 1.0


9 Respuestas

0 votos
por (8.5k puntos)
Buenas,

La duda es directamente crear una clase? lo que es un atributo? un constructor? me parece dudas muy muy muy básicas...

Empieza por el principio:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/


0 votos
por (220 puntos)
mi duda son los atributos de Asignatura en la clase Alumno que no eniendo como se usan ni como tratarla. gracias


0 votos
por (220 puntos)
me explico mejor porque creo que no dejo claro lo que no entiendo del ejercicio:

se que es una clase un constructor y como funcionan pero mi problema viene con los atributos conplejos como sería en este caso :

private Asignatura sociales;

private Asignatura lengua;

private Asignatura programacion;

 ese es mi problema que no se como se trata o que contiene esos atributos ni como usarlos en el programa con lo que queria que alguien me indicara como hacer el programa paraver como se usan ese tipo de atributos complejos y variables complejas

gracias a todos


0 votos
por (8.5k puntos)
Sigo creyendo que tienes que repasar lo básico de como crear una clase, etc. No me gusta pegar código directamente, pero bueno, aquí tienes un ejemplo de las clases Alumno y Asignatura, espero que te sirva:

Clase Asignatura


public class Asignatura {

    private int id;
    private double calificacion;

    public Asignatura(int id) {
        super();
        this.id = id;
    }
    public int getId() {
        return id;
    }
    public double getCalificacion() {
        return calificacion;
    }
    public void setId(int id) {
        this.id = id;
    }
    public void setCalificacion(double calificacion) {
        this.calificacion = calificacion;
    }

}

Clase Alumno


public class Alumno {

    private Asignatura sociales;
    private Asignatura lengua;
    private Asignatura programacion;

    public Alumno(Asignatura sociales, Asignatura lengua,
            Asignatura programacion) {
        super();
        this.sociales = sociales;
        this.lengua = lengua;
        this.programacion = programacion;
    }
    public Alumno(int idSociales, int idLengua,
            int idProgramacion) {
        super();
        this.sociales = new Asignatura(idSociales);
        this.lengua = new Asignatura(idLengua);;
        this.programacion = new Asignatura(idProgramacion);;
    }
    public Asignatura getSociales() {
        return sociales;
    }
    public Asignatura getLengua() {
        return lengua;
    }
    public Asignatura getProgramacion() {
        return programacion;
    }
    public void setSociales(Asignatura sociales) {
        this.sociales = sociales;
    }
    public void setLengua(Asignatura lengua) {
        this.lengua = lengua;
    }
    public void setProgramacion(Asignatura programacion) {
        this.programacion = programacion;
    }
}

0 votos
por (220 puntos)
gracias por el código, lo estudiare bien y ya os contaré como me va y si a alguno le interesa cuando tenga terminada la aplicación la dejo por aquí si os es de interes

GRacias Torres


0 votos
por (8.5k puntos)
De nada,

Si tienes alguna duda del código o en tus avances, dila sin problema. La clase Profesor ,que es la que te queda, es la que tiene algo mas de "problema", estas dos solo era las clases y sus atributos, en Profesor tiene que meter algo de cálculo, pero no es complicado.


0 votos
por (220 puntos)
bueno solucionado aunque fijo que se puede mejorar el codigo y sobre todo limpiar pero os dejo la clase profesor para que veais como sería mas o menos

public class Profesor {

        public void ponerNotas(Alumno x) {

            x.getCiencias().setCalificacion(Math.random()*10);

            x.getHistoria().setCalificacion(Math.random()*10);

            x.getProgramacion().setCalificacion(Math.random()*10);

        }

        public double calcularMedia(Alumno x) {

            double nota1 = x.getCiencias().getCalificacion();

            double nota2 = x.getHistoria().getCalificacion();

            double nota3 = x.getProgramacion().getCalificacion();

            double media = (nota1 + nota2 + nota3) / 3;

            return media;

        }

}

y la clase main se quedaria asi:

public class Actividadprueba1 {

    public static void main(String[] args) {

        Asignatura asignatura1 = new Asignatura(1);

        Asignatura asignatura2 = new Asignatura(2);

        Asignatura asignatura3 = new Asignatura(3);

        Alumno alumno = new Alumno(asignatura1, asignatura2, asignatura3);

        Profesor profesor = new Profesor();

        profesor.ponerNotas(alumno);

        System.out.println("Media: " + profesor.calcularMedia(alumno));

    }

}


0 votos
por (220 puntos)
ahora tengo el siguiente enunciado:

Desarrollar una clase llamada Motor que:

-    Tenga dos atributos private de tipo int (litros de aceite) y de tipo int (CV).

-    Tenga un constructor con un parámetro de tipo int para los CV. Los litros de aceite por defecto serán 0.

-    Tenga un getter para cada uno de los atributos.

-    Tenga un setter para los litros.

Desarrollar una clase llamada Coche que:

-    Tenga un atributo private de tipo Motor, un atributo de tipo String (marca), otro de tipo String (modelo) y otro de tipo double con el precio acumulado con las averías.

-    Tenga un constructor con dos parámetros de tipo String que inicialice la marca y el modelo.

-    Tenga un getter para cada uno de los atributos.

-    Un método acumularAveria que incrementará el importe gastado en averías.

Desarrollar una clase llamada Garaje que:

-    Tendrá tres atributos, un coche, un String con la avería asociada y el número de coches que ha ido atendiendo.

-    El garaje solo podrá atender a un coche en cada momento. Controlar esta premisa.

-    Tenga un método aceptarCoche que recibe un parámetro de tipo Coche y la avería asociada. El garaje solo podrá atender a un coche en cada momento. Si ya esta atendiendo uno, que devuelva un false.

-     Tenga un método devolverCoche que dejara al garaje en estado de aceptar un nuevo coche.

Desarrollar una clase llamada Actividad2 que en su método main:

-    Cree un garaje.

-    Cree 2 coches.

-    El garaje irá cogiendo los coches y devolviéndolos, acumulando un importe aleatorio (Math.random()) de la avería tratada.

-    Si la avería del coche es "aceite" incrementar en 10 los litros de aceite.

-    Los coches entrarán al menos 2 veces en el garaje.

-    Mostrar la información de los coches al final del main.

la clase motor y coche esta lista pero no se como seguir en la de garage, por mas que me reeleo los apuntes, el libro y alguna cosa que otra de internet creo que no lo pillo, agradecería alguna señal de por donde seguir


0 votos
por (8.5k puntos)
Buenas,

varias cosas:

- Como te indica el foro cuando escribes un mensaje, si quieres incluir código fuente utiliza la siguiente estructura en el comentario:

http://www.dudasprogramacion.com/topic/ayuda-foro-como-poner-codigo-fuente

- Yo crearía un nuevo asunto con la nueva duda, cada cosa en su sitio.

- Que es lo que no "pillas" de la clase Garaje?


Preguntas relacionadas

0 votos
1 respuesta
preguntado por Gustavo (20 puntos) Ene 28, 2016 en Java
0 votos
0 respuestas
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...