Java - ¿Alguien me puede hacer el favor de ayudarme con este ejercicio de Java?

 
Vista:
sin imagen de perfil
Val: 21
Ha aumentado su posición en 60 puestos en Java (en relación al último mes)
Gráfica de Java

¿Alguien me puede hacer el favor de ayudarme con este ejercicio de Java?

Publicado por Mak (12 intervenciones) el 08/03/2021 12:40:13
Buenas tardes ¿Alguien me podría ayudar por favor? entendí poco y esto fue lo único que pude hacer, no tengo certeza de que lo poco que hice esté bien, estaría muy agradecida si alguien me puede ayudar. Muchas gracias


CLASE Y MÉTODOS ABSTRACTOS

Se desea hacer un programa para un almacén de ropa al por mayor. Dicha empresa ofrece una serie de descuentos a sus clientes, los cuales los clasifica en tres tipos según su antigüedad, esto es a mayor antigüedad mayor beneficio. Estos descuentos se hacen por compras superiores a $50000.

Tipos de Clientes:

Tipo A: Tendrá un descuento del 10%.

Tipo B: Tendrá un descuento del 5%.

Tipo C: Tendrá un descuento del 2%.

Debe haber un método para mostrar la información de los clientes: nombre, la clave del cliente, el valor del descuento que se le hizo y el valor total a pagar.

En el programa principal se debe crear un menú de opciones que permita escoger que tipo de cliente es al que se le va a realizar el descuento sobre la compra que realiza y mostrar su respectiva información (nombre, clave, valor de la compra, el valor del descuento, el valor total a pagar).

Tenga en cuenta que el programa debe contener:

Una súper clase (clase abstracta): atributos, constructores, métodos get y set, método abstracto para calcular el total a pagar por el cliente y un método para mostrar la información.

Para las subclases: deben llevar un atributo llamado TotalCompra el cual permitirá saber cuál fue el valor de la compra hecha por el cliente y uno para descuento. Así mismo, debe llevar sus constructores, métodos get y set, método para calcular el valor a pagar por el cliente y uno para determinar el valor del descuento.

Las compras no pueden ser inferiores a cero pesos, por lo tanto, deben crear en las subclases un método para validar que el cliente haya hecho una compra válida.


CÓDIGO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
package descuentoclientes;
 
public abstract class DescuentoClientes {
 
    protected String nombre,apellido;
    protected int clave;
    protected double valor,descuento;
 
    public DescuentoClientes() {
 
    }
 
    public DescuentoClientes(String nombre, String apellido, int clave, double valor, double descuento) {
 
        this.nombre = nombre;
        this.apellido = apellido;
        this.clave = clave;
        this.valor = valor;
        this.descuento = descuento;
    }
 
    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 getClave() {
        return clave;
    }
 
    public void setClave(int clave) {
        this.clave = clave;
    }
 
    public double getValor() {
        return valor;
    }
 
    public void setValor(double valor) {
        this.valor = valor;
    }
 
    public double getDescuento() {
        return descuento;
    }
 
    public void setDescuento(double descuento) {
        this.descuento = descuento;
    }
 
 
public abstract double calcularDescuento();
 
}
 
 
public class TipoA extends DescuentoClientes {
 
    private double valorCompra;
    public TipoA() {
        super();
    }
 
    public TipoA(double valorCompra,String nombre, String apellido, int clave, double valor, double descuento) {
        super(nombre, apellido, clave, valor, descuento);
        this.valorCompra= valorCompra;
    }
 
    public double getValorCompra() {
        return valorCompra;
    }
 
    public void setValorCompra(double valorCompra) {
        this.valorCompra = valorCompra;
    }
    @Override
    public double calcularDescuento(){
 
        return(valorCompra*10)/100;
    }
 
 
}
 
 
 
public class TipoB extends DescuentoClientes{
 
    private double valrCompra;
    public TipoB() {
        super();
    }
 
        public TipoB(double valrCompra,String nombre, String apellido, int clave, double valor, double descuento) {
        super(nombre, apellido, clave, valor, descuento);
        this.valrCompra= valrCompra;
    }
 
    public double getValrCompra() {
        return valrCompra;
    }
 
    public void setVlrCompra(double vlrCompra) {
        this.valrCompra= valrCompra;
    }
    @Override
    public double calcularDescuento(){
 
        return(valrCompra*5)/100;
    }
}
 
 
public class TipoC extends DescuentoClientes{
 
    private double vlorCompra;
    public TipoC() {
        super();
    }
 
        public TipoC(double vlorCompra,String nombre, String apellido, int clave, double valor, double descuento) {
        super(nombre, apellido, clave, valor, descuento);
        this.vlorCompra= vlorCompra;
    }
 
    public double getVlrCompra() {
        return vlorCompra;
    }
 
    public void setVlorCompra(double vlrCompra) {
        this.vlorCompra= vlorCompra;
    }
    @Override
    public double calcularDescuento(){
 
        return(vlorCompra*2)/100;
    }
}
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 Rodrigo
Val: 2.052
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

¿Alguien me puede hacer el favor de ayudarme con este ejercicio de Java?

Publicado por Rodrigo (622 intervenciones) el 08/03/2021 14:31:35
Te sugiero que pongas el porcentaje de descuento y los metodos relacionados en la clase base, no en cada clase derivada.
En la clase derivada solo estableces el valor del descuento en el constructor y se lo pasas a la base.
Con eso puedes simplificar todas las clases derivadas, pues ellas ya no necesitan ni el setter ni el getter ni el metodo para obtener el descuento.

Usa el boton </>Codigo que aparece al publicar, para encerrar lo que muestras para que se vea indentado, con numeros de linea y sea mas facil leer.

Mira la diferencia:

1
2
3
4
5
6
7
int main() {
   // codigo aqui
   if( ... ) {
     for( ... ) {
     }
  }
}

int main() {
// codigo aqui
if( ... ) {
for( ... ) {
}
}
}
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
sin imagen de perfil
Val: 21
Ha aumentado su posición en 60 puestos en Java (en relación al último mes)
Gráfica de Java

¿Alguien me puede hacer el favor de ayudarme con este ejercicio de Java?

Publicado por Iván Andrés (12 intervenciones) el 08/03/2021 15:00:12
¡¡Muchas Gracias!!
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