Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - jNillo

Páginas: [1]
1
Por favor, echadme un cable, que no sé cómo implementar los métodos de la clase Sala  :'(

2
Hola buenas,
estoy realizando con BLUEJ un ejercicio para gestionar un multicine:

una primera clase llamada Pelicula se utiliza para manejar la información relativa a las películas, el campo genero es de tipo enumerado: (hasta aquí ningún problema)

Código: [Seleccionar]
public class Pelicula
{
    private String titulo;
    private String director;
    private int anyo;
    private String sinopsis;           
    private TGenero genero;             

   
    public Pelicula(String titulo, String director, int anyo,     
    String sinopsis, TGenero genero)                                       
    {

        this.titulo = titulo;               
        this.director = director;       
        this.anyo = anyo;               /
        this.sinopsis = sinopsis;
        setGenero(genero);             
    }                                 

 
    public void setTitulo(String titulo)
    {
        this.titulo = titulo;
    }
   
    public void setDirector(String director)
    {
        this.director = director;
    }
   
    public void setAnyo(int anyo)
    {                                       
        this.anyo = anyo;
    }
   
    public void setGenero(TGenero genero)   
    {                                       
        this.genero = genero;               
    }                                       
   
    public void setSinopsis(String sinopsis)       
    {
         this.sinopsis = sinopsis;
    }
   
    public String getTitulo()
    {
         return titulo;
    }
   
    public String getDirector()
    {
         return director;
    }
   
    public int getAnyo()
    {
         return anyo;
    }
   
    public TGenero getGenero()
    {                           
         return genero;          /
    }
   
    public String getSinopsis()
    {
         return sinopsis;
    }
   
    public void mostrarInfoPelicula()
    {
        System.out.println();               
        System.out.println("Película:" + "<" + titulo + ">");
        System.out.println("Director:" + "<" + director + ">");
        System.out.println("Año:" + "<" + anyo + ">");
        System.out.println("Género:" + "<" + genero + ">");
        System.out.println("Sinopsis:" + "<" + sinopsis + ">");
        System.out.println();
    }
       
}


La segunda clase a realizar es la clase Sesion, con estas funcionalidades:
1- cada sesión está identificada con una fecha (Date) compuesta por el día, mes, año, hora y minutos de comienzo de dicha sesión.
2- almacenar la película que se proyecta
3- almacenar el número de butacas que tiene de capacidad, determinado por la sala en que se proyecta cada sesión
4- almacenar el número de butacas disponible, que será el número total de butacas menos las que se han vendido
5- cada sesión debe contener un método para mostrar la información de la sesión
6- para facilitar la funcionalidad del sistema, queremos almacenar en cada sesión la sala en la que se proyecta (será la siguiente clase a implementar)

Esta clase me ha costado un poco de implementar debido al tipo Date y tener que cambiar de formato la hora con la clase SimpleDateFormat, pero creo que la tengo bien implementada:

Código: [Seleccionar]
import java.util.Date;
import java.text.SimpleDateFormat;

public class Sesion
{
    private Date fecha;
    private Pelicula pelicula;
    private int butacas;
    private int butacas_disponibles;
   

   public Sesion( Pelicula pelicula, int butacas, int butacas_disponibles, int anyo, int mes, int dia, int hora, int minuto)
    {
             
        this.pelicula = pelicula;
        this.butacas = butacas;
        this.butacas_disponibles = butacas_disponibles;
        fecha = new Date(anyo, mes, dia, hora, minuto);
    }
   
    public Sesion()
    {
        // initialise instance variables
       
    }
   
   
    public int actualizarButacasVendidas(int vendidas)
    {
        if(butacas_disponibles < vendidas ) {
            System.out.println("No hay tantas entradas disponibles!!");     
        }
        else {
            butacas_disponibles = butacas_disponibles - vendidas;
        }
        return butacas_disponibles;
    }
   
   
    public void mostrarInfoSesion()
    {
     SimpleDateFormat sdf = new SimpleDateFormat("d-MMMM-yyyy H:mm");
     String s = sdf.format(fecha);
     System.out.println();
     System.out.println("Fecha y hora de la sesion " + s);
     System.out.println("Pelicula: " + pelicula);
     System.out.println("Butacas que tiene la sala: " + butacas);
     System.out.println("Butacas disponibles: " + butacas_disponibles);
     System.out.println();
    }
}

Tengo un segundo constructor "medio-hecho" ya preparado porque sospecho que al implementar la clase Sala me podría hacer falta.


Ahora empiezan los problemas:
Tengo que implementar una nueva clase Sala que:
1- esté identificada por un número de sala. Este atributo no se debe poder modificar, pero sí consultar. Para ello se debe proporcionar como atributo en el constructor de la clase Sala
2- almacene el número de butacas que tiene dicha sala
3- almacene las sesiones que se proyectan en dicha sala. Para ello usaremos un ArrayList
(estructura para almacenar un conjunto de objetos)
4- sea capaz de eliminar una sesión concreta a partir de su fecha de proyección
5- añadir una nueva sesión de proyección en dicha sala
6- devolver la sesión, a partir de la fecha de proyección
7- mostrar por pantalla la información de todas las sesiones de la sala con un método llamado mostrarInfoSesiones();
8- mostrar por pantalla la información de una sesión concreta, identificada por la fecha de su proyección. Para ello, utilizaremos un método llamado mostrarInfoSesion(Date fecha); que reciba como parámetro la fecha de proyección de la sesión que queremos mostrar.


Aquí ya es donde me atasco, me lío a la hora de trabajar con ArrayList, no sé bien como pasar valores de las sesiones a la sala, etc.

Por favor, ¿cómo debo implementar esta clase Sala?

Os pongo el código que tengo hecho de esta clase Sala, donde está indicados los métodos que creo que necesitaré, pero inacabados:

Llevo un lío imresionante, no sé por donde "atacarle"

 
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Date;
import java.text.SimpleDateFormat;

public class Sala
{

    private int numero_sala;
    private int butacas;
    private ArrayList<Sesion> sesiones;
   

 
    public Sala(int numero_sala, int butacas)
    {
        this.numero_sala = numero_sala;
        this.butacas = butacas;
        sesiones = new ArrayList<Sesion>();
    }


    public void eliminarSesion(Date fecha)
    {
     
       
    }
   
    public void anyadirSesion(Sesion sesion)
    {
        sesiones.add(sesion);
       
    }
   
    public void Sesion getSesion(Date fecha)
    {
       
       
    }
   
    public void mostrarInfoSesiones()
    {
     
       
    }
   
    public void mostrarInfoSesion(Date fecha)
    {
       
       
    }
}

Gracias de antemano, me gusta buscar información e ir aprendiendo a base de fallos, pero llevo días con esta clase atascado

3
Hola de nuevo,
he estado probando con lo de capturar por pantalla pero no me aclaro  :'(

He probado un ejercicio parecido. Consiste en crear una clase Pelicula para crear las peliculas de un cine (ningún problema con esta clase) y una clase Sesion para las sesiones del cine.
Esta clase Sesion tiene un campo fecha tipo Date, pero no sé como pasarle valor a este campo cuando construyo un nuevo objeto, estoy atascado.
Aquí está el código de la clase Sesion a falta de crear los métodos.
--Utilizo BlueJ para realizar las aplicaciones

Código: [Seleccionar]
import java.util.Date;

public class Sesion
{
    // instance variables - replace the example below with your own
    private Date fecha;
    private Pelicula pelicula;
    private int butacas;
    private int butacas_disponibles;
   

    /**
     * Constructor for objects of class Sesion
     */
    public Sesion(Date fecha, Pelicula pelicula, int butacas, int butacas_disponibles)
    {
        // initialise instance variables
        this.fecha = fecha;
        this.pelicula = pelicula;
        this.butacas = butacas;
        this.butacas_disponibles = butacas_disponibles;
    }


viendo la ayuda de BlueJ, he visto que Date puede tener la forma
 Date(int year, int month, int day, int hour, int minute)

de modo que intento dar valor al campo fecha. Si quiero escribir el 2 de julio de 2015 a las 15:30    escribo  115,6,2,15,30   pero nada, salta el error: <identifier> expected

¿qué puedo hacer?


4
Aprender a programar desde cero / Re:introducir Date
« en: 22 de Abril 2015, 18:06 »
Hola, gracias por la respuesta
 
Creo que entiendo lo que dices con lo de depreciated, lo que no acabo de comprender es lo de capturar de pantalla.

Estoy utilizando BlueJ
Tengo una clase cita_medico en la que uno de sus campos es fecha del tipo Date. Cuando construyo un nuevo objeto cita, cuando me pide la fecha, si quiero poner que sea el dia 12 de enero a las cuatro, escribo 20015/01/12/16/00   pero sale el error incompatible tipes.

¿cómo he de escribirlo para que reconozca que es del formato Date?

Gracias d antemano, sé que todavía estoy muy verde..


5
Hola,

Si tengo un constructor en el cual uno de sus parámetros es del tipo Date, cuando tenga que introducir por teclado dicho parámetro tipo Date, ¿cómo se escribe? es decir, ¿en qué formato se introduce para que lo reconozca y no de error?

Gracias

6
Hola buenas, soy nuevo aquí, he llegando a este foro después de buscar mucho en internet acerca de los tipos enumerados, he decidido registrarme porque veo que este foro es muy interesante, hay gente que "controla mucho" y está muy bien hecho, estoy seguro que me vendrá genial para aprender a programar.

Tengo el siguiente problema:

Tengo que realizar un proyecto con BlueJ para gestionar una sala de cine. Una clase principal llamada pelicula debe tener varios atributos (con sus geters y seters), uno de ellos es el género de la pelicula que debe ser de tipo enumerado. Siempre que creo una nueva instancia de la clase pelicula, al llegar al atributo genero y darle valor, siempre me salta el "Error: incompatible types".

Llevo muchas horas y he intentado de todo: utilizando un tipo enumerado "simple", un tipo de enumerado "complejo" asociando una cadena a cada valor del tipo enumerado,  por ejemplo: TERROR("Terror"),  he probado con switch, con if-else, con llamadas externas a métodos del tipo enumerado,  pero no hay manera.

esta es la clase enumerada:
Código: [Seleccionar]
public enum GeneroEnumerado
{
    COMEDIA, ACCION, TERROR, CIENCIAFICCION;
}


esta la principal:
Código: [Seleccionar]
public class Pelicula
{
    private String titulo;
    private String director;
    private int anyo;
    private String sinopsis;
    private GeneroEnumerado genero;
   
   
    public Pelicula(String eltitulo, String eldirector, int elanyo, String lasinopsis,
    String elgenero)
    {
        // initialise instance variables
        titulo=eltitulo;
        director=eldirector;
        anyo=elanyo;
        sinopsis=lasinopsis;
        genero=GeneroEnumerado.COMEDIA;
        if ( elgenero == "terror")
        {
            genero=GeneroEnumerado.TERROR;
        }
        else if ( elgenero == "comedia")
        {
            genero=GeneroEnumerado.COMEDIA;
        }
         else if ( elgenero == "accion")
        {
            genero=GeneroEnumerado.ACCION;
        }
         else if ( elgenero == "cienciaficcion")
        {
            genero=GeneroEnumerado.CIENCIAFICCION;
        }
        else
        {
            System.out.println("no es un genero valido");
        }       
    }

     public GeneroEnumerado getGenero()
    {
        return genero;
    }
    public String getTitulo()
    {
        return titulo;
    }
    public String getDirector()
    {
        return director;
    }
    public int getAnyo()
    {
        return anyo;
    }
    public String getSinopsis()
    {
        return sinopsis;
    }
    public void setTitulo(String eltitulo)
    {
        titulo=eltitulo;
    }
    public void setDirector(String eldirector)
    {
        director=eldirector;
    }
    public void setAnyo(int elanyo)
    {
        anyo=elanyo;
    }
    public void setSinopsis(String lasinopsis)
    {
        sinopsis=lasinopsis;
    }
    public void mostrarInfoPelicula()
    {
        // put your code here
        System.out.println("Pelicula: <"+titulo+">");
        System.out.println("Director: <"+director+">");
        System.out.println("Anyo: <"+anyo+">");
        System.out.println("Sinopsis: <"+sinopsis+">");
    }
}

-Como se ve, inicializo el tipo enumerado dándole un valor, COMEDIA en este caso, pues creo que de lo contrario sería fallo al estar vacío, null.

-Esta es una de las muchas "malas versiones" que he probado, me he atascado en esto y tengo que modificar varias cosas, por ejemplo sé que debo utilizar la palabra clave this.

-Como también he de crear un setGenero, creo que sería mejor llamar a dicho setGenero desde el constructor, ¿no?.

-Consultando el foro he visto problemas en que se utiliza el método Scanner, pero yo de momento no puedo utilizarlo, no debo utilizar ni Scanner ni importar ningún otro paquete.

-A la hora de entrar el atributo he probado de muchas formas, por ejemplo si quiero entrar terror he probado: "TERROR", TERROR, "terror", terror, pero ni de suerte.

Muchas gracias de antemano, sé que estoy muy verde todavía  :-[, pero me está gustando esto de programar.

Páginas: [1]

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