Java - Por que me tira error en este proyecto?

   
Vista:

Por que me tira error en este proyecto?

Publicado por tiago (21 intervenciones) el 24/02/2014 22:22:18
el error me lo tira cuando los arreglos llegan a la capacidad que le estoy dando cuando inicializo int tamaño; por mas que le este incrementando 1

desde ya gracias ;)


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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import java.util.*;
public class Alumno {
 
	private double promedio;
	public int tamaño = 1;
	public int next = 0;
	public int x;
	public String[] nombre = new String[tamaño];
	public String[] apellido = new String [tamaño];
	public String[] edad = new String[tamaño];
	public String[] legajo = new String [tamaño];
	public int[][] notas = new int [5][tamaño];
 
 
 
	public void setX(int x) {
		this.x = x;
	}
	public double getPromedio() {
		return promedio;
	}
	public void setPromedio(int promedio) {
		this.promedio = promedio;
	}
 
 
	Scanner sc = new Scanner(System.in);
 
	public void guardarAlumno(){
 
 
		System.out.println("nombre");
		nombre[next] = sc.next();
		System.out.println("apellido");
		apellido [next] = sc.next();
		System.out.println("edad");
		edad [next] = sc.next();
		System.out.println("legajo");
		legajo [next] = sc.next();
		System.out.println("nota matematicas");
		notas[0][next] = sc.nextInt();
		System.out.println("nota lengua");
		notas[1][next]= sc.nextInt();
		System.out.println("nota geografia");
		notas[2][next] = sc.nextInt();
		System.out.println("nota historia");
		notas[3][next] = sc.nextInt();
		System.out.println("nota computacion");
		notas[4][next] = sc.nextInt();
 
		next++;
		tamaño++;
 
 
 
	}
 
	public void calcularPromedio(){
		promedio = (notas[0][x] + notas[1][x] + notas[2][x] + notas[3][x]
				+ notas[4][x])/5;
 
	}
 
	public void verListAlumnos(){
		for(x=0; x<next; x++){
			System.out.println(x + " " + nombre[x] + " " + apellido[x]);
		}
	}
 
}
 
 
 
 
 
 
 
import java.util.*;
public class Main {
 
 
	public static void main(String[] args) {
 
		Alumno alumno = new Alumno();
		Scanner sc = new Scanner(System.in);
		boolean menu = true;
		int elegirMenu = 1;
 
		while(menu){
 
			System.out.println("1 para guardar alumno: ");
			System.out.println("2 para ver promedio de alumno ");
			System.out.println("3 para ver lista y pocision de alumno ");
			System.out.println("4 para salir ");
 
			elegirMenu = sc.nextInt();
		switch(elegirMenu){
 
		case 1:
 
			alumno.guardarAlumno();
			menu=true;
			break;
 
		case 2:
 
			System.out.println("ingrese la posicion del alumno para ver su promedio: ");
 
			alumno.setX(sc.nextInt());
			alumno.calcularPromedio();
			System.out.println("el promedio de " + alumno.apellido[alumno.x] +
					" " + alumno.nombre[alumno.x] + "es: " + "" + alumno.getPromedio());
			menu=true;
			break;
 
		case 3:
 
			alumno.verListAlumnos();
			menu = true;
			break;
 
		case 4:
 
			System.out.println("has salido del programa");
			menu = false;
			break;
 
		default:
 
			System.out.println("no has ingresado una opcion correcta");
			menu=true;
 
		}
		}
	}
}
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

Por que me tira error en este proyecto?

Publicado por UnoPorAhi (128 intervenciones) el 25/02/2014 09:13:26
Buenas,

Lo unico que estas haciendo es aumentar el valor de la variable tamano.

Los arrays son estructuras estaticas. Una vez reservas memoria para ellos, ya no se puede cambiar.


Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

Por que me tira error en este proyecto?

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 25/02/2014 16:20:19
Hola,
Puedes utilizar la clase java.util.ArrayList;
http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html
Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Por que me tira error en este proyecto?

Publicado por tiago (21 intervenciones) el 25/02/2014 18:58:03
pero si los guardo en un ArrayList como haria para guardar las notas (en el ejercicio decia que si o si tenia que estar guardadas en un arreglo) ?
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

Por que me tira error en este proyecto?

Publicado por tiago (21 intervenciones) el 25/02/2014 18:59:40
y hay alguna forma de que el tamaño de los vectores se vallan aumentando? o que no tenga un tamaño indefinido para poder agregarles x cantidad de alumnos?
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

Por que me tira error en este proyecto?

Publicado por UnoPorAhi (128 intervenciones) el 25/02/2014 19:55:38
Cada vez que quieras que aumente de tamaño tienes que crear un array nuevo de mayor tamaño y añadirle los valores ya existentes en el antiguo, así como el nuevo a insertar (grosso modo es el mecanismo que utiliza ArrayList internamente para ser dinámico)
No tienes que ir aumentando el array cada vez. Puedes darle un tamaño inicial y cuando se alcance lo duplicas, por ejemplo.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

Por que me tira error en este proyecto?

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 25/02/2014 22:08:54
Hola,
Viendo tu programa, creo que no tiene el enfoque correcto. Debes de tener en cuenta que una de las grandes ventajas de Java es que se puede orientar todo a objetos, de esta manera tenemos que un alumno es un objeto ,las materias otro objeto (propiedad del alumno) y las notas otro objeto (propiedad de la materia). De esta manera se tiene que en la clase alumno debe representar un alumno. ¿Que propiedades tiene un alumno? Pues el nombre, apellido, un Array de materias y listo. he aquí tu primer error, pues tu clase se llama alumno pero dentro tiene metodos (acciones) que no son de un alumno y propiedades que no van de acuerdo. Te dejo otro enfoque en el adjunto.
Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Por que me tira error en este proyecto?

Publicado por tiago (21 intervenciones) el 26/02/2014 04:03:38
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

Por que me tira error en este proyecto?

Publicado por tiago (21 intervenciones) el 26/02/2014 05:52:32
no entiendo la parte de los for (alumno a : Alumno) y for (materia m : Materia)
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
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

Por que me tira error en este proyecto?

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 26/02/2014 15:02:44
Hola,
Esto
1
2
3
4
List <String> vector=getVector();
for(String a:vector){
   mostrar(a);
}
es equivalente a esto:
1
2
3
4
5
List <String> vector=getVector();
for(int i=0; i<vector.size(); i++){
  String a= vector.get(i);
  mostrar(a);
}
Esto es una capacidad relativamente nueva de JAVA.
Un saludo, ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Por que me tira error en este proyecto?

Publicado por tiago (21 intervenciones) el 26/02/2014 20:55:26
a ahora entiendo.

lo simplifica un monton al for.


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