Giter Site home page Giter Site logo

flotasderodados-2020s1-parcial's Introduction

Flotas de rodados

Build Status

Cómo organizar el código

Armar tres archivos Wollok

  • uno para la Trafic
  • uno para los otros rodados
  • uno para la dependencia

Más un archivo de test. O sea, se entregan 4 archivos.

El enunciado

En este ejercicio vamos a construir un modelo que pueda servir para la administración de las flotas de rodados que utilizan las distintas dependencias de la Municipalidad de Coronel Vallejos.

De cada rodado nos van a interesar: capacidad (o sea, cuántos pasajeros puede transportar), velocidad máxima, color y peso.

A continuación se describen los rodados que maneja la muncipalidad.

  • Varios Chevrolet Corsa.
    La capacidad de estos autos es de 4 pasajeros, su velocidad máxima 150 km/h, y pesan 1300 kg.
    La municipalidad no estableció un color fijo para sus Corsa; por lo tanto, debe informarse el color de cada uno.

  • Varios Renault Kwid que funcionan a gas. Cada uno de ellos puede tener puesto, o no, un tanque adicional.

    • La capacidad de un Kwid es de 4 pasajeros si no tiene puesto el tanque adicional, o 3 pasajeros si sí lo tiene puesto.
    • La velocidad máxima es 120 km/h con, o 110 km/h sin, tanque adicional.
    • El peso es 1200 kg, más 150 kg adicionales si tiene tanque adicional.
    • Todos los autos de este tipo con que cuenta la municipalidad son azules.
  • Una Trafic (sí, una sola), que es reconfigurable, porque se le puede cambiar el interior y el motor.

    • La municipalidad cuenta con dos interiores, uno cómodo (capacidad 5 pasajeros, peso 700 kg) y otro popular (capacidad 12 pasajeros, peso 1000 kg). La municipalidad tiene un solo interior de cada tipo.
    • También ha comprado dos motores para su Trafic, uno pulenta (que pesa 800 kg y permite una velocidad máxima de 130 km/h) y otro batatón (que pesa 500 kg y permite una velocidad máxima de 80 km/h). La municipalidad tiene un solo motor de cada tipo.
    • Varias características de la Trafic dependen de qué interior y qué motor le hayan puesto:
      • La capacidad de la Trafic es la del interior.
      • La velocidad máxima es la que permite el motor.
      • El peso es 4000 kg más el peso del interior más el del motor.
    • Finalmente, digamos que la Trafic es de color blanco, independientemente del interior y el motor que tenga puestos.
  • Varios autos especiales que son todos distintos entre sí. De cada uno de ellos se debe especificar capacidad, velocidad máxima, peso y color.


Como dijimos, cada dependencia de la municipalidad maneja una flota de rodados. Un rodado puede estar compartido entre varias dependencias (ver test más abajo). De cada dependencia importa también cuántos empleados tiene.

Debe ser posible enviarle los siguientes mensajes a cada objeto que representa a una dependencia.

  • agregarAFlota(rodado) y quitarDeFlota(rodado).
  • pesoTotalFlota(), la suma del peso de cada rodado afectado a la flota.
  • estaBienEquipada(), es verdadero si la flota tiene al menos 3 rodados, y además, todos los rodados de la flota pueden ir al menos a 100 km/h.
  • capacidadTotalEnColor(color), la cantidad total de personas que puede transportar la flota afectada a la dependencia, considerando solamente los rodados del color indicado.
  • colorDelRodadoMasRapido(), eso.
  • capacidadFaltante(), que es el resultado de restar, de la cantidad de empleados, la capacidad sumada de los vehículos de la flota.
  • esGrande(), la condición es que la dependencia tenga al menos 40 empleados y 5 rodados.

Test con dos dependencias

Armar un test en el que hay que se definen dos dependencias: deportes (45 empleados) y cultura (31 empleados).

En este test debe definirse un rodado al que llamaremos cachito; o sea, definir const cachito = .... Este rodado debe ser un Corsa de color rojo.

La flota de deportes incluye a: cachito, un Corsa azul, un Corsa verde, un Kwid con el tanque adicional puesto; y un auto especial con estas características: capacidad 5 pasajeros, velocidad máxima 160 km/h, peso 1200 kg, color beige.

Por su parte, cultura cuenta con: cachito; dos Kwid con el tanque adicional puesto; un Kwid más, este sin el tanque adicional; y la Trafic, configurada con el interior popular y el motor batatón.

Notar que cachito forma parte de la flota de ambas dependencias.

Para cada dependencia, hacer asserts sobre: el peso total de la flota, si está o no bien equipada, la capacidad total en color azul, el color del rodado más rápido, si es grande o no, y la capacidad faltante.

Va una ayudita: la capacidad faltante de deportes es de 25 personas (la flota puede llevar: 12 personas en los 3 Corsa, más 3 del Kwid y 5 del auto especial; total 20), mientras que la de cultura es de 5 personas (puede llevar en total 26: 6 de los Kwid con tanque adicional, más 4 de la Kwid sin tanque, más 4 de cachito, más 12 de la Trafic dado que tiene el interior popular).

Notas bibliográficas

Coronel Vallejos no existe, es el pueblo ficticio donde transcurre La traición de Rita Hayworth, una novela de Manuel Puig.

Un comentario para la implementación

En este ejercicio no damos ningún código inicial, les toca todo a ustedes. Van solamente algunos comentarios.

La mayor parte de los objetos que representan rodados van a ser instancias de alguna clase. No todos de la misma clase: las características de un Corsa son distintas que las de un Twid.

La excepción es la Trafic: dado que hay una sola, no es necesario crear una clase Trafic, puede ser tranquilamente un objeto autodefinido.

flotasderodados-2020s1-parcial's People

Contributors

clombardi avatar fdodino avatar lucasnicolasmeneses avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.