Enunciado
Sistema de Cálculo de Precios para Tienda Online de Electrónica
Objetivo
Desarrollar un sistema de cálculo de precios para una tienda online de electrónica utilizando Dart. El sistema debe incluir múltiples funciones que trabajen en conjunto para calcular el precio final de un producto.
Requisitos:
1. Implemente las siguientes funciones:
a) calcularPrecioBase(double precio, int cantidad, {double descuento = 0})
- Calcula el precio base considerando el descuento.
- Parámetros:
* precio: Precio unitario del producto (obligatorio)
* cantidad: Número de unidades compradas (obligatorio)
* descuento: Porcentaje de descuento (opcional, valor predeterminado 0)
- Retorna: El precio base con descuento aplicado.
b) aplicarImpuestos(double precioBase, {double impuestoBase = 10, bool productoImportado = false})
- Aplica impuestos al precio base.
- Parámetros:
* precioBase: Precio base calculado anteriormente (obligatorio)
* impuestoBase: Porcentaje de impuesto base (opcional, valor predeterminado 10%)
* productoImportado: Indica si el producto es importado (opcional, valor predeterminado false)
- Retorna: El precio con impuestos aplicados.
c) calcularEnvio(double precioConImpuestos, int cantidad, {bool envioExpress = false})
- Calcula el costo de envío basado en el precio, cantidad y tipo de envío.
- Parámetros:
* precioConImpuestos: Precio con impuestos calculado anteriormente (obligatorio)
* cantidad: Número de unidades compradas (obligatorio)
* envioExpress: Indica si se solicita envío express (opcional, valor predeterminado false)
- Retorna: El costo de envío.
d) calcularPrecioTotal(double precio, int cantidad, {double descuento = 0, bool productoImportado = false, bool envioExpress = false})
- Función principal que utiliza las funciones anteriores para calcular el precio total.
- Parámetros:
* precio: Precio unitario del producto (obligatorio)
* cantidad: Número de unidades compradas (obligatorio)
* descuento: Porcentaje de descuento (opcional, valor predeterminado 0)
* productoImportado: Indica si el producto es importado (opcional, valor predeterminado false)
* envioExpress: Indica si se solicita envío express (opcional, valor predeterminado false)
- Retorna: El precio total final.
2. Implemente la lógica necesaria en cada función:
- En calcularPrecioBase: Aplicar el descuento al subtotal.
- En aplicarImpuestos: Añadir un 5% adicional si el producto es importado.
- En calcularEnvio:
* Costo base de envío: 5
* Si es envío express, añadir 10 al costo base
* Si el precio con impuestos es mayor a 100 y la cantidad es 3 o menos, el envío es gratis
* Por cada artículo adicional después de 3, añadir 2 al costo de envío
3. Todas las funciones deben redondear los resultados a dos decimales.
4. En la función main(), proporcione al menos cuatro ejemplos de uso de la función calcularPrecioTotal con diferentes combinaciones de parámetros.
Entregable:
Un archivo Dart que contenga todas las funciones implementadas y la función main() con los ejemplos de uso.
Criterios de evaluación:
- Correcta implementación de las funciones requeridas
- Uso apropiado de parámetros posicionales y con nombre
- Manejo adecuado de los valores predeterminados
- Precisión en los cálculos y redondeo correcto
- Ejemplos de uso variados y correctos en la función main()