public string ListaInasistencias() { return(Inasistencias.ToString()); }
//Iniciar Simulacion private void btnIniciar_Click(object sender, EventArgs e) { if (ValidarCampos()) { dgvMonteCarlo.Rows.Clear(); int estrategia; double gananciaPasajero; double costoReprog; double aux = 0; GananciaAcumulada = 0; cantidadVuelos = int.Parse(txtNroVuelos.Text); Desde = int.Parse(txtDesde.Text); Hasta = int.Parse(txtHasta.Text); gananciaPasajero = double.Parse(txtGanancia.Text); costoReprog = double.Parse(txtCosto.Text); estrategia = int.Parse(cmbEstrategia.SelectedItem.ToString()); lblTituloEstrategia.Text = "Estrategia de Sobreventa de " + estrategia.ToString() + " Reservas posibles"; //Calculo de prob acumuladas guardando en la lista probAcumulada for (int i = 0; i < dgv_probabilidades.Rows.Count; i++) { aux = Convert.ToDouble(dgv_probabilidades.Rows[i].Cells[2].Value); probAcumulada.Add(aux); } string[] array = new string[dgvMonteCarlo.Columns.Count]; if (cmbVersion.SelectedIndex == 1) { //Carga de datos en el excel for (int i = 0; i < dgvMonteCarlo.Columns.Count; i++) { array[i] = dgvMonteCarlo.Columns[i].HeaderText; } oAlmacenamiento.newFile(); oAlmacenamiento.saveData(array); } for (int i = 0; i < cantidadVuelos; i++) { int NroVuelo = i + 1; double RNDAsistencia = Math.Truncate(oGenerador.generadorUniforme() * 10000) / 10000; int Asistencias = compareRandom(RNDAsistencia, probAcumulada); int Inasistencias; int CantPasajeros; int PasajerosReprogramados; if (Asistencias > 30) { Inasistencias = 0; CantPasajeros = 30; PasajerosReprogramados = Asistencias - 30; } else { Inasistencias = 30 - Asistencias; CantPasajeros = Asistencias; PasajerosReprogramados = 0; } double GananciaVuelo = Math.Round((CantPasajeros * gananciaPasajero), 2); double CostoReprog = Math.Round((PasajerosReprogramados * costoReprog), 2); double GananciaNeta = GananciaVuelo - CostoReprog; GananciaAcumulada += GananciaNeta; if ((NroVuelo >= Desde && NroVuelo <= Hasta) || NroVuelo == cantidadVuelos) { dgvMonteCarlo.Rows.Add(NroVuelo, RNDAsistencia, Asistencias, Inasistencias, CantPasajeros, PasajerosReprogramados, GananciaVuelo, CostoReprog, GananciaNeta, GananciaAcumulada); } array = new string[] { NroVuelo.ToString(), RNDAsistencia.ToString(), Asistencias.ToString(), Inasistencias.ToString(), CantPasajeros.ToString(), PasajerosReprogramados.ToString(), GananciaVuelo.ToString(), CostoReprog.ToString(), GananciaNeta.ToString(), GananciaAcumulada.ToString() }; if (cmbVersion.SelectedIndex == 1) { oAlmacenamiento.saveData(array); } } double GananciaPromedio = Math.Round((GananciaAcumulada / (double)cantidadVuelos), 2); cargarDatosEstrategias(estrategia, gananciaPasajero, costoReprog, GananciaPromedio); btnIniciar.Enabled = false; } }