public static void ZnajdzSciezkeKrytyczna(List <Zadanie> zadania, List <Zadanie> ostatecznaSciezka)
        {
            Zadanie max = new Zadanie();

            foreach (Zadanie zad in zadania)
            {
                if (zad.czasZakonczenia > max.czasZakonczenia)
                {
                    max = zad;
                }
            }
            ostatecznaSciezka.Add(max);
            if (max.poprzednieZadania.Count() != 0)
            {
                ZnajdzSciezkeKrytyczna(max.poprzednieZadania, ostatecznaSciezka);
            }
        }
Beispiel #2
0
        public static void Wczytaj(string plik)
        {
            string[] lines = System.IO.File.ReadAllLines(@"D:\Uczelnia\semestr_6\SzeregowanieZadan\zad01\CPM\" + plik);

            for (int i = 0; i < lines.Length; i += 3)
            {
                int numerZadania = Int32.Parse(lines[i]);
                int czasTrwania  = Int32.Parse(lines[i + 1]);

                Zadanie z = new Zadanie(numerZadania, czasTrwania, 0, 0, new List <Zadanie>(), new List <Zadanie>());
                ManagerZadan.zadania.Add(z);
            }



            int j = 0;

            for (int i = 2; i < lines.Length; i += 3)
            {
                List <string> zadaniaPoprzednie = new List <string>();
                foreach (string zad in lines[i].Split(' '))
                {
                    zadaniaPoprzednie.Add(zad);
                }

                foreach (string zad in zadaniaPoprzednie)
                {
                    if (int.TryParse(zad, out int a))
                    {
                        int b = Convert.ToInt32(zad);
                        ManagerZadan.zadania.ElementAt(j).poprzednieZadania.Add(ManagerZadan.zadania.ElementAt(b - 1));
                        ManagerZadan.zadania.ElementAt(b - 1).nastepneZadania.Add(ManagerZadan.zadania.ElementAt(j));
                    }
                }

                j++;
            }
        }