public void Cambiar_Trabajo(string name, string lastname, string rut, string date_of_birth, string nacionality, int sueldo, string horario, string puesto, int buen_trabajo, List <Producto> lista_productos, List <Cajeros> lista_cajeros, List <Stock> lista_stock, List <Auxiliar> lista_auxiliar) { if (puesto == "Stock") { Stock stock = new Stock(name, lastname, rut, date_of_birth, nacionality, sueldo, horario, puesto, buen_trabajo, lista_productos); lista_stock.Add(stock); } else if (puesto == "Cajero") { Cajeros cajero = new Cajeros(name, lastname, rut, date_of_birth, nacionality, sueldo, horario, puesto, buen_trabajo); lista_cajeros.Add(cajero); } else { Auxiliar auxiliar = new Auxiliar(name, lastname, rut, date_of_birth, nacionality, sueldo, horario, puesto, buen_trabajo); lista_auxiliar.Add(auxiliar); } }
static void Main(string[] args) { Persona person = new Persona(); bool x = true; List <Clientes> lista_clientes = new List <Clientes>(); List <Producto> lista_productos = new List <Producto>(); List <Stock> lista_stock = new List <Stock>(); List <Cajeros> lista_cajeros = new List <Cajeros>(); List <Jefes> lista_jefes = new List <Jefes>(); List <String> Registro_compras = new List <string>(); List <Auxiliar> lista_auxiliar = new List <Auxiliar>(); List <Clientes> list_clientes = new List <Clientes>(); List <Producto> list_productos = new List <Producto>(); List <Stock> list_stock = new List <Stock>(); List <Cajeros> list_cajeros = new List <Cajeros>(); List <Jefes> list_jefes = new List <Jefes>(); List <String> registro_compras = new List <string>(); List <Auxiliar> list_auxiliar = new List <Auxiliar>(); while (x == true) { Console.WriteLine("PARA EMPEZAR LA SIMULACION(5) ES NECESARIO TENER POR LO MENOS 1 CAJERO Y UN STOCK."); Console.WriteLine("Elige si quieres crear clientes(1), crear productos(2), crear empleados(3), utilizar metodos de cambio de sueldo, horario o puesto (4) empezar la simulación(5), hacer una simulacion aleatoria(6) o cerrar el programa(7)."); string eleccion = Console.ReadLine(); if (eleccion == "1") { Console.WriteLine("Cuantos clientes quiere crear?"); int cant_clientes = int.Parse(Console.ReadLine()); for (int i = 0; i < cant_clientes; i++) //creación clientes. { Console.WriteLine("Crea un cliente nuevo (nombre, apellido, rut, fecha de nacimiento, nacionalidad, dinero)\n"); string Name = Console.ReadLine(); string LastName = Console.ReadLine(); string Rut = Console.ReadLine(); string Año_de_Nacimiento = Console.ReadLine(); string Nacionalidad = Console.ReadLine(); int Dinero = int.Parse(Console.ReadLine()); List <Producto> Carrito_de_Compras = new List <Producto>(); Clientes clientes = new Clientes(Name, LastName, Rut, Año_de_Nacimiento, Nacionalidad, Dinero, Carrito_de_Compras); lista_clientes.Add(clientes); } } else if (eleccion == "2") { Console.WriteLine("Cuantos productos quiere crear?"); int cant_productos = int.Parse(Console.ReadLine()); for (int i = 0; i < cant_productos; i++) //creación productos. { Console.WriteLine("Crea un producto nuevo (nombre, marca, precio, stock disponible)\n"); string Name = Console.ReadLine(); string Marca = Console.ReadLine(); int Price = int.Parse(Console.ReadLine()); int Stock = int.Parse(Console.ReadLine()); Producto producto = new Producto(Price, Name, Marca, Stock); lista_productos.Add(producto); } } else if (eleccion == "3") { Console.WriteLine("Qué tipo de empleado quieres crear? (Jefes, Cajeros, Stock o Auxiliar)"); string empleado = Console.ReadLine(); if (empleado == "Jefes") { for (int i = 0; i < 1; i++) { Console.WriteLine("Crea un jefe nuevo (nombre, apellido, rut, fecha de nacimiento, nacionalidad, sueldo, horario)\n"); //creación jefes string Name = Console.ReadLine(); string LastName = Console.ReadLine(); string Rut = Console.ReadLine(); string Año_de_Nacimiento = Console.ReadLine(); string Nacionalidad = Console.ReadLine(); int Sueldo = int.Parse(Console.ReadLine()); string Horario = Console.ReadLine(); int Buen_trabajo = 0; Jefes jefes = new Jefes(Name, LastName, Rut, Año_de_Nacimiento, Nacionalidad, Sueldo, Horario, Buen_trabajo); lista_jefes.Add(jefes); } } else if (empleado == "Auxiliar") { Console.WriteLine("Cuantos Axuliares quiere crear?"); int cant_auxiliar = int.Parse(Console.ReadLine()); for (int i = 0; i < cant_auxiliar; i++) { Console.WriteLine("Crea un auxiliar nuevo (nombre, apellido, rut, fecha de nacimiento, nacionalidad, sueldo, horario)\n"); // creación auxiliar string Name = Console.ReadLine(); string LastName = Console.ReadLine(); string Rut = Console.ReadLine(); string Año_de_Nacimiento = Console.ReadLine(); string Nacionalidad = Console.ReadLine(); int Sueldo = int.Parse(Console.ReadLine()); string Horario = Console.ReadLine(); string Puesto = empleado; int Buen_trabajo = 0; Auxiliar auxiliar = new Auxiliar(Name, LastName, Rut, Año_de_Nacimiento, Nacionalidad, Sueldo, Horario, Puesto, Buen_trabajo); lista_auxiliar.Add(auxiliar); } } else if (empleado == "Cajeros") { Console.WriteLine("Cuantos Cajeros quiere crear?"); int cant_cajeros = int.Parse(Console.ReadLine()); for (int i = 0; i < cant_cajeros; i++) { Console.WriteLine("Crea un cajero nuevo (nombre, apellido, rut, fecha de nacimiento, nacionalidad, sueldo, horario)\n"); // creación cajeros string Name = Console.ReadLine(); string LastName = Console.ReadLine(); string Rut = Console.ReadLine(); string Año_de_Nacimiento = Console.ReadLine(); string Nacionalidad = Console.ReadLine(); int Sueldo = int.Parse(Console.ReadLine()); string Horario = Console.ReadLine(); string Puesto = empleado; int Buen_trabajo = 0; Cajeros cajeros = new Cajeros(Name, LastName, Rut, Año_de_Nacimiento, Nacionalidad, Sueldo, Horario, Puesto, Buen_trabajo); lista_cajeros.Add(cajeros); } } else if (empleado == "Stock") { for (int i = 0; i < 1; i++) { Console.WriteLine("Crea un stock nuevo (nombre, apellido, rut, fecha de nacimiento, nacionalidad, sueldo, horario)\n"); // creación stock string Name = Console.ReadLine(); string LastName = Console.ReadLine(); string Rut = Console.ReadLine(); string Año_de_Nacimiento = Console.ReadLine(); string Nacionalidad = Console.ReadLine(); int Sueldo = int.Parse(Console.ReadLine()); string Horario = Console.ReadLine(); string Puesto = empleado; int Buen_trabajo = 0; List <Producto> Carrito_de_Compras = new List <Producto>(); Stock stock = new Stock(Name, LastName, Rut, Año_de_Nacimiento, Nacionalidad, Sueldo, Horario, Puesto, Buen_trabajo, Carrito_de_Compras); lista_stock.Add(stock); } } } else if (eleccion == "4") { List <Producto> productss = new List <Producto>(); Console.WriteLine("A que tipo de empleado quiere hacerle un cambio de atributos? (Cajeros, Stock o Auxiliar)"); string empleado = Console.ReadLine(); Console.WriteLine("Qué atributo quiere cambiar? (Sueldo, Horario o Puesto)"); string atributo = Console.ReadLine(); if (empleado == "Cajeros") { if (atributo == "Sueldo") { lista_jefes[0].Cambiar_Sueldo(); } else if (atributo == "Horario") { Console.WriteLine("Cual es su propuesta de horario de trabajo?"); string posible_horario = Console.ReadLine(); Console.WriteLine("Porqué desea cambiar el horario? (Universidad, Medico, etc.)"); string problema = Console.ReadLine(); lista_jefes[0].Cambiar_horario(posible_horario, problema); } else { Console.WriteLine("A que cajero quiere cambiar de trabajo? (1,2,3,etc.)"); int num = int.Parse(Console.ReadLine()); Console.WriteLine("Escriba su nombre,apellido,rut,fecha de nacimiento, nacionalidad, sueldo, horario y su nuevo puesto"); string Name = Console.ReadLine(); string LastName = Console.ReadLine(); string Rut = Console.ReadLine(); string Año_de_Nacimiento = Console.ReadLine(); string Nacionalidad = Console.ReadLine(); int Sueldo = int.Parse(Console.ReadLine()); string Horario = Console.ReadLine(); string Puesto = Console.ReadLine(); lista_cajeros[num - 1].Cambiar_Trabajo(Name, LastName, Rut, Año_de_Nacimiento, Nacionalidad, Sueldo, Horario, Puesto, 0, productss, lista_cajeros, lista_stock, lista_auxiliar); lista_cajeros.RemoveAt(num - 1); } } else if (empleado == "Stock") { if (atributo == "Sueldo") { lista_jefes[0].Cambiar_Sueldo(); } else if (atributo == "Horario") { Console.WriteLine("Cual es su propuesta de horario de trabajo?"); string posible_horario = Console.ReadLine(); Console.WriteLine("Porqué desea cambiar el horario? (Universidad, Medico, etc.)"); string problema = Console.ReadLine(); lista_jefes[0].Cambiar_horario(posible_horario, problema); } else { Console.WriteLine("A que cajero quiere cambiar de trabajo? (1,2,3,etc.)"); int num = int.Parse(Console.ReadLine()); string Name = Console.ReadLine(); string LastName = Console.ReadLine(); string Rut = Console.ReadLine(); string Año_de_Nacimiento = Console.ReadLine(); string Nacionalidad = Console.ReadLine(); int Sueldo = int.Parse(Console.ReadLine()); string Horario = Console.ReadLine(); string Puesto = Console.ReadLine(); lista_cajeros[num - 1].Cambiar_Trabajo(Name, LastName, Rut, Año_de_Nacimiento, Nacionalidad, Sueldo, Horario, Puesto, 0, productss, lista_cajeros, lista_stock, lista_auxiliar); lista_stock.RemoveAt(num - 1); } } else { if (atributo == "Sueldo") { lista_jefes[0].Cambiar_Sueldo(); } else if (atributo == "Horario") { Console.WriteLine("Cual es su propuesta de horario de trabajo?"); string posible_horario = Console.ReadLine(); Console.WriteLine("Porqué desea cambiar el horario? (Universidad, Medico, etc.)"); string problema = Console.ReadLine(); lista_jefes[0].Cambiar_horario(posible_horario, problema); } else { Console.WriteLine("A que cajero quiere cambiar de trabajo? (1,2,3,etc.)"); int num = int.Parse(Console.ReadLine()); string Name = Console.ReadLine(); string LastName = Console.ReadLine(); string Rut = Console.ReadLine(); string Año_de_Nacimiento = Console.ReadLine(); string Nacionalidad = Console.ReadLine(); int Sueldo = int.Parse(Console.ReadLine()); string Horario = Console.ReadLine(); string Puesto = Console.ReadLine(); lista_cajeros[num - 1].Cambiar_Trabajo(Name, LastName, Rut, Año_de_Nacimiento, Nacionalidad, Sueldo, Horario, Puesto, 0, productss, lista_cajeros, lista_stock, lista_auxiliar); lista_auxiliar.RemoveAt(num - 1); } } } else if (eleccion == "5") { bool i = true; if (lista_cajeros.Count() != 0 && lista_stock.Count() != 0) { while (i == true) { Console.WriteLine("Qué cliente realizará la compra? cliente1(1), cliente2(2), etc."); int client = int.Parse(Console.ReadLine()); Clientes cliente = lista_clientes[client - 1]; Console.WriteLine("Aquí esta la lista de productos: "); for (int u = 0; u < lista_productos.Count; u++) { Console.WriteLine(lista_productos[u].Info_Producto() + ". Su stock disponible es de: " + lista_productos[u]._Stock_disponible() + "\n"); continue; } Console.WriteLine("Qué producto desea comprar? producto1(1), producto2(2), etc."); int product = int.Parse(Console.ReadLine()); Producto producto = lista_productos[product - 1]; Console.WriteLine("Cuantos productos de este tipo desea comprar? 1, 2, etc."); int cant = int.Parse(Console.ReadLine()); List <Producto> lista_carrito = cliente.Agregar_Producto(producto, lista_stock[0], cant); if (lista_carrito.Count != 0) { Console.WriteLine("Qué cajero realizará la venta? cajero1(1), cajero2(2), etc."); int caj = int.Parse(Console.ReadLine()); Cajeros cajeros = lista_cajeros[caj - 1]; int total_a_pagar = cajeros.Cuanto_Saldra(lista_carrito); List <String> Registro_de_compras = cajeros.Pagar(total_a_pagar, cliente, producto, lista_carrito, Registro_compras, cant); cajeros.Ver_Registro_Compras(Registro_de_compras); } else { Console.WriteLine(producto.Info_Producto() + " no esta en stock o queda menos de la cantidad que pidió. No se pudo agregar el producto.\n"); Console.WriteLine("No hay productos en el carro. No se pudo realizar la compra de: " + cliente.Mi_nombre()); } if (lista_auxiliar.Count != 0) { lista_auxiliar[0].Limpiar(); } Console.WriteLine("Quiere que otro cliente realice una compra? Si o No"); string dec = Console.ReadLine(); if (dec == "Si") { Console.WriteLine("-----------------------------------------------------------------------------\n"); continue; } else { Registro_compras.Clear(); lista_auxiliar.Clear(); lista_cajeros.Clear(); lista_clientes.Clear(); lista_jefes.Clear(); lista_productos.Clear(); lista_stock.Clear(); break; } } } else { Console.WriteLine("No hay Cajeros o Stocks suficientes para realizar la simulación."); } } else if (eleccion == "6") { Random random = new Random(); List <string> nombres = new List <string>() { "Diego", "Matias", "Tomas", "Pancho", "Juan", "Valeria", "Valentina", "Jacobo", "Álvaro", "Pablo" }; List <string> apellidos = new List <string>() { "Leguer", "Giraldo", "Ruiz-Tagle", "Pinochet", "Sinsay", "Álvarez", "Fuentes", "Cabrera", "Seguel", "Nazal" }; List <string> rut = new List <string>() { "201827396", "201827340", "211837509", "041826758", "210978650", "031763549", "210349876", "089767870", "201837409", "239017897", "127368960", "201827395", "234009876", "198076542", "223009876" }; List <string> fecha_nacimiento = new List <string>() { "25-05-99", "12-06-00", "21-01-02", "07-11-03", "06-11-78" }; List <string> nacionalidad = new List <string>() { "Chilena", "Argentina", "Peruana", "Americana", "Colombiano" }; List <int> dinero = new List <int>() { 5000, 10000, 15000, 8000, 2000 }; List <Producto> carrito = new List <Producto>(); // no se si hacerla de nuevo o dejarla List <int> sueldos = new List <int>() { 200, 300, 400, 500 }; List <string> horario = new List <string>() { "11:30-20:30", "8:30-15:30", "15:30-22:30" }; List <Producto> stock_productos = new List <Producto>(); // no se si hacerla de nuevo o dejarla int buen_trabajo = 0; List <string> nombre_product = new List <string>() { "Snicker", "Coca-Cola", "Sprite", "Fanta", "MilkyWay", "Twix", "Chocapic", "Fajitas", "Zucaritas", "Pillows", "Powerade", "Pan de molde", "Marraqueta", "Hallulla", "Salsa", "Coca-Cola light", "Coca-cola zero", "Coca-cola life", "Fanta Zero", "Sprite Zero", "Aquarius", "Vital", "Cola-Cao", "Nesquik", "Milo", "Froot Loops", "Pan frica", "Dobladita", "Baguetta", "Ciabatta" }; List <string> marca_product = new List <string>() { "Coca-Cola Company", "Marse", "Bimbo", "Pancho Villa", "Nestlé" }; // 5 marcas distintas List <int> precio_product = new List <int>() { 500, 1500, 3000, 3500, 4500, 6000 }; //6 precios distintos List <int> stock_product = new List <int>() { 1, 2, 3, 4 }; Console.WriteLine("Clientes:"); for (int i = 0; i < 15; i++) //creación de clientes { Clientes clientes = new Clientes(nombres[random.Next(10)], apellidos[random.Next(10)], rut[random.Next(15)], fecha_nacimiento[random.Next(5)], nacionalidad[random.Next(5)], dinero[random.Next(5)], carrito); list_clientes.Add(clientes); Console.WriteLine(clientes.Info_Clientes()); } Console.WriteLine(""); Console.WriteLine("Jefes:"); for (int i = 0; i < 1; i++) // creación de jefes { Jefes jefes = new Jefes(nombres[random.Next(10)], apellidos[random.Next(10)], rut[random.Next(15)], fecha_nacimiento[random.Next(5)], nacionalidad[random.Next(5)], sueldos[random.Next(4)], horario[random.Next(3)], buen_trabajo); list_jefes.Add(jefes); Console.WriteLine(jefes.Info_Jefe()); } Console.WriteLine(""); Console.WriteLine("Stock:"); for (int i = 0; i < 2; i++) // creación de stock { Stock stock = new Stock(nombres[random.Next(10)], apellidos[random.Next(10)], rut[random.Next(15)], fecha_nacimiento[random.Next(5)], nacionalidad[random.Next(5)], sueldos[random.Next(4)], horario[random.Next(3)], "Stock", buen_trabajo, stock_productos); list_stock.Add(stock); Console.WriteLine(stock.Info_Stock()); } Console.WriteLine(""); Console.WriteLine("Cajeros:"); for (int i = 0; i < 3; i++) // creación de cajeros { Cajeros cajeros = new Cajeros(nombres[random.Next(10)], apellidos[random.Next(10)], rut[random.Next(15)], fecha_nacimiento[random.Next(5)], nacionalidad[random.Next(5)], sueldos[random.Next(4)], horario[random.Next(3)], "Cajero", buen_trabajo); list_cajeros.Add(cajeros); Console.WriteLine(cajeros.Info_Cajeros()); } Console.WriteLine(""); Console.WriteLine("Auxiliares:"); for (int i = 0; i < 1; i++) // creación de auxiliares { Auxiliar auxiliar = new Auxiliar(nombres[random.Next(10)], apellidos[random.Next(10)], rut[random.Next(15)], fecha_nacimiento[random.Next(5)], nacionalidad[random.Next(5)], sueldos[random.Next(4)], horario[random.Next(3)], "Auxiliar", buen_trabajo); list_auxiliar.Add(auxiliar); Console.WriteLine(auxiliar.Info_Auxiliar()); } Console.WriteLine(""); Console.WriteLine("Productos:"); for (int i = 0; i < 30; i++) // creación de productos { Producto prod = new Producto(precio_product[random.Next(6)], nombre_product[random.Next(30)], marca_product[random.Next(5)], stock_product[random.Next(4)]); list_productos.Add(prod); Console.WriteLine(prod.Info_product()); } Console.WriteLine("-----------------------------------------------------------------------------------"); for (int i = 0; i < 5; i++) { Console.WriteLine("Compra cliente" + (i + 1) + ":\n"); Producto producto1 = list_productos[random.Next(30)]; // elegir un producto de la lista producto int cantidad = random.Next(4); //elegir la cantidad de producto Clientes cliente = list_clientes[random.Next(15)]; // elegir de manera random que cliente va a comprar List <Producto> cart = cliente.Agregar_Producto(producto1, list_stock[random.Next(2)], cantidad); //elegir stock que se ocupar if (cart.Count() != 0) { Cajeros cajeros = list_cajeros[random.Next(3)]; // que cajero hara la venta int total_a_pagar = cajeros.Cuanto_Saldra(cart); List <String> registro_de_compras = cajeros.Pagar(total_a_pagar, cliente, producto1, cart, registro_compras, cantidad); cajeros.Ver_Registro_Compras(registro_de_compras); cart.Clear(); } else { Console.WriteLine(producto1.Info_Producto() + " no esta en stock o queda menos de la cantidad que pidió. No se pudo agregar el producto.\n"); Console.WriteLine("No hay productos en el carro. No se pudo realizar la compra de: " + cliente.Mi_nombre()); } Console.WriteLine("----------------------------------------------------------------------\n"); } //Veremos nuevo stock Console.WriteLine("--------------------------------------------------------------------------\n"); Console.WriteLine("Nuevo Stock: "); for (int i = 0; i < list_productos.Count(); i++) { Console.WriteLine(list_productos[i].Info_Producto() + ". Stock: " + list_productos[i]._Stock_disponible()); } Console.WriteLine(""); registro_compras.Clear(); list_auxiliar.Clear(); list_cajeros.Clear(); list_clientes.Clear(); list_jefes.Clear(); list_productos.Clear(); list_stock.Clear(); } else { break; } } }