Java - Ayuda con: arreglos y llenar arreglo con valores random.

 
Vista:

Ayuda con: arreglos y llenar arreglo con valores random.

Publicado por joni (3 intervenciones) el 03/10/2014 15:14:41
/*Hola amigos, necesito ayuda para completar mi codigo, la verdad me e perdido y ya no se que hacer, de antemano agradezco sus comentarios y anotaciones, saludos gracias.*/

/*Crea una clase que contenga un método principal. En el método principal crea un objeto
de tipo Subject para después mostrar el promedio y cada una de las las calificaciones*/
/*Se ingresa por teclado la cantidad de calificaciones a generar de manera aleatoria, se imprime el promedio de las calificaciones y las calificaciones generadas */

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class Subject {
 
// create an int array of length num, assign this array to grades!
    private int [] grds;
 
    public Subject (int[] s){
		grds = new int[s.length];
		for (int n = 0; n < s.length; n++){
			grds[n] = s[n];
		}
 
		for (int n = 0; n < s.length; n++){
			System.out.print(grds[n] + "-");
		}
		System.out.println("\n\n");
	}
 
 
 
    public int getGrades(){
    // Fill it with random numbers from 70 to 100!
    }
 
    public int getAverage() {
 
        // returns the average of all the grades!
 
 
    }
 
    public String toString() {
        String s = "";
        for (int n = 0; n < grades.length; n++ ){
        s += grades[n] + "\t";
        }
        return s;
    }
}




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.*;
class CreateSubject{
 
    public static void main(String[] args){
    int x;
    Scanner sc = new Scanner(System.in);
 
    System.out.println("Introduce la cantidad de calificaciones que quieres obtener: ");
        x = sc.nextInt();
 
        Subject [] subject = new Subject[x];
 
            for(int pos=0;pos<x;pos++){
            subject[pos].grades((int)(Math.random()*(100-70+1)+70);
            }
 
        System.out.println("Calificaciones: " + subject.getCalificaciones());
		System.out.println("Promedio" + subject.getAverage());
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 214
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con: arreglos y llenar arreglo con valores random.

Publicado por juanki (131 intervenciones) el 03/10/2014 17:34:46
¿Y el error es?

No olviden poner el error que obtienen.

De todas formas, mirando muy por encima el código (no lo he probado) me da que tienes el mismo problema que comenté a otro usuario en este mismo foro ayer:

http://www.lawebdelprogramador.com/foros/Java/1463200-Ayuda_con_arreglo_java.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No se como acomodarlo, si llevo una buena estructura o no.

Publicado por joni (3 intervenciones) el 03/10/2014 19:54:49
Estaria bien establecer los valores de las calificaciones en la clase de crear materia como lo hice?
En dado caso seria sobre lo que me comentaste:?

for(int pos=0;pos<x; pos++){
subject[pos].grades = new ((int)(Math.random()*(100-70+1)+70);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 214
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No se como acomodarlo, si llevo una buena estructura o no.

Publicado por juanki (131 intervenciones) el 04/10/2014 17:02:27
Lo que yo te quería decir es que, igual que le ocurría al otro usuario, has creado el array de Subject, pero no lo has inicializado, es decir, tienes un array de X posiciones, pero está vacío, así que cuando pones el bucle

1
2
3
for(int pos=0;pos<x; pos++) {
    subject[pos].grades = new ((int)(Math.random()*(100-70+1)+70);
}

imagino que te dará un error (NullPointerException), ya que estás tratando de acceder a un elemento que no existe.

Antes de ese bucle tienes que hacer otro parecido, pero que llene cada casilla del array con un objeto de la clase Subject, algo así:

1
2
3
for(int pos=0;pos<x; pos++) {
    subject[pos] = new Subject();
}

Como te dije, eso me pareció viéndolo por encima, no he probado tu código, no sé si hay más errores.

Pon los errores que te da el programa para que podamos ayudarte

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No se como acomodarlo, si llevo una buena estructura o no.

Publicado por joni (3 intervenciones) el 04/10/2014 22:47:16
ya lo tengo listo muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar