Autor Tema: Java uso básico de Operadores aritméticos, +, -, *, / y %. Ejercicio CU00633B.  (Leído 3693 veces)

Jesu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Hola quiero saber si mi codigo esta correcto. Pues lo compilé y me da lo que el ejercicio pide.

Código: [Seleccionar]
package Ejercicios_POO;
import java.util.Scanner;
public class ejeMedico {

public static void main(String[] args) {
// TODO Auto-generated method stub
             Medico medico1=new Medico();
             Scanner lee=new Scanner(System.in);
             String nombre,apellido,id,especialidad;
             int edad;
             String casado;
             
             System.out.print("Introduce Nombres del médico: ");
             nombre=lee.nextLine();
             System.out.print("Introduce Apellidos del médico: ");
             apellido=lee.nextLine();
             System.out.print("Introduce su ID: ");
             id=lee.next();
             System.out.print("Introduce su especialidad: ");
             especialidad=lee.next();
             System.out.print("¿Es casado? ");
             casado=lee.next();
             System.out.print("Introduce EDAD: ");
             edad=lee.nextInt();
             
                  medico1.setNombre(nombre);
                  medico1.setApellido(apellido);
                  medico1.setId(id);
                  medico1.setEspecialidad(especialidad);
                  medico1.setCasado(casado);
                  medico1.setEdad(edad);
                 
                  medico1.setFaltante();
}

}

Luego se crea una clase con el metodo Main

Código: [Seleccionar]
package Ejercicios_POO;
import java.util.Scanner;
public class ejeMedico {

public static void main(String[] args) {
// TODO Auto-generated method stub
             Medico medico1=new Medico();
             Scanner lee=new Scanner(System.in);
             String nombre,apellido,id,especialidad;
             int edad;
             String casado;
             
             System.out.print("Introduce Nombres del médico: ");
             nombre=lee.nextLine();
             System.out.print("Introduce Apellidos del médico: ");
             apellido=lee.nextLine();
             System.out.print("Introduce su ID: ");
             id=lee.next();
             System.out.print("Introduce su especialidad: ");
             especialidad=lee.next();
             System.out.print("¿Es casado? ");
             casado=lee.next();
             System.out.print("Introduce EDAD: ");
             edad=lee.nextInt();
             
                  medico1.setNombre(nombre);
                  medico1.setApellido(apellido);
                  medico1.setId(id);
                  medico1.setEspecialidad(especialidad);
                  medico1.setCasado(casado);
                  medico1.setEdad(edad);
                 
                  medico1.setFaltante();
}

}
« Última modificación: 22 de Marzo 2017, 22:07 por Alex Rodríguez »

Erik_Escriche

  • Principiante
  • **
  • Mensajes: 65
    • Ver Perfil
Re:Ejercicio EDAD del medico Operadores aritmeticos 633B
« Respuesta #1 en: 01 de Enero 2017, 04:06 »
Hola Jesu.

En primer lugar, me gustaría explicarte que hay una herramienta en el menú de edición de mensajes para escribir código. Cuando vayas a copiar un ejercicio, pulsa en el botón con el icono # y pega el texto entre el [code ] y el [/code ].

Quedaría así:

Clase Medico.
Código: [Seleccionar]
public class Medico
{
   
   private String nombre;
   private String apellido;
   private int edad;
   private boolean casado;
   private String id;
   private String especialidad;

       
      // Metodo constructor con valores por defecto
        public Medico()
        {
           nombre="";
           apellido="";
           edad=0;
           casado=false;
           id="desconocido";
           especialidad="desconocida";
           
        }

      public String getNombre() {
         return nombre;
      }

      public void setNombre(String nombre) {
         this.nombre = nombre;
      }

      public String getApellido() {
         return apellido;
      }

      public void setApellido(String apellido) {
         this.apellido = apellido;
      }

      public int getEdad() {
         return edad;
      }

      public void setEdad(int edad) {
         this.edad = edad;
      }

      public String isCasado() {
         
         if(casado){
         return "El médico está casado";
         }else{
            return "El médico no está casado";
         }
      }

      public void setCasado(String casado) {
         if(casado.equalsIgnoreCase("si")){
            this.casado=true;
         }else{
            this.casado=false;
         }
      }

      public String getId() {
         return id;
      }

      public void setId(String id) {
         this.id = id;
      }

      public String getEspecialidad() {
         return especialidad;
      }

      public void setEspecialidad(String especialidad) {
         this.especialidad = especialidad;
      }
      public void setFaltante(){
         int div,falta;
         div=edad%5;
         falta=5-div;
         System.out.print("El médico "+nombre+" tiene "+edad+" años. Para tener una edad multiplo de 5 le faltan "+falta+" años.");
      }
       
       
     
    }

Clase ejeMedico.
Código: [Seleccionar]
import java.util.Scanner;
public class ejeMedico {

   public static void main(String[] args) {
      // TODO Auto-generated method stub
             Medico medico1=new Medico();
             Scanner lee=new Scanner(System.in);
             String nombre,apellido,id,especialidad;
             int edad;
             String casado;
             
             System.out.print("Introduce Nombres del médico: ");
             nombre=lee.nextLine();
             System.out.print("Introduce Apellidos del médico: ");
             apellido=lee.nextLine();
             System.out.print("Introduce su ID: ");
             id=lee.next();
             System.out.print("Introduce su especialidad: ");
             especialidad=lee.next();
             System.out.print("¿Es casado? ");
             casado=lee.next();
             System.out.print("Introduce EDAD: ");
             edad=lee.nextInt();
             
                  medico1.setNombre(nombre);
                  medico1.setApellido(apellido);
                  medico1.setId(id);
                  medico1.setEspecialidad(especialidad);
                  medico1.setCasado(casado);
                  medico1.setEdad(edad);                 
                  medico1.setFaltante();
   }

}

Usando esta herramienta, el mensaje resulta más claro.

El ejercicio funciona correctamente. No obstante, en la clase Medico te recomendaría cambiar el nombre del método setFaltante() por otro (por ejemplo, calcularCuantoFalta()). Lo digo porque con setFaltante() no estás adjudicando un valor a un atributo de la clase, como sí sucede con los otros métodos de tipo set. También cambiaría el nombre del método isCasado() por el de getCasado() para mantener un estilo uniforme. Para comprobar que tus métodos set y get funcionan correctamente podrías incluir un método que imprima por pantalla los datos del médico. Podría ser algo así:

Código: [Seleccionar]
public void mostrarDatosPorPantalla() {
          System.out.println ("Datos del médico. Nombre: "+nombre+" "+apellido+". ID: "+id+". Especialidad: "+especialidad+". Estado civil: "+this.getCasado()+".");         
    }

Por otro lado, en el main no es necesario que crees tantas variables. Basta con declarar un String respuesta y un int edad e ir cambiando el valor de respuesta del siguiente modo:

Código: [Seleccionar]
import java.util.Scanner;
public class ejeMedico {

   public static void main(String[] args) {
      // TODO Auto-generated method stub
             Medico medico1=new Medico();
             Scanner lee=new Scanner(System.in);
             String respuesta;
             int edad;
                         
             System.out.print("Introduce Nombres del médico: ");
             respuesta=lee.nextLine(); medico1.setNombre(respuesta);
             System.out.print("Introduce Apellidos del médico: ");
             respuesta=lee.nextLine(); medico1.setApellido(respuesta);
             System.out.print("Introduce su ID: ");
             respuesta=lee.nextLine(); medico1.setId(respuesta);
             System.out.print("Introduce su especialidad: ");
             respuesta=lee.nextLine(); medico1.setEspecialidad(respuesta);
             System.out.print("¿Es casado? ");
             respuesta=lee.nextLine(); medico1.setCasado(respuesta);
             System.out.print("Introduce EDAD: ");
             edad=lee.nextInt(); medico1.setEdad(edad);
                             
             medico1.mostrarDatosPorPantalla(); //Este es el metodo que te he propuesto arriba.
             medico1.calcularCuantoFalta();             
   }

}

Espero que te sirva. ¡Saludos!

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Re:Ejercicio EDAD del medico Operadores aritmeticos 633B
« Respuesta #2 en: 01 de Enero 2017, 08:17 »
Buenos días y feliz año.

Varias cosas.

En el ejercicio se pedía hacerlo todo en una clase y comprobar los resultados creando objetos.
Has utilizado if que aún no se ha dado a estas alturas del curso.Para un correcto seguimiento del curso los ejercicios se deben realizar solo con lo que se haya visto.

Tu clase Medico debería quedar:
Código: [Seleccionar]
public class Medico2
{

    private String nombre;
    private String apellido;
    private int edad;
    private boolean casado;
    private String id;
    private String especialidad;

    // Metodo constructor con valores por defecto
    public Medico2()
    {
        nombre="";
        apellido="";
        edad=0;
        casado=false;
        id="desconocido";
        especialidad="desconocida";

    }

    public String getNombre() {return nombre;}   

    public String getApellido() {return apellido;}

    public boolean getCasado() { return casado;}

    public String getId() {return id;}

    public int getEdad() {return edad;}
   
    public String getEspecialidad() {return especialidad;}

    public void setNombre(String nombre) {this.nombre = nombre;}

    public void setApellido(String apellido) {this.apellido = apellido;}

    public void setEdad(int edad) {this.edad = edad;}   

    public void setCasado(boolean casado) {this.casado=casado;}

    public void setId(String id) {this.id = id;}   

    public void setEspecialidad(String especialidad) {this.especialidad = especialidad;}

    public void calculoParaMultiploEdad(){       
        System.out.println ("El médico de nombre " + nombre + " y con especialidad " + especialidad + " tendrá una edad mútiplo de 5 dentro de " + (5 - (edad % 5)));
    }     
}
Con esto quedaría resuelto el ejercicio.

Ya que la incluiste,tu clase Main quedaría:
Código: [Seleccionar]
import java.util.Scanner;
public class ejeMedico {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Medico2 medico1=new Medico2();
        Scanner lee=new Scanner(System.in); 
        System.out.print("Introduce Nombres del médico: ");       
        medico1.setNombre(lee.nextLine());
        System.out.print("Introduce Apellidos del médico: ");
        medico1.setApellido(lee.nextLine());
        System.out.print("Introduce su ID: ");       
        medico1.setId((lee.nextLine()));
        System.out.print("Introduce su especialidad: ");       
        medico1.setEspecialidad((lee.nextLine()));
        System.out.print("¿Es casado? ");
        if (lee.nextLine().equalsIgnoreCase("Si")){medico1.setCasado(true);}
        System.out.print("Introduce EDAD: ");       
        medico1.setEdad((lee.nextInt()));
        medico1.calculoParaMultiploEdad();
    }
}

Un saludo

Jesu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Re:Ejercicio EDAD del medico Operadores aritmeticos 633B
« Respuesta #3 en: 01 de Enero 2017, 19:13 »
Que pena que peqgue lo mismo 2 veces. Yo utilice 2 clases. Esta seria la clase médico sin el metodo main.

Código: [Seleccionar]
package Ejercicios_POO;

public class Medico
{
 

private String nombre;
private String apellido;
private int edad;
private boolean casado;
private String id;
private String especialidad;

   
   // Metodo constructor con valores por defecto
     public Medico()
     {
    nombre="";
    apellido="";
    edad=0;
    casado=false;
    id="desconocido";
    especialidad="desconocida";
   
     }

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApellido() {
return apellido;
}

public void setApellido(String apellido) {
this.apellido = apellido;
}

public int getEdad() {
return edad;
}

public void setEdad(int edad) {
this.edad = edad;
}

public String isCasado() {

if(casado){
return "El médico está casado";
}else{
return "El médico no está casado";
}
}

public void setCasado(String casado) {
if(casado.equalsIgnoreCase("si")){
this.casado=true;
}else{
this.casado=false;
}
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getEspecialidad() {
return especialidad;
}

public void setEspecialidad(String especialidad) {
this.especialidad = especialidad;
}
public void setFaltante(){
int div,falta;
div=edad%5;
falta=5-div;
System.out.print("El médico "+nombre+" tiene "+edad+" años. Para tener una edad multiplo de 5 le faltan "+falta+" años.");
}
   
     
 
}
« Última modificación: 22 de Marzo 2017, 22:06 por Alex Rodríguez »

Jesu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Re:Ejercicio EDAD del medico Operadores aritmeticos 633B
« Respuesta #4 en: 01 de Enero 2017, 19:20 »
Erik Muchas gracias por la sugerencia de la variable respuesta. Gracias mi hermano. Trata´re de seguir sus sugerencias. Solo llevo 3 meses aprendiendo java y por eso estoy aqui. Quiero aprender buenas practicas de programación incluida la practica de ahorrar código. Tendré en cuenta tu sugerencia amigo

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Ejercicio EDAD del medico Operadores aritmeticos 633B
« Respuesta #5 en: 03 de Enero 2017, 08:09 »
Hola Jesu!
Cuando vayas a introducir código en el foro, antes presiona el botón # (insertar código) que se encuentra arriba del campo de escritura, te saldrán unas etiquetas comoa estas: [code] ... [/code] y a continuación procede a pegar el código en medio de esas etiquetas. Ejemplo: [code] ... [/code]. Una vez escrito todo pulsa el botón previsualizar para comprobar si se ve bien.
También intenta colocar títulos adecuados, y los códigos de los cursos escribirlos como son, y no abreviados, de esta forma será más fácil ayudarte.

Saludos. ;D
« Última modificación: 03 de Enero 2017, 08:11 por pedro,, »

Damian

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Re:Java. Operadores aritméticos, +, -, *, / y %. Ejercicio CU00633B.
« Respuesta #6 en: 18 de Enero 2017, 06:30 »
Hola Jesu, espero estés bien

Los métodos else, this e if, aún no se han visto en lo que va del curo Java, te recomendaría que utilices los códigos que se han visto, para que todo salga bien, este es un pequeño ejemplo del código, que se debería utilizar, al crear un clase tipo Médico, tendría que quedarte de la siguiente manera
public class Medico{
private String nombre; etc, debajo de éste, public Medico(){ y debajo de éste, poner nombre= ""; y así sucesivamente, ahora la utilización del codigo, te quedaría así
Código: [Seleccionar]
public void setNombre(String valorNombre){
nombre= valorNombre;
System.out.println("El nombre del médico es: " + nombre)
y así con los otro códigos.

También en el ejemplo, se solicita que se pide un código que lleve por nombre calculoParaMultiploEdad,  esto también tienes que ponerlo debajo del public class Medico, el cúal quedaría así, private int calculoParaMultiploEdad; y debajo de public Medico, quedaría así, calculoParaMultiploEdad= 0; después de que hayas puesto todos los códigos, compilas, para ver si hay errores o no.

La utilización del get, está bien

Suerte amigo.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".