Beispiel #1
0
 public void GetTestData()
 {
     Buses.Clear();
     Moves.Clear();
     Buses.Add(new Bus(Buses.Count() + 1, 10, 10 * Constans.MinutesInHour));
     Buses.Add(new Bus(Buses.Count() + 1, 20, 12 * Constans.MinutesInHour));
     Moves.Add(new Move(1, 1, 3, 5));
     Moves.Add(new Move(1, 3, 1, 7));
     Moves.Add(new Move(2, 1, 2, 10));
     Moves.Add(new Move(2, 2, 4, 5));
     Moves.Add(new Move(2, 4, 1, 20));
     SetPeriods();
     StationCount = 5;
 }
Beispiel #2
0
        public void ReadData(StreamReader myStream)// Метод парсинга текстового файла для получения исходных данных к задаче
        {
            string        lineFile;
            List <String> data = new List <String>();

            do
            {
                lineFile = myStream.ReadLine();
                data.Add(lineFile);
            }while (lineFile != null);
            BusesCount   = Convert.ToInt32(data[0]);
            StationCount = Convert.ToInt32(data[1]);
            Moves.Clear();
            Buses.Clear();
            var busesStarts = data[2].Split(' ').Select(x => Convert.ToInt32(Convert.ToDateTime(x).Hour *Constans.MinutesInHour + Convert.ToDateTime(x).Minute)).ToList();
            var costs       = data[3].Split(' ').Select(x => Convert.ToInt32(x)).ToList();

            for (int i = 1; i <= BusesCount; i++)
            {
                Buses.Add(new Bus(i, costs[i - 1], busesStarts[i - 1]));
            }
            int currentBus = 1;

            for (int i = 4; i < BusesCount + 4; i++)
            {
                var        moves    = data[i].Split(' ');
                int        count    = Convert.ToInt32(moves[0]);
                List <int> stations = new List <int>();
                for (int j = 1; j < count + 1; j++)//Станции, которые входят в конкретный маршрут
                {
                    stations.Add(Convert.ToInt32(moves[j]));
                }
                List <int> times = new List <int>();
                for (int k = count + 1; k < moves.Count(); k++)//Время переездов между станциями
                {
                    times.Add(Convert.ToInt32(moves[k]));
                }
                for (int u = 0; u < count - 1; u++)
                {
                    Moves.Add(new Move(currentBus, stations[u], stations[u + 1], times[u]));
                }
                Moves.Add(new Move(currentBus, stations[stations.Count - 1], stations[0], times[times.Count - 1]));
                currentBus++;
            }
            SetPeriods();
        }
Beispiel #3
0
 void TeardownBuses()
 {
     Buses.Reverse().Each(bus => { bus.Dispose(); });
     Buses.Clear();
 }
Beispiel #4
0
 //David: allows module and bus lists to be cleared before loading module and bus configuration
 public void clearModuleBusToLoad()
 {
     Modules.Clear();
     Buses.Clear();
     Module.UsedAddresses.Clear();
 }