Пример #1
0
 public void посадкаПассажира(Пассажир пас)
 {
     //расчет среднего ожидания времени на остановке и количества отправленных пассажиров
     СуммКолОтпрПассажиров++;
     //текущее среднее значение расчитывается так: ср[n+1]=(cp[n]*n+x[n+1])/(n+1)
     СредВремяОжидНаОст = (СредВремяОжидНаОст * (СуммКолОтпрПассажиров - 1) + пас.времяОжиданияНаОстановке) / СуммКолОтпрПассажиров;
 }
Пример #2
0
 ////запись пассажира в массивПассажиров
 public bool ДобавитьПассажира(Пассажир пас)
 {
     if (!Заполнен)
     {
         пас.КодМаршрута = КодМаршрута;
         массивПассажиров.Add(пас);
         показателиРаботы.посадкаПассажира(пас, номерСледОстановки, маршрут.СтоимостьПроезда);
         return(true);
     }
     else
     {
         return(false);
     }
 }
 //public static void ЗаписатьПас(List<Пассажир> listPas)
 //{
 //    ПропуститьСтроку();
 //    Записать("Код", "ост отправ", "ост пересадки", "ост назнач", "время появл", "время посадки",
 //            "время приезда", "код маршрута", "кол пересадок", "число полных ТС");
 //    foreach (Пассажир pas in listPas)
 //        Записать(pas.Код, pas.КодОстОтправления, pas.КодОстПересадки, pas.КодОстНазначения,
 //            pas.ВремяПоявленияНаОстановке, pas.ВремяПосадки, pas.ВремяПриезда, pas.КодМаршрута, pas.КолПересадок, pas.КолПропущенныхПолныхТС);
 //}
 //записать данные про пассажиров
 public static void ЗаписатьПас(List <Пассажир> listPas)
 {
     if (listPas.Count < 1000000)
     {
         ПропуститьСтроку();
         Записать("Код", "ост отправ", "ост пересадки", "ост назнач", "время появл", "время посадки",
                  "время приезда", "код маршрута", "кол пересадок", "число полных ТС");
         foreach (Пассажир pas in listPas)
         {
             Записать(pas.Код, pas.КодОстОтправления, pas.КодОстПересадки, pas.КодОстНазначения,
                      pas.ВремяПоявленияНаОстановке, pas.ВремяПосадки, pas.ВремяПриезда, pas.КодМаршрута, pas.КолПересадок, pas.КолПропущенныхПолныхТС);
         }
     }
     else
     {
         int countM = listPas.Count / 1000000;
         int count = listPas.Count % 1000000;
         int row = 2, col = 1;
         //запись миллионов пассажиров
         for (int i = 0; i < countM; i++)
         {
             Записать2(row++, col, "Код", "ост отправ", "ост пересадки", "ост назнач", "время появл", "время посадки",
                       "время приезда", "код маршрута", "кол пересадок", "число полных ТС");
             for (int j = 0; j < 1000000; j++)
             {
                 Пассажир pas = listPas[i * 1000000 + j];
                 Записать2(row++, col, pas.Код, pas.КодОстОтправления, pas.КодОстПересадки, pas.КодОстНазначения,
                           pas.ВремяПоявленияНаОстановке, pas.ВремяПосадки, pas.ВремяПриезда, pas.КодМаршрута, pas.КолПересадок, pas.КолПропущенныхПолныхТС);
             }
             row  = 2;
             col += 10;
         }
         //запись остатков пассажиров
         countM *= 1000000;
         Записать2(row++, col, "Код", "ост отправ", "ост пересадки", "ост назнач", "время появл", "время посадки",
                   "время приезда", "код маршрута", "кол пересадок", "число полных ТС");
         for (int i = 0; i < count; i++)
         {
             Пассажир pas = listPas[countM + i];
             Записать2(row++, col, pas.Код, pas.КодОстОтправления, pas.КодОстПересадки, pas.КодОстНазначения,
                       pas.ВремяПоявленияНаОстановке, pas.ВремяПосадки, pas.ВремяПриезда, pas.КодМаршрута, pas.КолПересадок, pas.КолПропущенныхПолныхТС);
         }
     }
 }
Пример #4
0
 public void появлениеПассажира(Пассажир пас, bool пересадочный = false)
 {
     СуммКолПересадочПассажиров += (пересадочный ? 1 : 0);
     СуммКолПоявившПассажиров++;
 }
Пример #5
0
 public void высадкаПассажира(Пассажир пас)
 {
     СуммКолПрибПассажиров++;
 }