aqui les dejo el codigo del ejercicio, si llegaran a tener algun error avisar de inmediato y arreglare el error Gracias y espero que hayan resuelto el ejercicio.
Código (java) [Seleccionar]
import java.util.Calendar;
import java.util.Scanner;
//CLASE PS3
public class PS3Game extends RentItem {
private Calendar fechapublic;
private String genero;
public PS3Game(int c, String n) {
super(c,n, 30);
fechapublic = Calendar.getInstance();
}
@Override
public String toString() {
return super.toString() + " fechapublic=" +
fechapublic.getTime() + " - PS3 GAME";
}
@Override
public double pagoRenta(int dias) {
return dias * precio;
}
@Override
public String subMenu() {
return super.subMenu() +
"\n2-Cambiar Fecha.";
}
public void setFechaPublic(int y, int m, int d){
fechapublic.set(y, m-1, d);
}
@Override
public void ejecutarOpcion(int op) {
Scanner lea = new Scanner(System.in);
switch(op){
case 1:
System.out.println(this);
break;
case 2:
System.out.println("Ingrese año: ");
int y = lea.nextInt();
System.out.println("Ingrese Mes: ");
int m = lea.nextInt();
System.out.println("Ingrese dia: ");
int d = lea.nextInt();
setFechaPublic(y, m, d);
break;
case 3:
System.out.println("OPCION NO VALIDA");
}
}
}
//CLASEMOVIE
import java.util.Scanner;
public class Movie extends RentItem {
private String estado;
public Movie(int codigo, String nombre, double precio) {
super(codigo, nombre, precio);
estado = "ESTRENO";
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
@Override
public String toString() {
return super.toString() + " estado=" +
estado + " -MOVIE";
}
@Override
public double pagoRenta(int dias) {
double tot = this.precio;
if( estado.equals("ESTRENO")){
if(dias > 2)
tot += (dias-2) * 50;
}
else{
if(dias > 5)
tot += (dias-5) * 30;
}
return tot;
}
@Override
public String subMenu() {
return super.subMenu() + "\n2-Cambiar Estado.";
}
@Override
public void ejecutarOpcion(int op) {
Scanner lea = new Scanner(System.in);
switch(op){
case 1:
System.out.println(this);
break;
case 2:
System.out.println("Ingrese estado: ");
setEstado(lea.next());
break;
case 3:
System.out.println("OPCION NO VALIDA");
}
}
}
//MAIN
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
static ArrayList<RentItem> items = new ArrayList<>();
static Scanner lea = new Scanner(System.in);
public static void main(String[] args) {
int op;
Scanner lea = new Scanner(System.in);
do{
System.out.println("1- Agregar");
System.out.println("2- Rentar");
System.out.println("3- SubMenu");
System.out.println("4- Salir");
System.out.println("Escoja Opcion: ");
op = lea.nextInt();
switch(op){
case 1:
System.out.println("Tipo?: ");
String tipo = lea.next();
addItem(tipo);
break;
case 2:
System.out.println("Codigo: ");
int cod = lea.nextInt();
rentarItem(cod);
break;
case 3:
System.out.println("Codigo: ");
cod = lea.nextInt();
subMenuItem(cod);
break;
}
}while(op!=4);
}
private static void addItem(String tipo) {
System.out.println("ingrese codigo");
int codigo = lea.nextInt();
if( buscar(codigo) == null ){
System.out.println("ingrese nombre");
String n = lea.next();
if( tipo.equalsIgnoreCase("MOVIE")){
System.out.println("ingrese el precio");
double precio = lea.nextDouble();
items.add( new Movie(codigo, n, precio) );
}
else if( tipo.equalsIgnoreCase("PS3")){
items.add( new PS3Game(codigo, n) );
}
}
else{
System.out.println("CODIGO YA EXISTE");
}
}
private static void rentarItem(int cod) {
RentItem ri = buscar(cod);
if( ri != null ){
int dias = lea.nextInt();
double result = ri.pagoRenta(dias);
System.out.println(result);
}
}
private static void subMenuItem(int cod) {
RentItem ri = buscar(cod);
if( ri != null ){
System.out.println(ri.subMenu());
System.out.println("Elija opcion: ");
int op = lea.nextInt();
ri.ejecutarOpcion(op);
}
}
private static RentItem buscar(int cod){
for(RentItem ri : items){
if(ri.codigo == cod)
return ri;
}
return null;
}
}