
12/10/2009, 18:28
|
| | Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 15 años, 6 meses Puntos: 0 | |
Respuesta: Ayuda con un problema!!! pues hasta aurita, como no pudimos hacer lo del arreglo de objetos dentro de otro arreglo de objetos cambiamos de estratejia y el problema que tenemos aurita es a la hora de compara las calificaciones de los alumnos, se supone que devemos sacar los promedios y seleccionar cual es el mas altos y dar el nombre y la matricula del mismo, pero no se que pasa no sale y no se que esta mal. pero lo estamos checando aver que sale, pero si nos puedes echar la mano con algunas observaciones te lo agradeceria.
Este es el cogigoq ue tenemos:
public class control
{
String nombre, matricula,fecha;
int semestre,cre;
float mat[][]= new float [5][10];
String materias[]=new String[5];
control()
{
}
control(String n, String m, int s,float mt[][])
{
int c,c1;
nombre = n;
matricula = m;
semestre = s;
for(c=0; c<5; c++)
{
for(c1=0; c1<10; c1++)
{
mat[c][c1]=mt[c][c1];
}
}
}//fin del constructor no nulo
control(String matr[])
{
int c2;
for(c2=0;c2<5; c2++)
{
materias[c2]=matr[c2];
}
}//fin del segundo constructor no nulo
void proceso(control v1[], control v2[])
{
int ciclo,ciclo2,op=0,c=0,c1=0;
Teclado v = new Teclado();
control aux = new control();
for(ciclo=0; ciclo<v1.length;ciclo++)
{
System.out.println("Escribe el nombre del alumno "+(ciclo+1));
aux.nombre = v.leeString();
System.out.println("Escribe la matricula del alumno "+aux.nombre);
aux.matricula = v.leeString();
System.out.println("Escribe el semestre del alumno "+aux.nombre);
aux.semestre = v.leeInt();
System.out.println("Escribe las 5 materias que llevas");
for(ciclo2=0;ciclo2<5;ciclo2++)
{
System.out.println("Materia "+(ciclo2+1));
aux.materias[ciclo2]= v.leeString();
}
for(c=0; c<5; c++)
{
System.out.println("Escribe las 10 calificaciones de "+aux.materias[c]);
for(c1=0; c1<10; c1++)
{
System.out.println("Unidad "+(c1+1));
aux.mat[c][c1] = v.leeFloat();
}
}
v1[ciclo]= new control(aux.nombre,aux.matricula,aux.semestre,aux. mat);
v2[ciclo]=new control(aux.materias);
}//fin del for principal
}//Fin del metodo
void proceso(control g[])
{
float promedio=0,aux=0;temp=0;
for(int c=0; c<g.length; c++)
{
for(int c1=0; c1<5; c1++)
{
for(float sa:g[c].mat[c1])
promedio+=sa;
}
promedio=promedio/50;
}//fin del for
System.out.println("Mas alta"+temp);
for(int c=0;c<g.length;c++)
{
for(int c1=0;c1<5;c1++)
{
for(float sa:g[c].mat[c1])
promedio+=sa;
}
promedio=promedio/50;
System.out.println("el promedio"+ promedio);
if(promedio==aux)
{
System.out.println("El Alumno con mas alta calificacion es: "+g[c].nombre);
System.out.println("Con matricula: "+g[c].matricula);
System.out.println("\nCon promedio "+aux);
}
}
}//fin del metodo proceso
void imprime(control f[],control g[])
{
int x,y;
for(x=0; x < g.length; x++ )
{
System.out.println("El nombre del alumno "+(x+1)+" es: "+g[x].nombre);
System.out.println("La matricula del alumno "+g[x].nombre+" es: "+g[x].matricula);
System.out.println("El semestre del alumno "+g[x].nombre+" es: "+g[x].semestre);
System.out.println("Las materias son:");
for(y=0; y < 5; y++)
{
System.out.println(f[x].materias[y]);
}
for(int z=0; z<5;z++)
{
for(int w=0; w<10; w++)
{
System.out.println(g[x].mat[z][w]);
}
}
}
}//fin del metodo imprime
public static void main (String[] args)
{
Teclado v = new Teclado();
control obj = new control();
System.out.println("Escribe cuantos alumnos vas a capturar");
final int LONGITUD_ARRELO = v.leeInt();
control alumnos [] = new control[LONGITUD_ARRELO];
control datos[] = new control[LONGITUD_ARRELO];
obj.proceso(alumnos, datos);
obj.imprime(datos,alumnos);
obj.proceso(alumnos);
}//fin del main
} |