Está en la página 1de 5

CODIGO:

using System;
using System.Collections.Generic;

class Producto
{
public string Nombre { get; set; }
public double Precio { get; set; }
public int Stock { get; set; }

public Producto(string nombre, double precio, int stock)


{
Nombre = nombre;
Precio = precio;
Stock = stock;
}
}

class Cliente
{
public string Nombre { get; set; }
public List<string> HistorialCompras { get; set; }

public Cliente(string nombre)


{
Nombre = nombre;
HistorialCompras = new List<string>();
}
}

class Carrito
{
private Dictionary<Producto, int> productosEnCarrito;

public Carrito()
{
productosEnCarrito = new Dictionary<Producto, int>();
}

public void AgregarAlCarrito(Producto producto, int cantidad)


{
if (producto.Stock >= cantidad)
{
if (productosEnCarrito.ContainsKey(producto))
{
productosEnCarrito[producto] += cantidad;
}
else
{
productosEnCarrito.Add(producto, cantidad);
}

producto.Stock -= cantidad;
Console.WriteLine("Producto agregado al carrito: " + producto.Nombre + "
x " + cantidad);
}
else
{
Console.WriteLine("No hay suficiente stock de " + producto.Nombre +
".");
}
}

public void MostrarCarrito()


{
Console.WriteLine("\nContenido del Carrito:");
foreach (var kvp in productosEnCarrito)
{
Console.WriteLine(kvp.Key.Nombre + " x " + kvp.Value);
}
}

public void RealizarCompra(Cliente cliente)


{
Console.WriteLine("\nRealizando compra...");

foreach (var kvp in productosEnCarrito)


{
Producto producto = kvp.Key;
int cantidad = kvp.Value;

cliente.HistorialCompras.Add(producto.Nombre + " x " + cantidad);


}

productosEnCarrito.Clear();
Console.WriteLine("Compra realizada con éxito.");
}
}

class Program
{
static void Main()
{
// Crear productos
Producto producto1 = new Producto("Pan", 11.99, 30);
Producto producto2 = new Producto("Galletas", 21.00, 40);
Producto producto3 = new Producto("Refresco", 33.50, 50);

// Crear cliente
Cliente cliente = new Cliente("Ale");

// Crear carrito
Carrito carrito = new Carrito();

// Interacción con el usuario


while (true)
{
Console.WriteLine("\nSeleccione una opción:");
Console.WriteLine("1. Agregar producto al carrito");
Console.WriteLine("2. Mostrar carrito");
Console.WriteLine("3. Realizar compra");
Console.WriteLine("4. Salir");

string opcion = Console.ReadLine();


switch (opcion)
{
case "1":
Console.WriteLine("Seleccione un producto:");
Console.WriteLine("1. " + producto1.Nombre + " - Precio: " +
producto1.Precio + ", Stock: " + producto1.Stock);
Console.WriteLine("2. " + producto2.Nombre + " - Precio: " +
producto2.Precio + ", Stock: " + producto2.Stock);
Console.WriteLine("3. " + producto3.Nombre + " - Precio: " +
producto3.Precio + ", Stock: " + producto3.Stock);

string seleccionProducto = Console.ReadLine();


Console.Write("Ingrese la cantidad: ");
int cantidad = int.Parse(Console.ReadLine());

if (seleccionProducto == "1")
{
carrito.AgregarAlCarrito(producto1, cantidad);
}
else if (seleccionProducto == "2")
{
carrito.AgregarAlCarrito(producto2, cantidad);
}
else if (seleccionProducto == "3")
{
carrito.AgregarAlCarrito(producto3, cantidad);
}
else
{
Console.WriteLine("Opción no válida.");
}
break;

case "2":
carrito.MostrarCarrito();
break;

case "3":
carrito.RealizarCompra(cliente);
break;

case "4":
Environment.Exit(0);
break;

default:
Console.WriteLine("Opción no válida. Inténtelo de nuevo.");
break;
}
}
}
}
INTEGRANTES DEL EQUIPO:
• ALEJANDRA VEGA ONTIVEROS
• RIVERA IZAGUIRRE GABRIELA GUADALUPE
• DIOSEL NAZARETH SAÑUDO ARMENTA
• DANYA GUADALUPE SOTO GARCIA
• GUSTAVO DELGADO PEREA

SALIDA DEL PROGRAMA:

También podría gustarte