elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ejercicio Java cine
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio Java cine  (Leído 15,327 veces)
Glwlwl

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ejercicio Java cine
« en: 25 Marzo 2015, 12:24 pm »

Buenas estoy intentando resolver un ejercicio de tres partes para la facultad y me he atascado bastante pronto ^^

Debo crear tres clases para simular la venta de entradas de un cine.

Las clases son : Cine, sala, sesión
 
Actualmente estoy intentado hacer la clase cine.

Este es el enunciado
http://gyazo.com/eb886e0a7eb52b7a40169b1b30bacd0a
http://gyazo.com/099845ddfabf07b842826b67024499bc

Y esto es lo que hice hasta ahora

http://gyazo.com/3bff40043b94970b000a518b03835ac3

La verdad no se como continuar, si alguien pudiera darme un ejercicio del estilo corregido, para tener una idea de lo que debo hacer se lo agradecería.
Gracias espero vuestras respuestas. =)

Código
  1. [/public class Cine {
  2.  
  3. private String nombre;
  4. private int[] salas = new int[20];
  5.  
  6. public Cine(String nombre, int[] salas) {
  7. this.nombre = nombre;
  8. this.salas = salas;
  9.  
  10. }
  11.  
  12. public String getNombre() {
  13. return nombre;
  14. }
  15.  
  16. public String getSalas() {
  17. return salas;
  18. }
  19. }]


« Última modificación: 25 Marzo 2015, 12:26 pm por Glwlwl » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejercicio Java cine
« Respuesta #1 en: 25 Marzo 2015, 12:38 pm »

dudo que te den un ejercicio listo, así no funciona normalmente el foro, revisa los temas de java, ve las preguntas, las respuestas, leete un tutorial y ante duda, aquí estamos  ;)

por cierto, tema movido a java


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Glwlwl

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ejercicio Java cine
« Respuesta #2 en: 25 Marzo 2015, 12:51 pm »

No pretendía que me dieran la resolución del ejercicio, igual me he expresado mal pero lo que quería era un ejercicio parecido para ver por donde abarcarlo.  

Aun así gracias por la aclaración intentare buscar mas información en el foro.

Mod: procura no hacer doble post, usa el botón modificar para estos casos
« Última modificación: 25 Marzo 2015, 12:56 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejercicio Java cine
« Respuesta #3 en: 25 Marzo 2015, 12:55 pm »

si, se entendió perfectamente ;)

lo que pasa es que es raro que te den un código así de muestra, no digo que no se pueda, ni que vaya contra las normas... solo que no es común ;)

que tal si haces  preguntas, expones tus dudas y por ahí vas resolviendo
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Ejercicio Java cine
« Respuesta #4 en: 25 Marzo 2015, 15:21 pm »

Podría darte todo el código, pero no será bueno para ti. El objetivo de los ejercicios es que trates de no pedir ayuda hasta que realmente te hayas estancado. Así es como se hace un buen programador, en base a trabajo duro. Y mira que el curso de Programación II, donde se supone que has pasado Métodos algorítmicos I, Métodos algorítmicos II y Programación I, y quizás Análisis de algoritmos. Es decir, en éste punto, no debería ser problema resolver el ejercicio.

Como soy buen amigo (xD), te dejaré algunas clases:

Código
  1. import java.util.List;
  2. import java.util.ArrayList;
  3.  
  4. public class Session {
  5.    private Byte id;
  6.    private List<String> schedules;
  7.    private SessionSeats sessionSeats;
  8.  
  9.    public Session() {
  10.        schedules = new ArrayList<>();
  11.    }
  12.  
  13.    public Session(Byte id, List<String> schedules., SessionSeat sessionSeats) {
  14.        this.id = id;
  15.        this.schedules = schedules;
  16.        this.sessionSeats = sessionSeats;
  17.    }
  18.  
  19.    public Byte getid() {
  20.        return id;
  21.    }
  22.  
  23.    public void setid(Byte id) {
  24.        this.id = id;
  25.    }
  26.  
  27.    public List<String> getSchedules() {
  28.        return schedules;
  29.    }
  30.  
  31.    public void setSchedules(List<String> schedules) {
  32.        this.schedules = schedules;
  33.    }
  34.  
  35.    public SessionSeats getSessionSeats() {
  36.        return sessionSeats;
  37.    }
  38.  
  39.    public void setSessionSeats(SessionSeats sessionSeats) {
  40.        this.sessionSeats;
  41.    }
  42.  
  43.    public void addSchedule(String schedule) {
  44.        schedules.add(schedule);
  45.    }
  46.  
  47.    public String removeSchedule(String schedule) {
  48.        shedules.remove(schedule);
  49.        return schedule;
  50.    }
  51.  
  52. }

Código
  1. public class SessionSeats {
  2.    private Character[][] seats;
  3.  
  4.    public SessionSeats(Character[][] seats) {
  5.        this.seats = seats;
  6.        if(seats[0] == null)
  7.            fillSeatsByDefault();
  8.    }
  9.  
  10.    public Character[][] getSeats() {
  11.        return seats;
  12.    }
  13.  
  14.    public void showSeats() {
  15.        for(short row=0; row<seats.length; row++) {
  16.            for(short col=0; col<seats[row].length; col++) {
  17.                System.out.println(seats[row][col]);
  18.            }
  19.        }
  20.    }
  21.  
  22.    private void fillSeatsByDefault() {
  23.        for(short row=0; row<seats.length; row++) {
  24.            for(short col=0; col<seats[row].length; col++) {
  25.                seats[row][col] = 'O';
  26.            }
  27.        }
  28.    }
  29.  
  30.    private void reserveSeat(Integer row, Integer column) {
  31.        seats[row][column] = 'X';
  32.    }
  33.  
  34. }

Código
  1. import java.util.List;
  2. import java.util.ArrayList;
  3.  
  4. public class Room {
  5.    private Byte id;
  6.    private List<Session> sessions;
  7.  
  8.    public Room() {
  9.        sessions = new ArrayList<>();
  10.    }
  11.  
  12.    public Room(Byte id, List<Session> sessions) {
  13.        this.id = id;
  14.        this.sessions = sessions;
  15.    }
  16.  
  17.    public Byte getid() {
  18.        return id;
  19.    }
  20.  
  21.    public void setid(Byte id) {
  22.        this.id = id;
  23.    }
  24.  
  25.    public List<Session> getSessions() {
  26.        return sessions;
  27.    }
  28.  
  29.    public void setSessions(List<Session> sessions) {
  30.        this.sessions = sessions;
  31.    }
  32.  
  33.    public void addSession(Session session) {
  34.        sessions.add(session);
  35.    }
  36.  
  37.    public Session removeSession(Session session) {
  38.        sessions.remove(session);
  39.        return session;
  40.    }
  41.  
  42. }

Código
  1. public class MovieTheater {
  2.    private String name;
  3.    private List<Room> rooms;
  4.    private final TicketSeller ticketSeller;
  5.  
  6.    public MovieTheater(String name, List<Room> rooms) {
  7.        this.name = name;
  8.        this.rooms = rooms;
  9.        ticketSeller = new TicketSeller(rooms);
  10.    }
  11.  
  12.    public Ticket buyTicket() {
  13.        ticketSeller.buyTicket();
  14.    }
  15.  
  16.    // tus otros metodos aquí...
  17. }

Código
  1. public class Ticket {
  2.    private String owner;
  3.    private Session sessionId;
  4.    private String schedule;
  5.    private Integer seat[];
  6.  
  7.    public Ticket() {
  8.        seat = new Integer[2];
  9.    }
  10.  
  11.    public Ticket(String owner, Session session, String schedule, Integer[] seat) {
  12.        this.owner = owner;
  13.        this.session = session;
  14.        this.schedule = schedule;
  15.        this.seat = seat;
  16.    }
  17.  
  18.    public String getOwner() {
  19.        return owner;
  20.    }
  21.  
  22.    public void setOwner(String owner) {
  23.        this.owner = owner;
  24.    }
  25.  
  26.    public Session getSession() {
  27.        return sessionId;
  28.    }
  29.  
  30.    public void setSessionId(Session session) {
  31.        this.session = session;
  32.    }
  33.  
  34.    public String getSchedule() {
  35.        return schedule;
  36.    }
  37.  
  38.    public void setSchedule(String schedule) {
  39.        this.schedule = schedule;
  40.    }
  41.  
  42.    public Integer[] getSeat() {
  43.        return seat;
  44.    }
  45.  
  46.    public void setSeat(Integer[] seat) {
  47.        this.seat = seat;
  48.    }
  49.  
  50. }

Código
  1. public class SessionUtils {
  2.  
  3.    private void showSchedules(List<Room> rooms) {
  4.        for(Room room : rooms) {
  5.            for(Session session : room.getSessions()) {
  6.                for(String schedule : session.getSchedules())
  7.                    System.out.println(schedule);
  8.            }
  9.        }
  10.    }
  11.  
  12.    private Byte getSessionId(List<Room> rooms, String choosedSchedule) throws RuntimeException {
  13.        Byte id = -1;
  14.        for(Room room : rooms) {
  15.            for(Session session : room.getSessions()) {
  16.                for(String schedule : session.getSchedules()) {
  17.                    if(schedule.equals(choosedSchedule))
  18.                        id = session.getSessionId();
  19.                }
  20.            }
  21.        }
  22.        if(id == -1)
  23.            throw new RuntimeException("No se ha encontrado una sesión para ese horario");
  24.        return id;
  25.    }
  26.  
  27.    private Session getSessionById(List<Room> rooms, Byte id) throws RuntimeException {
  28.        Session target = null;
  29.        for(Room room : rooms) {
  30.            for(Session session : room.getSessions()) {
  31.                if(session.getSessionId().equals(id))
  32.                    target = session;
  33.            }
  34.        }
  35.        if(target == null)
  36.            new RuntimeException("No se ha encontrado una sesión con ese ID");
  37.        return target;
  38.    }
  39. }

Código
  1. public class TicketSeller {
  2.    private final List<Room> rooms;
  3.  
  4.    public TicketSeller(List<Room> rooms) {
  5.        this.rooms = rooms;
  6.    }
  7.  
  8.    public Ticket buyTicket() {
  9.        System.out.println("¿Cuál es su nombre?");
  10.        String owner = new Scanner(System.in).nextLine();
  11.        System.out.println("¿En que horario desea ver la película?");
  12.        SessionUtils.showSchedules(rooms);
  13.        String schedule = new Scanner(System.in).readLine();
  14.        Byte sessionId = SessionUtils.getSessionIdBySchedule(rooms, schedule);
  15.        Session session = SessionUtils.getSessionById(rooms, sessionId);
  16.        SessionSeats seats = session.getSessionSeats();
  17.        seats.showSeats(); // muestra los asientos disponibles
  18.        System.out.println("¿Qué asiento desea? Ingresar las coordenadas así: X-Y");
  19.        String[] coordinates = new Scanner(System.in).readLine().split("-");
  20.        Integer row = coordinates[0];
  21.        Integer column = coordinates[1];
  22.        seats.reserveSeat(row, column)
  23.        Integer[] seat = new Integer[] { row, column};
  24.        Ticket ownerTicket = new Ticket(owner, session, schedule, seat);
  25.  
  26.        return owerTicket;
  27.    }
  28. }


Ya tienes por lo menos el 50%.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Glwlwl

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ejercicio Java cine
« Respuesta #5 en: 25 Marzo 2015, 23:56 pm »

Te lo agradezco enormemente, y de verdad mi objetivo nunca fue este, me gusta aprender el problemas es que con el trabajo y las asignaturas del primer quatri decidí dejar de lado programación 1 para asegurarme de aprobar el resto(por lo que no tengo las bases) y cuando intente cancelar la matricula de la asignatura del segundo quatri (programación 2) era demasiado tarde y no me puedo permitir perder el dinero por catear la asignatura. Te agradezco muchísimo el aporte, me esta ayudando mucho.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejercicio Java
Java
Phantasy 1 2,273 Último mensaje 23 Abril 2013, 09:09 am
por Debci
ejercicio java
Java
piticli25 1 2,369 Último mensaje 19 Diciembre 2013, 13:39 pm
por JADP
[JAVA] Ejercicio Java , no se por donde cogerlo
Java
Xh4xor23 8 5,422 Último mensaje 1 Abril 2014, 23:02 pm
por 7Bliz
Ejercicio Java
Programación General
virustrol 2 2,601 Último mensaje 29 Marzo 2014, 16:12 pm
por virustrol
java crear sesion cine nullpointerexception
Java
silk_25 1 1,889 Último mensaje 13 Noviembre 2021, 18:38 pm
por silk_25
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines