Amigos, disculpen que les escriba este tema, pero ya no he encontrado una solución a mi problema.
Estoy viendo clases encapsuladas en Java, y tengo que crear un programa que al terminar de solicitarme los datos haga los cálculos y me pregunte si quiero volver a calcular todo de nuevo.
La cosa es: Si funciona, pero cuando respondo que si deseo continuar capturando más datos se salta la primer pregunta de datos() y omite preguntarme el nombre...
Para que me comprendan dejo aqui el código que he hecho en total:
Clase ENCAPSULADA llamado Nadador.java:
Código:
/* Nadador.java
public class Nadador {
private String Nombre;
private byte Londres;
private byte Sydney;
private byte Atenas;
private byte Pekin;
public String getNombre( ){
return this.Nombre;
}
public void setNombre(String Nombre){
this.Nombre = Nombre;
}
public byte getLondres( ){
return this.Londres;
}
public void setLondres(byte Londres){
this.Londres = Londres;
}
public byte getSydney( ){
return this.Sydney;
}
public void setSydney(byte Sydney){
this.Sydney = Sydney;
}
public byte getAtenas( ){
return this.Atenas;
}
public void setAtenas(byte Atenas){
this.Atenas = Atenas;
}
public byte getPekin( ){
return this.Pekin;
}
public void setPekin(byte Pekin){
this.Pekin = Pekin;
}
}
Clase Principal, llamada PruebaNadador.java:
Código:
import java.util.Scanner;
import java.io.*;
import static java.lang.Math.*;
public class PruebaNadador {
int Suma,Promedio;
Nadador s = new Nadador();
Scanner x = new Scanner(System.in);
void inicio() {
System.out.println("\n\nSistema para obtener el promedio de medallas ganadas por un nadador en varias olimpiadas\n\n");
}
void datos (Nadador n){
System.out.print("Escriba el nombre del nadador:\n");
n.setNombre(x.nextLine());
System.out.print("Indique la cantidad de medallas ganadas en Londres:\n");
n.setLondres ( x.nextByte());
System.out.print("Indique la cantidad de medallas ganadas en Atenas:\n");
n.setAtenas ( x.nextByte());
System.out.print("Indique la cantidad de medallas ganadas en Pekin:\n");
n.setPekin ( x.nextByte());
System.out.print("Indique la cantidad de medallas ganadas en Sydney:\n");
n.setSydney ( x.nextByte());
}
void calculos(Nadador z){
Suma = s.getLondres() + s.getAtenas() + s.getPekin() + s.getSydney();
Promedio = Suma /4;
}
void resultado() {
System.out.println("El Nadador: " + s.getNombre() + "tiene nn promedio de " +Promedio+ " medallas ganadas en 4 juegos Olimpicos");
}
public static void main(String[] args) throws IOException {
PruebaNadador w = new PruebaNadador();
int resp = 'S';
w.inicio();
while (resp == 's' || resp == 'S'){
w.datos(w.s);
w.calculos(w.s);
w.resultado();
System.out.print("Desea evaluar el promedio de medallas de otro nadador olimpico? S/N:");
resp = System.in.read();
System.in.skip(2);
}
}
}
Yo creo que mi problema está aquí:
Código:
public static void main(String[] args) throws IOException {
PruebaNadador w = new PruebaNadador();
int resp = 'S';
w.inicio();
while (resp == 's' || resp == 'S'){
w.datos(w.s);
w.calculos(w.s);
w.resultado();
System.out.print("Desea evaluar el promedio de medallas de otro nadador olimpico? S/N:");
resp = System.in.read();
System.in.skip(2);
}
}
¿Alguien que pudiera orientarme por favor,
?