Ver Mensaje Individual
  #12 (permalink)  
Antiguo 31/10/2010, 00:25
fernandosg
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Utilizar variables de un metodo en otro

Saludos migu3 , gracias por la ayuda.
Mira, te paso los 2 codigos, y me dices que estoy haciendo mal, o que es inecesario:

Arreglox:
Código:
package main;
public class arreglox{
public String nombra;
int limitalum;
int limit;
int  cantidadmats;
int cantidadmat;
	public  arreglox daralta(){
		
			System.out.println("Cuantos alumnos vas a dar de alta");
			int cantalum=Leer.datoInt();
			String nombres[] = new String [cantalum];
			int datosdelestud[][]= new int[cantalum][2];
			this.limit = cantalum -1;
			int i,z;
			for(i=0;i<=limit;i++){
			System.out.println("Ingresa el nombre del alumno que esta en la posicion "+i);
			nombres[i] = Leer.dato();
			System.out.println("Inserta la edad del alumno ");
			datosdelestud[i][0]=Leer.datoInt();
			System.out.println("Inserta el semestre del alumno");
			datosdelestud[i][1]=Leer.datoInt();
			}
			for(i=0;i<=limit;i++){
				System.out.println("Cuantas materias llevara el alumno "+nombres[i]);
				this.cantidadmat = Leer.datoInt();
				//ABAJO DE ESTA LINEA, ES EL LIMITE DE MATERIAS QUE YA SE AÑADIERON
				int limitmat = cantidadmat-1;
				String materias[][] = new String[cantalum][cantidadmat];
				for(z=0;z<=limitmat;z++){
					System.out.println("Inserta el nombre de la materia #"+i);
					materias[i][z]=Leer.dato();
					i=i++;
				}
				System.out.println("Se ha finalizado de agregar el alumno, 1)Cambiar semestre 2)cambiar materias 3)Eliminar alumnos 4)salir");
				int oper = Leer.datoInt();
			switch(oper){
			case 1:
				this.cambiarsem(limitmat,limitalum, cantalum, nombres, datosdelestud, materias);
				break;
			case 2:
				this.cambiarmat(cantidadmats,limitmat,limitalum,cantidadmat, cantalum, nombres, datosdelestud, materias);
				break;
			case 3:
				this.eliminaralum(limitmat, cantalum, nombres, datosdelestud, materias);
				break;
			case 4:
				return daralta();
			default:
				break;
			}
								}
			return daralta();
			}
	
	public void eliminaralum(int limitmat,int cantalum, String nombres[], int datosdelestud[][], String materias[][]){
		
	}
	
	public void cambiarsem(int limitmat,int cantalum,int limitalum, String nombres[], int datosdelestud[][], String materias[][]){
		int i;
		System.out.println("ID \t Lista de alumnos \t Edad \t Semestre \t Materias");
		limitalum = limit;
		for(i=0;i<=limitalum;i++){
			System.out.print(i+"\t"+nombres[i]+"\t \t"+datosdelestud[i][0]+"\t \t"+datosdelestud[i][1]);
		}		
		for(i=0;i<=limitalum;i++){
			int z;
			for(z=0;z<=limitmat;z++){
				System.out.print("\t"+materias[i][z]);
				i=i++;
			}
		}
		System.out.println("¿Cual usuario desea modificar? Recuerde el ID");
		int modfalum = Leer.datoInt();
		System.out.println("Ahora el usuario "+nombres[modfalum]+" procedera a cambiarse su semestre \n" +
				"el cual es "+datosdelestud[modfalum][1]);
		System.out.println("A que semestre te gustaria cambiarlo?");
		int semnew = Leer.datoInt();
		datosdelestud[modfalum][1]=semnew;
		System.out.println("Alumno ha sido cambiado de semestre");
	}
	
	public void cambiarmat(int cantidadmats,int limitmat,int cantalum,int limitalum, int cantidadmat, String nombres[], int datosdelestud[][], String materias[][]){
		System.out.println("Bienvenido a la opcion cambiar materias, a continuacion se imprimira la lista de estud");
		int i;
		limitalum = limit;
		System.out.println("ID \t Lista de alumnos \t Edad \t Semestre \t Materias");
		for(i=0;i<=limitalum;i++){
			System.out.print(i+"\t"+nombres[i]+"\t \t"+datosdelestud[i][0]+"\t \t"+datosdelestud[i][1]);
		}		
		for(i=0;i<=limitalum;i++){
			int z;
			for(z=0;z<=limitmat;z++){
				System.out.print("\t"+materias[i][z]);
				i=i++;
			}
		}
		System.out.println("Que alumno deseas cambiar? Pon el ID");
		int cambiar=Leer.datoInt();
		System.out.println("Lista de materias del alumno "+nombres[cambiar]);
		for(i=0;i<=limitmat;i++){
			System.out.println(materias[cambiar][i]);
		}
		System.out.println("1)Si deseas añadir materias 2)Si deseas quitar materias");
		int opmat=Leer.datoInt();
		if(opmat==1){
			System.out.println("Cuantas materias te gustaria añadir?");
			int añadirmat = Leer.datoInt();
			this.cantidadmat = cantidadmat + añadirmat;
			for(i=0;i<=cantidadmat;i++){
//Lo de abajo segun yo, debe de identificarme los puestos vacios, como es un string, lo puse con comilla doble
				if(materias[cambiar][i]!=""){
					System.out.println("Escribe el nuevo nombre de la materia");
					materias[cambiar][i]=Leer.dato();
				}
			}
			//IMPRIMIR LA NUEVA LISTA
			
		}else if(opmat==2){
			
		}
	}

}
Practica

Código:
package main;

import java.util.Arrays;

//Aqui van los paquetes


public class practica extends arreglox{
		public void menu(){
			System.out.println("Escribe la opcion que deseas: \t" +
					"1)Dar de alta  2)Eliminar alumno  3)Imprimir alumnos  4)Cambiar materias");
		int op=Leer.datoInt();
		switch(op){
		case 1:
			this.daralta();
			break;
		case 2:
			this.eliminaralum();
			break;
		case 3:
			this.cambiarsem();
			break;
		case 4:
			this.cambiarmat();
			break;
		default:
			break;
		}
		}
		
		
		public void eliminaralum(){
			
		}
		
		public void cambiarsem(){
			
		}
		
		public void cambiarmat(){
			
		}
	
	public static void main (String args[]){
		practica acc = new practica();
		acc.menu();
	}

}

A parte tengo otra duda (y disculpa que te este usando de consultor, no tengo contactos de la carrera, y mis compañeros van peor que yo en esto xD) en Arreglox, en el metodo cambiarmat() , en teoria, deberia de permitirme(por el momento lo qe he escrito) añadir mas materias al arreglo, el problema, es que cuando cambio en este metodo la variable cantidadmat (que ya habia añadido en el metodo daralta() ) , no me añade los nuevas materias.

Por ej:

Si en daralta() pongo 2 materias, y en cantidadmat() pongo otras 4, por medio de un for, me identifique cuales posiciones del arreglo estan vacios, (no se si este bien el codigo que puse para identificar arreglos vacios) y me deje meter mas variables al arreglo, pero no, solo me deja poner 2 espacios ya añadidos en el metodo daralta(), y no me deja meter los otros 4 que supuestamente en teoria me dejaria meter.

Saludos, y pues disculpa el pedacero de codigo que hice y revuelto :S, pero ahorita por cuestiones que se viven en mi ciudad (mexicano, y pues ha habido algo de balaceras) las clases se han suspendido algunos dias :S, dejandome en 0.

Saludos, y gracias por leer el mensaje