Ejercicio Manejo de Cinema y películas - uso del define-struct

Enunciado: Un cinema  necesita un programa que al ingresar el título de una película imprima los datos de la película 
- La película debe tener título productor costo  hora  sala clasificación dimensión.  
- Si la película es para mayores se debe imprimir un mensaje que indique que la película no es apta para menores, esta clasificación solo se vera en la noche.  
- Si la película se transmite en la mañana tendrá un 20% de descuento. 
- Si la película es en 3D se le sumara 25000 al costo.


Ejemplo en Toma de pantalla:

Ejercicio-Scheme-Manejo-de-Cinema-y-películas-uso-del-define-struct
codigo drraket

Ejemplo en código 


; ==========================================================

(define-struct pelicula (titulo productor costo hora sala clasificacion dimension))
(define-struct tiket (titulo productor costo hora sala clasificacion dimension mensaje))

;lista de peliculas 
(define pelicula1 (make-pelicula 'garganta_profunda 'x_videos 20000 22 'A 'Adultos '3D))
(define pelicula2 (make-pelicula 'los_indestructibles 'nirvana 25000 08 'B 'Familiar '3D))
(define pelicula3 (make-pelicula 'zombies 'barney 18000 20 'A 'Infantil '2D))
(define pelicula4 (make-pelicula 'inframundo 'nirvana 15000 11 'D 'Familiar '2D))
(define pelicula5 (make-pelicula 'lola 'barney 25000 05 'C 'Infantil '2D))
(define pelicula6 (make-pelicula 'dark_loli 'conejas_calientes 30000 22 'B 'Adultos '3D))

(define (busqueda peli)
  (cond
    
    [(not (pelicula? peli)) "la pelicula no se esta transmitiendo"]
    [ (and (symbol=? (pelicula-clasificacion peli) 'Adultos) (symbol=? (pelicula-dimension peli) '3D)) 
      (make-tiket (pelicula-titulo peli) (pelicula-productor peli) (+ (pelicula-costo peli) 25000) (pelicula-hora peli) (pelicula-sala peli)
                  (pelicula-clasificacion peli) (pelicula-dimension peli) "esta pelicula tiene clasificacion para adultos, se le suma 25000 por el 3D")]
    [ (symbol=? (pelicula-clasificacion peli) 'Adultos) 
      (make-tiket (pelicula-titulo peli) (pelicula-productor peli) (pelicula-costo peli) (pelicula-hora peli) (pelicula-sala peli)
                  (pelicula-clasificacion peli) (pelicula-dimension peli) "esta pelicula tiene clasificacion para adultos no se admiten menores")]
    [(symbol=? (pelicula-dimension peli) '3D) 
      (make-tiket (pelicula-titulo peli) (pelicula-productor peli) (+ (pelicula-costo peli) 25000) (pelicula-hora peli) (pelicula-sala peli)
                  (pelicula-clasificacion peli) (pelicula-dimension peli) "se le suma 25000 por la 3D")]
     
    [(and (symbol=? (pelicula-dimension peli) '3D) (or (< (pelicula-hora peli) 12)
                                                        (> (pelicula-hora peli) 06))) 
      (make-tiket (pelicula-titulo peli) (pelicula-productor peli) (- (+ (pelicula-costo peli) 25000) (/ (* 20 (+ (pelicula-costo peli) 25000)) 100)) 
                  (pelicula-hora peli) (pelicula-sala peli)
                  (pelicula-clasificacion peli) (pelicula-dimension peli) "se le suma 25000 por la 3D y se le restara un 20% de descuento")]
    
    [ (or (< (pelicula-hora peli) 12) (> (pelicula-hora peli) 06)) 
      (make-tiket (pelicula-titulo peli) (pelicula-productor peli) (- (pelicula-costo peli) (/ (* 20 (pelicula-costo peli)) 100)) 
                  (pelicula-hora peli) (pelicula-sala peli)
                  (pelicula-clasificacion peli) (pelicula-dimension peli) " se le restara un 20% de descuento")]
    
    [else (make-tiket (pelicula-titulo peli) (pelicula-productor peli) (pelicula-costo peli) (pelicula-hora peli) (pelicula-sala peli)
                  (pelicula-clasificacion peli) (pelicula-dimension peli) "grasias por su eleccion")]
   ))

;prueba
(busqueda pelicula6)
; ==========================================================
Compartir en facebook twitter Google tumblr pinterest

Entradas similares

0 Comentarios