Autor Tema: Ejercicios resueltos utilizando conceptos de programación orientada a objetos  (Leído 4238 veces)

nikiton

  • Sin experiencia
  • *
  • Mensajes: 20
    • Ver Perfil
Hola llevo dias(par especificar  1 semana ya  :'( ) intentando este ejercicio y no logro ni avanzar en el primer punto. Logré hacer un menu para las opciones que funcione con un ciclo white para una vez finaliza vuelva a consultar las opciones, pero de ahí no logro completar las acciones. Si pudieran ayudarme estaría agradecido

Crear un programa utilizando los conceptos de programación orientada a objetos.

• Crear una clase Persona y una clase Cliente. La clase Cliente es clase hija de Persona.
Atributos de Persona: Rut, nombre, apellido, correo electrónico
Atributos de Cliente: número cuenta, saldo, tipo cuenta
• Crear los constructores por defecto y otro que inicialice todos los atributos en la clase cliente.
• Crear métodos getter y setter en ambas clases.
• Crear un método girar y un método depositar en la clase cliente que permita
aumentar o disminuir su saldo según corresponda. Considerar que si el monto a
girar es mayor o igual al saldo que tiene, debe mostrar un mensaje de error.
• Crear un método que muestre todos los datos de un cliente.
• Cree 4 instancias de clientes en la clase con el método main.
• Asigne valores a cada cliente. Debe leer los datos por consola.
• Mostrar los datos de los 4 clientes.
• Depositar a cada cliente y mostrar los clientes.
• Girar en cada cliente y mostrar los clientes.
• Modificar dos datos (excepto el saldo) de un cliente y después mostrar los datos de
ese cliente.

Este es el ejercicio la idea es no utilizar mucho arreglos ni listas, si quieren puedo subir mi modelo de menú de opciones.

De antemano muchas gracias a todo tipo de ayuda, me importa.


« Última modificación: 28 de Octubre 2020, 14:07 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 985
    • Ver Perfil
Re:Ejercicio Orientado a Objetos
« Respuesta #1 en: 12 de Septiembre 2020, 17:17 »
Hola.
En principio para este programa no se necesitaría un menú de opciones.
Se podría poner, pero el enunciado más bien parece que desea que se siga una serie de pasos concretos, como un guión ya escrito, y no tanto que el usuario pueda moverse por un menú.

En cualquier caso, antes de todo esto, hay que escribir las clases Persona y Cliente (que va a heredar de Persona).

A continuación pongo cómo podrían ser estas dos clases.
Míratelas bien, asegúrate de que entiendes bien cada línea, decide si te parecen acordes a los que pide el enunciado..., y luego pasamos a ver como podría ser el main

Clase Persona
Código: [Seleccionar]
public class Persona {

private String rut;
private String nombre;
private String apellido;
private String email;

public Persona() {
rut = "";
nombre = "";
apellido = "";
email = "";
}

public Persona(String rut, String nombre, String apellido, String email) {
this.rut = rut;
this.nombre = nombre;
this.apellido = apellido;
this.email = email;
}

public String getRut() {
return rut;
}

public void setRut(String rut) {
this.rut = rut;
}

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 String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

@Override
public String toString() {
return "RUT: " + rut +
"\nNombre: " + nombre +
"\nApellido: " + apellido +
"\nE-Mail: " + email;
}

}

Clase Cliente
Código: [Seleccionar]
public class Cliente extends Persona{

private String numCuenta;
private float saldo;
private String tipoCuenta;

public Cliente() {
super();
numCuenta = "";
saldo = 0f;
tipoCuenta = "";
}

public Cliente(String rut, String nombre, String apellido, String email, String numCuenta,
float saldo, String tipoCuenta) {
super(rut, nombre, apellido, email);
this.numCuenta = numCuenta;
this.saldo = saldo;
this.tipoCuenta = tipoCuenta;
}

public String getNumCuenta() {
return numCuenta;
}

public void setNumCuenta(String numCuenta) {
this.numCuenta = numCuenta;
}

public float getSaldo() {
return saldo;
}

public void setSaldo(float saldo) {
this.saldo = saldo;
}

public String getTipoCuenta() {
return tipoCuenta;
}

public void setTipoCuenta(String tipoCuenta) {
this.tipoCuenta = tipoCuenta;
}

public void depositar(float monto) {
saldo += monto;
}

public void girar(float monto) {
if (monto >= saldo)
System.out.println("No hay suficiente saldo para hacer el giro");
else
saldo -= monto;
}

@Override
public String toString() {
return super.toString() +
"\nNúmero Cuenta: " + numCuenta +
"\nSaldo: " + String.format("%.2f", saldo) +
"\nTipo Cuenta: " + tipoCuenta;
}

}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 985
    • Ver Perfil
Re:Ejercicio Orientado a Objetos
« Respuesta #2 en: 12 de Septiembre 2020, 17:43 »
A continuación una propuesta para el main.
Como digo, creo que no requiere menú, aunque el ejercicio podría ser más interesante con él.

Yo lo he hecho sin menú, siguiendo cada paso estipulado en el enunciado del ejercicio.

Código: [Seleccionar]
public class TestClientes {

public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);

/*Cree 4 instancias de clientes en la clase con el método main.*/

//Podemos crear instancias individuales...
Cliente cliente1 = new Cliente();
Cliente cliente2 = new Cliente();
Cliente cliente3 = new Cliente();
Cliente cliente4 = new Cliente();

//Pero el código será más óptimo y menos repetitivo si los agrupamos en un array
//porque podremos usar bucles para trabajar con ellos
Cliente[] clientes = {cliente1, cliente2, cliente3, cliente4};

/*Asigne valores a cada cliente. Debe leer los datos por consola.*/
for (int i = 0; i < clientes.length; i++) {
System.out.println("\nDatos nuevo Cliente....");
System.out.print("R.U.T: ");
clientes[i].setRut(teclado.nextLine());
System.out.print("Nombre: ");
clientes[i].setNombre(teclado.nextLine());
System.out.print("Apellido: ");
clientes[i].setApellido(teclado.nextLine());
System.out.print("E-Mail: ");
clientes[i].setEmail(teclado.nextLine());
System.out.print("Nº Cuenta: ");
clientes[i].setNumCuenta(teclado.nextLine());
System.out.print("Saldo: ");
clientes[i].setSaldo(Float.parseFloat(teclado.nextLine()));
System.out.print("Tipo Cuenta: ");
clientes[i].setTipoCuenta(teclado.nextLine());
}

/*Mostrar los datos de los 4 clientes.*/

System.out.println("\nClientes registrados...");

for (Cliente cli: clientes)
System.out.println(cli + "\n");

/*Depositar a cada cliente y mostrar los clientes.*/
System.out.println("\nHaga un depósito a cada cliente.");

for (int i = 0; i < clientes.length; i++) {
System.out.println("\nDepósito Cliente #" + (i+1));
System.out.println("Monto: ");
clientes[i].depositar(Float.parseFloat(teclado.nextLine()));
}

System.out.println("\nDepósitos realizados...");

for (Cliente cli: clientes)
System.out.println(cli + "\n");

/*Girar en cada cliente y mostrar los clientes.*/
System.out.println("\nHaga un giro en cada cliente.");

for (int i = 0; i < clientes.length; i++) {
System.out.println("\nGiro Cliente #" + (i+1));
System.out.println("Monto: ");
clientes[i].girar(Float.parseFloat(teclado.nextLine()));
}

System.out.println("\nGiros realizados...");

for (Cliente cli: clientes)
System.out.println(cli + "\n");

/* Modificar dos datos (excepto el saldo) de un cliente y después mostrar los datos de
* ese cliente.
*/

cliente1.setNombre("Nombre Cambiado");
cliente1.setEmail("Email Cambiado");
System.out.println("\nDatos del Cliente1 cambiados.\n");
System.out.println(cliente1);

teclado.close();
}

}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

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".