public static DataRailwaySystem GetSampleSystem()
        {
            DataRailwaySystem dataRS = new DataRailwaySystem();

            dataRS.Stations = new List <string> {
                "A", "B", "C", "D", "E", "F", "G", "H"
            };

            dataRS.Paths = new List <PathStations>();
            dataRS.Paths.Add(new PathStations("A", "B", 5));
            dataRS.Paths.Add(new PathStations("B", "C", 5));
            dataRS.Paths.Add(new PathStations("C", "D", 5));
            dataRS.Paths.Add(new PathStations("D", "E", 5));
            dataRS.Paths.Add(new PathStations("E", "F", 5));
            dataRS.Paths.Add(new PathStations("F", "G", 5));
            dataRS.Paths.Add(new PathStations("G", "H", 5));

            dataRS.Trains = new List <RouteTrain>();
            dataRS.Trains.Add(new RouteTrain("A", "B", "C", "D", "E", "F", "G", "H"));
            dataRS.Trains.Add(new RouteTrain("H", "G", "F"));
            dataRS.Trains.Add(new RouteTrain("F", "E", "D"));
            dataRS.Trains.Add(new RouteTrain("C", "D"));
            dataRS.Trains.Add(new RouteTrain("A", "B"));
            dataRS.Trains.Add(new RouteTrain("C", "B"));
            dataRS.Trains.Add(new RouteTrain("A", "B", "C"));
            dataRS.Trains.Add(new RouteTrain("E", "D", "C"));
            dataRS.Trains.Add(new RouteTrain("D", "C", "B"));
            dataRS.Trains.Add(new RouteTrain("D"));

            return(dataRS);
        }
        public static void SetDataRailwaySystem(string fileName)
        {
            var           dataRS    = DataRailwaySystem.GetSampleSystem();
            XmlSerializer formatter = new XmlSerializer(typeof(DataRailwaySystem));

            using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate))
            {
                formatter.Serialize(fs, dataRS);
            }
        }
Пример #3
0
        public RailwaySystem(DataRailwaySystem dataRS)
        {
            nameStations = dataRS.Stations;
            paths        = dataRS.Paths;

            for (int i = 0; i < dataRS.Trains.Count; i++)
            {
                int time = 0, id1, id2 = nameStations.IndexOf(dataRS.Trains[i].Route[0]);
                trains.Add(new Train());
                trains[i].Add(id2, time);
                for (int j = 1; j < dataRS.Trains[i].Route.Count; j++)
                {
                    id1   = id2;
                    id2   = nameStations.IndexOf(dataRS.Trains[i].Route[j]);
                    time += paths.Find(x =>
                                       ((x.Begin == nameStations[id1]) && (x.End == nameStations[id2])) ||
                                       ((x.End == nameStations[id1]) && (x.Begin == nameStations[id2]))
                                       ).Distance;
                    trains[i].Add(id2, time);
                }
            }
        }