Java - !AYUDA¡ NECESITO QUE ALGUIEN ME AYUDE PARA QUE AL MOMENTO DE MODIFICAR DATOS NO ME MARQUE ERROR URGE

 
Vista:
sin imagen de perfil

!AYUDA¡ NECESITO QUE ALGUIEN ME AYUDE PARA QUE AL MOMENTO DE MODIFICAR DATOS NO ME MARQUE ERROR URGE

Publicado por alexis (1 intervención) el 10/06/2022 05:03:13
import java.io.IOException; //libreria para limpiar pantalla - CLS
import java.util.Scanner; //libreria para captura “Scanner TECLADO”
public class consultorio2512
{
private Scanner TECLADO;
private String[] NOMALUS;
private String[][] CALPARS;
private String[] ALTURA;
private String[] PESO;
private String[] EDAD;
private String[] FECHA;
private String[] HORA;
private String[] SEXO;
private String[] SIN1;
private String[] SIN2;
private String[] SIN3;
private String[] SIN4;
private String[] SIN5;
private int F,C,NF=1,NC=2,OPMENU,NUMREG,HC=1;
public void LIMPIAPANTALLA() //LIMPIA PANTALLA "CLS" - de Sistema Operativo
{
try
{
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
}
catch (Exception e)
{
/* No hacer nada */
}
}
public void PAUSA() //pulsa ENTER y continuar
{
String TECLAENTER="";
System.out.print("\n\npulsa \"ENTER\" para continuar...");
do
{
TECLAENTER=TECLADO.nextLine(); //TECLADO.nextLine();
}
while(!TECLAENTER.equals(""));
}
public void MENU() //menu principal
{
TECLADO=new Scanner(System.in);
do
{
LIMPIAPANTALLA();
System.out.print("\t\t\t\t\t\t- CONTROL DE PACIENTE -\n\n");
System.out.print("\t\t\t\t\t\t* M E N U *\n\n");
System.out.print("\t\t\t1. CAPTURA DATOS DEL PACIENTE\t\t\t\t2. CONSULTA DATOS DEL PACIENTE\n\n");
System.out.print("\t\t\t3. EDITA DATOS DEL PACIENTE\t\t\t\t\t4. Calcular Promedios\n\n");
System.out.print("\t\t\t5. BAJA DE DATOS DE PACIENTES\t\t\t\t\t6. TERMINAR PROGRAMA\n\n");
System.out.print("\t\t\t\t\t\tELIGE UNA OPCION [1-6]> ");
do
{
OPMENU=TECLADO.nextInt(); TECLADO.nextLine();
}
while(OPMENU<1 || OPMENU>6);
switch(OPMENU)
{
case 1: LIMPIAPANTALLA(); CAPTURA(); break;
case 2: LIMPIAPANTALLA(); CONSULTA(); break;
case 3: LIMPIAPANTALLA(); EDITA(); break;
case 4: LIMPIAPANTALLA(); PROMEDIOS(); break;
case 5: break;
case 6: break;
}
}
while(OPMENU!=6);
}



public void CAPTURA() //captura nuevo alumno
{
NOMALUS=new String[NF];
CALPARS=new String[NF][NC];
ALTURA=new String[NF];
PESO=new String[NF];
EDAD=new String[NF];
FECHA=new String[NF];
HORA=new String[NF];
SEXO=new String[NF];
SIN1=new String[NF];
SIN2=new String[NF];
SIN3=new String[NF];
SIN4=new String[NF];
SIN5=new String[NF];
int F,C;
for(F=0;F<HC;F++)
{
System.out.print("INGRESE EL NOMBRE DEL PACIENTE> ");
NOMALUS[F]=TECLADO.nextLine(); //TECLADO.nextLine(); //TECLADO.nextLine();
for(C=0;C<(NC-1);C++)
{
System.out.print("INGRESE LA ALTURA DEL PACIENTE : "); ALTURA[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE EL PESO DEL PACIENTE : "); PESO[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE EDAD DEL PACIENTE : "); EDAD[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE FECHA DE NACIMIENTO DEL PACIENTE : "); FECHA[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE HORA REGISTRADA DE LA CONSULATA DEL PACIENTE : "); HORA[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE SEXO DEL PACIENTE : "); SEXO[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "); SIN1[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "); SIN2[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "); SIN3[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "); SIN4[F]=TECLADO.nextLine(); //TECLADO.nextLine();
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "); SIN5[F]=TECLADO.nextLine();TECLADO.nextLine();

CALPARS[F][C]=TECLADO.nextLine();
}
}

PAUSA();
}






public void CONSULTA() //consulta todos los alumnos
{
int F,C;
for(F=0;F<NF;F++)
{
System.out.print("DATOS REGISTRADOS DEL PACIENTE...\n");
System.out.print("NOMBRE DEL "+(F+1)+" PACIENTE<> "+NOMALUS[F]+"\n");
System.out.print("INGRESE LA ALTURA DEL PACIENTE :"+ALTURA[F]+"\n");
System.out.print("INGRESE EL PESO DEL PACIENTE : "+PESO[F]+"\n");
System.out.print("INGRESE EDAD DEL PACIENTE : "+EDAD[F]+"\n");
System.out.print("INGRESE FECHA DE NACIMIENTO DEL PACIENTE : "+FECHA+"\n");
System.out.print("INGRESE HORA REGISTRADA DE LA CONSULATA DEL PACIENTE : "+HORA[F]+"\n");
System.out.print("INGRESE SEXO DEL PACIENTE : "+SEXO[F]+"\n");
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "+SIN1[F]+"\n");
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "+SIN2[F]+"\n");
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "+SIN3[F]+"\n");
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "+SIN4[F]+"\n");
System.out.print("INGRESE SINTOMAS DEL PACIENTE : "+SIN5[F]+"\n");
for(C=0;C<(NC-1);C++)
{
System.out.print("\t\t"+CALPARS[F][C]+"\t");
}
System.out.print("\n");
}
PAUSA();
}



public void EDITA() //edita registro de alumno
{
int F,C,INI,FIN;
System.out.print("NR\tNOMBRE DE PACIENTES\t\tALTURA\t\tPESO\t\tEDAD\t\tFECHA DE NACIMIENTO\t\tHORA REGISTRADA\t\tSEXO\t\tSINTOMAS\t\tSINTOMAS\t\tSINTOMAS\t\tSINTOMAS\t\tSINTOMAS\t\t");
for(F=1;F<70;F++)
System.out.print("=");
System.out.print("\n");
for(F=0;F<NF;F++)
{
System.out.print((F+1)+"\t"+NOMALUS[F]+"\t\t\t");
for(C=0;C<(NC-1);C++)
{
System.out.print(CALPARS[F][C]+"\t\t");
}
System.out.print("\n");
}
{
System.out.print(ALTURA[F]+"\t\t");
}
{
System.out.print("\n");
}
System.out.print("ELIGE DATOS A MODIFICAR> ");
do
{
NUMREG=TECLADO.nextInt(); TECLADO.nextLine();
NUMREG=NUMREG-1; INI=0; FIN=(NF-1);
}
while(NUMREG<INI || NUMREG>FIN);
System.out.print("\nINGRESE EL NOMBRE DEL "+(NUMREG+1)+" PACIENTE> ");
NOMALUS[NUMREG]=TECLADO.nextLine(); //TECLADO.nextLine();
for(C=0;C<(NC-1);C++)
{
CALPARS[NUMREG][C]=TECLADO.nextLine(); TECLADO.nextLine();
}
System.out.print("REGUISTRO DE PACIENTE MODIFICADO...\n\n");
PAUSA();
}




public void PROMEDIOS() //calcula promedio de los alumnos
{
int F,C,SUMACALS;
for(F=0;F<NF;F++)
{
SUMACALS=0;
for(C=0;C<(NC-1);C++)
{
}
}
for(F=0;F<NF;F++)
{
System.out.print("NOMBRE DEL "+(F+1)+" PACIENTE> "+NOMALUS[F]+"\n");
System.out.print("OBSERVACIONES...\n");
System.out.print("\t\tOBSERVACION=1\t\t\tOBSERVACION=2t\t\tOBSERVACION=3\tPF\n");
for(C=0;C<NC;C++)
{
System.out.print("\t\t"+CALPARS[F][C]+"\t");
}
System.out.print("\n");
}
PAUSA();
}
public static void main(String[] args) //programa principal CONTROL DE ALUMNOS
{
consultorio2512 consu2=new consultorio2512();
consu2.MENU();
}
}
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

!AYUDA¡ NECESITO QUE ALGUIEN ME AYUDE PARA QUE AL MOMENTO DE MODIFICAR DATOS NO ME MARQUE ERROR URGE

Publicado por Kabuto (1381 intervenciones) el 11/06/2022 10:33:20
El problema está en que al mostrar la altura, has puesto la línea de código FUERA del cuerpo del bucle.
Lo marco en negrita.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void EDITA() //edita registro de alumno
	{
		int F,C,INI,FIN;
		System.out.print("NR\tNOMBRE DE PACIENTES\t\tALTURA\t\tPESO\t\tEDAD\t\tFECHA DE NACIMIENTO\t\tHORA REGISTRADA\t\tSEXO\t\tSINTOMAS\t\tSINTOMAS\t\tSINTOMAS\t\tSINTOMAS\t\tSINTOMAS\t\t");
		for(F=1;F<70;F++)
			System.out.print("=");
		System.out.print("\n");
		for(F=0;F<NF;F++)
		{
			System.out.print((F+1)+"\t"+NOMALUS[F]+"\t\t\t");
			for(C=0;C<(NC-1);C++)
			{
				System.out.print(CALPARS[F][C]+"\t\t");
			}
			System.out.print("\n");
		}
		{
			System.out.print(ALTURA[F]+"\t\t");
		}
		{
			System.out.print("\n");
		}

Entonces, ahí la variable F ya tiene un valor que supera el rango de índices válido para el array de ALTURA. Y por eso da error.

Debería estar dentro, y deberías evitar abrir y cerrar llaves para líneas de código simples, como ocurre con el System.out.print("\n"); que también he marcado en negrita, porque eso complica la lectura del código y abre la puerta a que ocurran errores como el que te está pasando.


Esa parte la puedes corregir así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void EDITA() //edita registro de alumno
	{
		int F,C,INI,FIN;
		System.out.print("NR\tNOMBRE DE PACIENTES\t\tALTURA\t\tPESO\t\tEDAD\t\tFECHA DE NACIMIENTO\t\tHORA REGISTRADA\t\tSEXO\t\tSINTOMAS\t\tSINTOMAS\t\tSINTOMAS\t\tSINTOMAS\t\tSINTOMAS\t\t");
		for(F=1;F<70;F++)
			System.out.print("=");
		System.out.print("\n");
		for(F=0;F<NF;F++)
		{
			System.out.print((F+1)+"\t"+NOMALUS[F]+"\t\t\t");
			for(C=0;C<(NC-1);C++)
			{
				System.out.print(CALPARS[F][C]+"\t\t");
			}
			System.out.print("\n");
 
			System.out.print(ALTURA[F]+"\t\t");
		}
 
		System.out.print("\n");
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