Java - Registros académicos, problemas con el "main"

 
Vista:

Registros académicos, problemas con el "main"

Publicado por Gromlok (1 intervención) el 12/03/2006 12:53:52
Hola amigos, estoy haciendo un programa para el instituto, sobre unos registros académicos.
Tiene varias operaciones, crearVacio, agregar, eliminar, calificaciones , etc
Bueno el caso, es que he hecho crearVacio y agregar, me compila, pero cuando lo corro me sale un error Excepction in trhead "main" java.lang.NoSuchMethodError.
Busqué en internet, y una de las psobiles causas es que está mal escrito el métodod cuando lo llamo en el main, lo verifiqué y no es así. Así que por eso busco su ayuda.
Este main es de prueba, pues la idea es hacerlo en un menú, que ya tengo caso listo.

Por cierto, pensé que era porque no ponía los static a el main y mis métodos, pero lso pusé y me salen aún más errores.

aquí les adjunto el código:

import corejava.*; //Librería
public class RegAcadArreglos /*implements RegAcad */{
private int NE;
private InfoEstud[] es;

private class InfoEstud {
public int tam, MAX;
public InfoAsign[] acs;
}
private class InfoAsign {
public String asign;
public int calif;
}

void crearVacio (int n) {
//Precondici?n: n>0
//Postcondici?n: crearVacio.NE=n /\ crearVacio.cursadas=0
//Excepci?n: n<=0 -> ExcepcionValorNoPositivo(n)
//try {

es = new InfoEstud[n];
int m =120; //m=max
NE = n;
es = new InfoEstud[n];
for (int i=0; i<n; i++){
this.es[i] = new InfoEstud();
this.es[i].MAX = m;
this.es[i].tam = 0;
this.es[i].acs = new InfoAsign[m];
for (int j=0; j<m; j++){
this.es[i].acs[j] = new InfoAsign();
this.es[i].acs[j].asign = "";
this.es[i].acs[j].calif = 0;
}
}

//catch(Exception) {}
//}
}//Cerrar CrearVacio

public void agregar(int e, String a, int c) {
int NE= 20;
RegistroES es [] = new RegistroES [NE];
//Preconidici?n: 0<=e<=this.NE /\ esCodigo(a) /\ 1<=c<=20 /\ (e,a) no petenece a this.cursadas
//Postcondici?n: this.califs = thiso.califs + {((e,a),c), con "+" uni?n de conjuntos
//Exepciones:

/*------------------------------------------------------------------------------------------------
* Primero verificaremos si la materia, "a", que queremos introducir no haya sido cursada por el
* estudiante, "e", anteriormente. Esto se hará como sigue: crearemos un contador "i", que
* recorrerá el subarreglio de asignaturascalificaciones, acs, en el apartado asignaturas, asign,
* para veri si hay coincidencia entre el carné del estudiante y una materia. Es decir,
* verificaremos que ese estudiante no haya cursado anteriormente la materia.
* Adicionalmente crearemos una variable booleana "NoEsta", que al convertirse a "false"
* significará que el estudiante, e, sí hab?a cursado la asignatura en cuestión. De ser
* así se sale del ciclo.
*----------------------------------------------------------------------------------------------- */

//PRUEBA QUIETYAR
a="muerte";
e=123;
c=20;

int i = 0; //Contador "i"
boolean NoEsta = true; //Verifiaca sddfddgdfghgfhgfhgfhgfhg
boolean NoCursada = true;

if (es[e].tam != 0) {
for (i=0; i<es[e].tam && NoEsta; i++) {
if ((a.compareTo (es[e].acs[i].asign))==0) {
NoEsta = false;
}//Cierre del IF
else {
}
}//Cierre del FOR
}//Cierre del IF
else {
es[e].tam = es[e].tam + 1;
es[e].acs[0].asign = a;
es[e].acs[0].calif = c;
NoEsta = false; //aqui se mete en la primera casilla porque no hay con quien comparar.
}//Cierre del ELSE

/*-----------------------------------------------------------------------------------------------
* Ahora verificaremos que los carné y las asignaturas estén ordenadas.
* Se usará el comando "s1.compareTo(s2)" -con s1, s2 strings-
* Devuelve 0 si los dos String son iguales;
* Devuelve mayor que 0 si s1>s2;
* Devuelve mayor que 0 si s2>s1;
*----------------------------------------------------------------------------------------------- */
if (NoEsta == false) {
//skip
}
else
for (int j=0; j<=es[e].tam && NoCursada; j++) {
if (j != es[e].tam){
if (a.compareTo(es[e].acs[j].asign)>0) {
for (int s=es[e].tam; s>j; s--) {
es[e].acs[s].asign = es[e].acs[s+1].asign;
}//Cierre del for
es[e].acs[j].asign = a;
es[e].acs[j].calif = c;
NoCursada = false;
}
else { //if else
}//Cierre if
}//Cierre del if
else {//else if (j == es[e].tam) {
es[e].acs[j].asign = a;
es[e].acs[j].calif = c;
}//Cierre del if
es[e].tam = es[e].tam + 1;
} //Cierre del for
}//Cierre de agregar

public void calificaciones (int e) {

int k = 0;
for (k=0; k< es[e].tam;k++) {
System.out.println (es[e].acs[k].asign);
System.out.println (es[e].acs[k].calif);
}
}


public void main (String [] args)
{
final int n=Console.readInt ("Revele el tamaño del arreglo: ");
crearVacio(n);
agregar(03, "MAT", 19);

}

}



Saludos,
Gromlok
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