Code Monkey home page Code Monkey logo

vendedores-kotlin's Introduction

Vendedores y centros de distribución

Este ejercicio es un recorte de un ejercicio de la materia Programación con Objetos 1, puede consultarse el enunciado completo en ese link.

Como el objetivo es familiarizarse con Kotlin, vale inspirarse de la versión Wollok. Si no lo encuentran o no lo tienen, pueden buscar inspiración entre los repos de estudiantes del segundo cuatrimestre 2019... o pueden pensarlo de nuevo, tampoco es tan difícil. 😏

Se pide resolver el enunciado que está a continuación, incluyendo los tests (como salgan). Les dejamos una pequeña parte resuelta para que no les sea tan complicado familiarizarse con Kotlin.

Enunciado

López y López es una empresa de distribución de productos de consumo masivo, que se distribuyen en ciudades repartidas por toda la geografía nacional.

Su organización está basada en centros de distribución. Cada centro trabaja con distintos vendedores.

Se nos pide desarrollar un modelo de los centros, los vendedores, y la relación entre ellos.

Vendedores

López y López recluta vendedores de tres tipos:

  • Vendedor fijo: se sabe en qué ciudad vive.
  • Viajante: cada viajante está habilitado para trabajar en algunas provincias, se sabe cuáles son.
  • Comercio corresponsal: son comercios que tienen sucursales en distintas ciudades. Se sabe, para cada comercio corresponsal, en qué ciudades tiene sucursales.

De cada ciudad debemos registrar en qué provincia está, y de cada provincia, la población.

De cada vendedor, se tiene detalle de las certificaciones que posee. Cada certificación otorga una cantidad de puntos. Algunas certificaciones son sobre productos, otras no.

Desarrollar un modelo de vendedores que permita consultar:

  • dada una ciudad, si un vendedor puede trabajar en esa ciudad. La condición depende del tipo de vendedor, como se indica a continuación
    • vendedor fijo: debe ser la ciudad en la que vive.
    • viajante: la ciudad debe estar en una provincia en la que está habilitado.
    • comercio corresponsal: debe ser una ciudad en la que tiene sucursal.
  • si un vendedor es versátil. Las condiciones son: que tenga al menos tres certificaciones, que tenga al menos una sobre productos, y al menos una que no sea sobre productos.
  • si un vendedor es firme. La condición es que el puntaje total que le otorgan sus certificaciones sea mayor o igual a 30.

Vendedor influyente

Agregar al modelo la capacidad de indicar si un vendedor es influyente. La condición depende del tipo de vendedor:

  • vendedor fijo: ningún vendedor fijo es influyente.
  • viajante: la población total sumando todas las provincias donde está habilitado, debe ser de 10 millones o superior.
  • comercio corresponsal: debe tener sucursales en al menos 5 ciudades, o bien en al menos 3 provincias considerando la provincia de cada ciudad donde tiene sucursal.

P.ej. un comercio corresponsal que tenga sucursales en

  • Chivilcoy, Bragado, Lobos, Pergamino y Zárate: es influyente, se cumple la condición de 5 ciudades.
  • Rosario (Santa Fe), Rafaela (Santa Fe), San Francisco (Córdoba), y Diamante (Entre Ríos): es infuyente, se cumple la condición de 3 provincias.
  • Rosario, Rafaela, Amstrong (Santa Fe) y Diamante: no es influyente, son 4 ciudades y 2 provincias, no cumple ninguna de las condiciones.

Centros de distribución

Agregar al modelo los centros de distribución, de cada uno se sabe en qué ciudad está, y con qué vendedores trabaja.

Debe poder agregarse un vendedor a un centro. Si el vendedor ya está registrado para el centro, debe generarse un error.

Debe poder consultarse, para un centro de distribución:

  • el vendedor estrella, que es el que tiene mayor puntaje total por certificaciones.
  • si puede cubrir, o no, una ciudad dada. La condición es que al menos uno de los vendedores registrados pueda trabajar en esa ciudad.
  • la colección de vendedores genéricos registrados. Un vendedor se considera genérico si tiene al menos una certificación que no es de productos.
  • si es robusto, la condición es que al menos 3 de sus vendedores registrados sea firme.

vendedores-kotlin's People

Contributors

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