Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: tetri24 en 20 de Abril 2015, 17:17
-
Buenas. Estoy haciendo un trabajo para la universidad y tengo problemas con la ultima parte del código. Es un trabajo en tres etapas y ya he resuelto dos. Pero con la tercera no doy pie con bola. Si me pudieseis echar una mano os lo agradecería eternamente. Adjunto enlace con lo que tengo resuelto y con los requisitos de la practica. Un saludo y gracias por adelantado. Pongo aquí el tema porque no se exactamente donde colgarlo. Si el moderador lo considera oportuno que lo elimine. Gracias de nuevo.
https://onedrive.live.com/redir?resid=e8b20a8dff60ee73!8624&authkey=!AJEP9nUsiLN0lGo&ithint=folder%2cpdf
-
Hola, en primer lugar pedirte por favor que no repitas el mismo mensaje en distintos puntos del foro o podrías ser bloqueado por los moderadores. Voy a mantener este hilo y borrar el otro abierto con el mismo tema.
Sobre la cuestión que planteas, en el link de descarga el documento pdf indica "sólo lectura" y no permite ser descargado. Por otra parte, indicarte que es necesario que des una descripción más amplia de qué es lo que llevas hecho y el punto concreto donde no sabes cómo avanzar o donde obtienes errores, de otra forma resultará complicado ayudarte.
Saludos
-
Sorry, culpa mia. A ver si asi se puede ver. Un saludo y disculpa la torpeza.
https://onedrive.live.com/redir?resid=e8b20a8dff60ee73!8624&authkey=!AFrIpF58Vzpd3zU&ithint=folder%2cpdf
-
Sí, he podido descargarlo con botón derecho y opción descargar (a lo mejor no lo probé así antes ?)
¿Puedes explicar lo que llevas hecho y qué es lo que te está dando problemas o no sabes hacer?
::)
-
Si buenas. la practica es una especie de gestor de cine. Compuesto de sesiones, salas, películas, etc. Consta de tres etapas, de las cuales he resuelto dos mas o menos sudando sangre porque soy neófito en la materia. La he subido completa para que podáis ver el código que he hecho, que por otra parte no se si esta muy bien pero que en definitiva compila. La tercera y ultima etapa es la que no se por donde meterle mano. Para mi es un mundo esto. Estoy haciendo ingeniería mecánica y algebra, calculo, termodinámica o cualquier otra materia la abarco sin problema, pero esta asignatura de informática me vuelve loco. Supongo que para alguien con experiencia lo vera como una tontería. Gracias de nuevo.
-
Hola, en primer lugar te recomiendo este curso donde tienes todos los conceptos básicos http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188
La etapa 3 por lo que veo te va indicando los pasos que tienes que dar. Lo primero sería crear la clase Entrada.
Tendrías que crear la clase teniendo como atributos de clase (campos):
- private Sesion sesion; (porque te dice que cada entrada es para una sesión)
- private double precio; (para guardar el precio)
Y los métodos getter y setter correspondientes...
Vete creando el código y vete pegándolo en el foro siguiendo las instrucciones del enunciado para que lo revisemos, si no sabes hacer algo indica el punto concreto del código o del enunciado que no entiendes para tratar de mirarlo y darte una orientación.
Saludos
-
Buenas. He creado la clase entrada con los constructores y los getters y los setters. No he incluido el setPrecio porque me dice que las entradas serán genéricas con precio ya preestablecido.
Luego en la clase cine he creado un ArrayList de entrada, tal y como dice el enunciado.
Me quedo atrancado en los puntos 2, 3 y 4 que no se como implementarlos.
Supongo que se debería de implantar un ciclo for que recorriera todas las sesiones para comprobar que la película existe, y después si existe, implantar un if para que la venta de entradas no exceda la capacidad, pero aun asi no se como hacerlo.
Alguna sugerencia?? Gracias por adelantado.
Adjunto nuevo código con lo que he hecho.
-
Me descargue el documento para desarrollarlo en casa en mis tiempos libres cuando salga de vacaciones... (Espero que no te molestes :$)
Sal2.... xd
-
Me descargue el documento para desarrollarlo en casa en mis tiempos libres cuando salga de vacaciones... (Espero que no te molestes :$)
Sal2.... xd
Claro que no. Si encuentras algún defecto o algo mejorable avísame. Y si sabes como resolver la tercera etapa me vendría de perlas. Un saludo
-
Hola para el punto 2
debe permitir la realización de una venta de un número x de entradas para una sesión concreta, es decir, para una fecha y una pelıcula concreta.
En primer lugar se debe comprobar que existe en el cine alguna sesión con dichos datos, es decir, que en la fecha pedida se proyectará la película que se pide. En caso afirmativo, se debe comprobar que el número de entradas pedidas no excede el número de butacas disponibles para esa sesión. Por último, se deberán crear tantos objetos de la clase entrada como cantidad de entradas se desean comprar, para posteriormente almacenarlas y actualizar el número de butacas disponibles de la sesión concreta;
Antes de realizar este punto tienes que preparar varias cosas.
Paso 1) Para poder comparar fechas debes disponer de un método equals en la clase Sesion, que te permita comparar si las fechas de dos sesiones son iguales
Implementación de método equals se explica en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=666:sobreescribir-metodos-tostring-y-equals-en-java-ejemplos-y-ejercicios-resueltos-comparar-objetos-cu00694b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
Orientación:
public boolean equals (Object obj) {
if (obj instanceof Fecha) {
Fecha tmpFecha = (Fecha) obj;
if (this.dia==tmpFecha.getDia() && this.mes==tmpFecha.getHora() && this.año==tmpFecha.getAño() &&
this.hora == tmpFecha.getHora() &&this.minutos==tmpFecha.getMinutos()
) { return true; } else { return false; }
} else { return false; }
}
[code]
Ahora para comparar dos Fechas debes hacerlo usando el método equals. Por ejemplo if (fecha1.equals(fecha2)) te devuelve true si ambas son la misma fecha, o false si no lo son.
Para poder comparar Peliculas debes disponer de un método equals en la clase Pelicula
Orientación:
[code]
public boolean equals (Object obj) {
if (obj instanceof Pelicula) {
Pelicula tmpPelicula = (Pelicula) obj;
if (this.titulo.equals(tmpPelicula.getTitulo()) && this.director.equals(tmpPelicula.getDirector()) &&
this.año == tmpPelicula.getAño() && this.sinopsis.equals(tmpPelicula.getSinopsis()))
{ return true; } else { return false; }
} else { return false; }
}
Tienes que implementar métodos equals en todas las clases epara las que necesites hacer comparaciones de objetos.
Paso 2) Tener en cuenta cómo relacionan las sesiones con el cine. Tal y como lo tienes definido en la clase Sala tienes un ArrayList de Sesion y en la clase Cine tienes un ArrayList de sala
Paso 3) Para implementar lo que pide el punto 2 del paso 3 del enunciado, parece que debe hacerse en un método cuya idea sería esta, quizás haga falta algún parámetro más...:
public void venderEntradasSesion (int numeroEntradasVenta, Sesion sesionDeLaVenta) {
Aquí tienes que recorrer con bucles y hacer comparaciones con equals siguiendo lo que dice el enunciado
}
Intenta desarrollar esto y lo vas pegando...
Saludos
-
Hola buenas compañeros.....también estoy trabajando en estea práctica pero me temo que mis conocimientos no llegan para más....
Cómo seguiría el método.... sé qué no es correcto de antemano
public void venderEntradasSesión (int numeroEntradasVenta,Sesión sesiónDeLaVenta)
{
Iterator<Sesión> it = sesiones.iterator();
while(it.hasNext())
{Sesión s = it.next();
if(s.fecha.equals(tmpSesión.getFecha())&&
s.fecha.equals(tmpSesión.Película))
if(numeroEntradasVenta < sesión.getButacasDisponibles())
entrada =new entrada();
}
Salu2
-
Hola, vender entradas de una sesión lo único que parece necesario es comprobar que el número de entradas disponibles sea mayor o igual que el número de entradas a vender. Si es así, se debe realizar la venta y actualizar el número de entradas disponible (que disminuirá en el número de entradas vendidas). Si no es así, deberá darse un mensaje de advertencia o lanzar una excepción "No hay suficientes entradas disponibles". No entiendo muy bien para qué planteas un iterador de sesiones ¿?
Saludos
-
Buenas noches César y demás
La idea es recorrer el arraylist "sesiones" para encontrar la sesión con una fecha determinada y a partir de esa búsqueda comprar las entradas.
-
Hola en ese caso intenta hacer pruebas primero para ver que te funcione la búsqueda de sesión dentro del arraylist. Para comprobar que te funcione pon un mensaje como ¡Se ha encontrado la sesión buscada!, o ¡No se ha encontrado!
Una vez consigas que te funcione esto, añade la lógica de la venta.
La sesión buscada es sesiónDeLaVenta según entiendo ¿por qué pones tmpSesión?
public void venderEntradasSesión (int numeroEntradasVenta,Sesión sesiónDeLaVenta)
{
boolean seEncontroSesion = false;
Iterator<Sesión> it = sesiones.iterator();
while(it.hasNext()){
Sesión s = it.next();
if(s.fecha.equals(sesiónDeLaVenta.getFecha())&& s.fecha.equals(sesiónDeLaVenta.Película)) {
seEncontroSesion = true;
System.out.println("¡Encontrada sesión de la venta!");
}
if (seEncontroSesion == true) {
//Aquí iría la lógica de la venta
}
else {
System.out.println("Lo sentimos pero la venta no puede realizarse. Motivo: no se encuentra la sesión buscada");
}
}
Saludos
-
Hola. Después de realizar mil pruebas. y modificando algo el código y colocándolo en la clase sala:
public void venderEntradasSesiónconcreta (int numeroEntradasVenta,Date date, Pelicula film)
{
boolean seEncontroSesion = false;
Iterator<Sesión> it = sesiones.iterator();
while(it.hasNext()){
Sesión s = it.next();
if(s.fecha.equals(date)&& s.pelicula.equals(film)) {
seEncontroSesion = true;
System.out.println("¡Encontrada sesión de la venta!");
}
if (seEncontroSesion == true) {
//Aquí iría la lógica de la venta
}
else {
System.out.println("Lo sentimos pero la venta no puede realizarse. Motivo: no se encuentra la sesión buscada");
}}}
he conseguido que realice la busqueda pero en el terminal me devuelve siempre tres respuestas y no sé pq. Desde la clase cine no puedo. Que debería cambiar?
código en el principal: (tras crear fecha 3 y pelicula 2 y añadirlas a la sala1 del cine1
sala1.venderEntradasSesiónconcreta(2,fecha3,pelicula2);
terminal:
"Lo sentimos pero la venta no puede realizarse. Motivo: no se encuentra la sesión buscada")
"Lo sentimos pero la venta no puede realizarse. Motivo: no se encuentra la sesión buscada")
¡Encontrada sesión de la venta!
Por otro lado dentro del cine1 sólo tengo una sala. Tb debería especificar de algun modo la sala para que la busqueda sea posible ?
salu2
-
Hola, adjunta el código como lo tengas ahora para poder verlo, viendo ese fragmento no acierto a orientarme :-\
Saludos
-
Hola a todos.Este es el código completo. el enunciado está en un post de otro compañero más arriba.
gracias
-
No había visto este post, cojo el texto del ejercicio para desarrollarlo y practicar :) con permiso.
-
Buenas, estoy metiendome con el lio mayusculo de esta practica del Cine, cuando la termine la subiré para recibir comentarios y apuntes, que la verdad ha sido muy liosa realizarla, teniendo en cuenta que llevo con ella 4 días etc...
Pero queria preguntar, es obligatorio hacerla con la clase Date o puede ser Calendar, lo digo porque la clase Date esta más pasada que la heroina. Se puede pero complica un poco, es obligatorio realizarla con Date? solo eso, gracias.
P.D. Sino supongo que puedo usar un conversor con Calendar y pasarlo a Date con el metodo getTime()
P.D.2 Si se que esto es tan lio no lo empiezo ;)
-
Hola Lorenzo, yo creo que podrías hacerlo con una clase Datem cuyo único atributo sea un Calendar.
Como tú dices la clase Date está deprecated y lo que debería usarse es el nuevo api de Java 8. El problema está en el enunciado de la práctica, si lo ves verás que ponen ejemplos orientativos sobre el código donde usan Date. Ese creo que es el motivo por el que se ha usado Date, si los ejemplos hubieran sido con Calendar se hubiera usado Calendar.
El problema está en el enunciado, que en este aspecto no está bien, pero claro, ¿qué le vas a hacer cuando es algo que te viene de arriba? Supón que tienes un jefe que se empeña en que uses Date... :-\
PARA QUIENES QUIERAN ACCEDER AL CÓDIGO CREADO POR LORENZO31 AQUÍ ESTÁ EL LINK:
https://www.aprenderaprogramar.com/foros/index.php?topic=2622.0
-
Claro Ogramar, hay que respetar al maximo lo que pide el texto, en este caso he usado Date, pasandole un Calendar, Date fecha = calendar.getTime(); que pasa los milisegundos como solidita Date, previamente pido la fecha guardandola en Calendar y listo. Cuando este terminado, mañana yo creo, lo subiré.
Es bastante lioso la verdad, esperaré con gusto las criticas, pues es de donde se aprende realmente. No estoy excesivamente contento pero bueno ya se verá. Gracias por el comentario como siempre me ayudas a aprender a prOGRAMAR ;)
-
Hola, ya he visto tu post, la verdad es que no pensaba que lo fueras a terminar! (para quien venga siguiendo el hilo y se pierda lo puede encontrar en https://www.aprenderaprogramar.com/foros/index.php?topic=2622.0) De momento no puedo decir nada sino que parece un gran trabajo pero precisamente por ser grande hay que estudiárselo con tiempo ;D
-
jejeje si! suelo cumplir lo que digo jeje aunque en este me costó jeje no se como se me ocurrió meterme ;), solo decir, ten en cuenta que muchos procedimientos yo los habría hecho como función devolviendo String etc pero el ejercicio pedía expresamente eso un procedimiento.
Por lo demas cuantas mas críticas para aprender que hice mal o no hice bien del todo mejor,
gracias Ogramar y si es muy extenso... era lo que pedía, al menos no supe hacerlo con menos jeje