示例#1
0
        /*
         * Nechá uživatele vybrat a přiřadit na školení lektora ze seznamu lektorů,
         * kteří mohou na školení učit.
         */
        public void PriraditLektora(Skoleni skoleni)
        {
            // Vytvoříme si seznam lektorů, kteří ještě nejsou přiřazeni na toto školení
            // a mohou tedy být přiřazeni
            List <Lektor> lektori = new List <Lektor>();

            foreach (Lektor lektor in Lektori)
            {
                if (!skoleni.Lektori.Contains(lektor))
                {
                    lektori.Add(lektor);
                }
            }

            Console.WriteLine("*** Přiřazení lektora na školení ***");
            // Zobrazíme seznam lektorů, které je možné přiřadit na školení a necháme
            // uživatele vybrat, kterého chce přiřadit.
            for (int i = 0; i < lektori.Count; i++)
            {
                Console.WriteLine("{0}. {1} {2} ({3})", i + 1, lektori[i].Jmeno, lektori[i].Prijmeni, lektori[i].Kod);
            }
            Console.WriteLine("0. Zpět");
            Console.Write("Přiřadit lektora:");
            int volba = Int32.Parse(Console.ReadLine()) - 1;

            if (volba >= 0 && volba < lektori.Count)
            {
                skoleni.Lektori.Add(lektori[volba]);
                UlozitSkoleni();
                Console.WriteLine("! Lektor byl úspěšně přihlášen na školení !");
            }
        }
示例#2
0
        /*
         * Nechá uživatele vybrat a přihlásit na školení studenta ze seznamu studentů,
         * kteří se mohou přihlásit na školení.
         */
        public void PrihlasitStudenta(Skoleni skoleni)
        {
            // Vytvoříme si seznam studentů, kteří ještě na školení nejsou přihlášení
            // a mohou se tedy přihlásit
            List <Student> studenti = new List <Student>();

            foreach (Student student in Studenti)
            {
                if (!skoleni.Studenti.Contains(student))
                {
                    studenti.Add(student);
                }
            }

            Console.WriteLine("*** Přihlášení studenta na školení ***");
            // Zobrazíme seznam studentů, které je možné přihlásit na školení a necháme
            // uživatele vybrat, kterého chce přihlásit.
            for (int i = 0; i < studenti.Count; i++)
            {
                Console.WriteLine("{0}. {1} {2} ({3})", i + 1, studenti[i].Jmeno, studenti[i].Prijmeni, studenti[i].Kod);
            }
            Console.WriteLine("0. Zpět");
            Console.Write("Přihlásit studenta:");
            int volba = Int32.Parse(Console.ReadLine()) - 1;

            if (volba >= 0 && volba < studenti.Count)
            {
                skoleni.Studenti.Add(studenti[volba]);
                UlozitSkoleni();
                Console.WriteLine("! Student byl úspěšně přihlášen na školení !");
            }
        }
示例#3
0
        /*
         * Výpiše na konzoli detailní informace o školení. Pokud je školení uzavřené, pak
         * vypíše i hodnocení jednotlivých studentů
         */
        public void ZobrazDetailSkoleni(Skoleni skoleni)
        {
            string stav = "Otevřené";

            if (skoleni.Uzavreno)
            {
                stav = "Uzavřené";
            }

            Console.WriteLine("*** Detail Skoleni ***\n");
            Console.WriteLine("Název školení: {0}", skoleni.Nazev);
            Console.WriteLine("\tStav: {0}", stav);
            Console.WriteLine("\tPopis: {0}", skoleni.Popis);
            Console.WriteLine("\tDoporučený počet účastníků: {0}", skoleni.DoporucenyPocetUcastniku);
            Console.WriteLine("\tDatum konání: {0} - {1}", skoleni.PocatecniDatum.ToShortDateString(), skoleni.KoncoveDatum.ToShortDateString());
            Console.WriteLine("\tLektori:");

            foreach (Lektor lektor in skoleni.Lektori)
            {
                Console.WriteLine("\t\t{0} {1} ({2})", lektor.Jmeno, lektor.Prijmeni, lektor.Kod);
            }

            Console.WriteLine("\tStudenti:");
            foreach (Student student in skoleni.Studenti)
            {
                if (skoleni.Uzavreno)
                {
                    Console.WriteLine("\t\t{0} {1} ({2}) - {3}%", student.Jmeno, student.Prijmeni, student.Kod, skoleni.HodnoceniStudentu[student]);
                }
                else
                {
                    Console.WriteLine("\t\t{0} {1} ({2})", student.Jmeno, student.Prijmeni, student.Kod);
                }
            }
        }
示例#4
0
 /*
  * Postupně vyzve k zadání hodnocení jednotlivých studentů. Po ohodnocení
  * všech studentů nastaví školení jako uzavřené.
  */
 public void UzavritSkoleni(Skoleni skoleni)
 {
     Console.WriteLine("*** Uzavření školení ***");
     Console.WriteLine("Vyplňte hodnocení jednotlivých studentů");
     foreach (Student student in skoleni.Studenti)
     {
         Console.Write("{0} {1} ({2}): ", student.Jmeno, student.Prijmeni, student.Kod);
         int hodnoceni = Int32.Parse(Console.ReadLine());
         skoleni.HodnoceniStudentu[student] = hodnoceni;
     }
     skoleni.Uzavreno = true;
     UlozitSkoleni();
     Console.WriteLine("! Školení bylo úspěšně uzavřeno !");
 }
示例#5
0
        /*
         * Postupně od uživatele načte informace a vytvoří nové školení a uloží jej do seznamu školení
         */
        public void NoveSkoleni()
        {
            Console.WriteLine("*** Vytvoření nového školení ***");
            Console.Write("Název:");
            string nazev = Console.ReadLine();

            Console.Write("Popis:");
            string popis = Console.ReadLine();

            Console.Write("Doporučený počet účastníků:");
            int doporucenyPocetUcastniku = Int32.Parse(Console.ReadLine());

            Console.WriteLine("Počáteční datum:");
            Console.Write("\tDen:");
            int pocDatDen = Int32.Parse(Console.ReadLine());

            Console.Write("\tMesic:");
            int pocDatMes = Int32.Parse(Console.ReadLine());

            Console.Write("\tRok:");
            int      pocDatRok      = Int32.Parse(Console.ReadLine());
            DateTime pocatecniDatum = new DateTime(pocDatRok, pocDatMes, pocDatDen);

            Console.WriteLine("Koncové datum:");
            Console.Write("\tDen:");
            int konDatDen = Int32.Parse(Console.ReadLine());

            Console.Write("\tMesic:");
            int konDatMes = Int32.Parse(Console.ReadLine());

            Console.Write("\tRok:");
            int      konDatRok    = Int32.Parse(Console.ReadLine());
            DateTime koncoveDatum = new DateTime(konDatRok, konDatMes, konDatDen);

            Skoleni noveSkoleni = new Skoleni(nazev, popis, pocatecniDatum, koncoveDatum,
                                              new List <Student>(), new List <Lektor>(), new Dictionary <Student, int>(), doporucenyPocetUcastniku, false);

            SeznamSkoleni.Add(noveSkoleni);

            UlozitSkoleni();
            Console.WriteLine("! Školení bylo úspěšně vytvořeno !");
        }
示例#6
0
        /*
         * Nechá uživatele vybrat a odebrat ze školení lektora, který je již na školení přiřazen
         */
        public void OdebratLektora(Skoleni skoleni)
        {
            Console.WriteLine("*** Odebrání lektora ze školení ***");
            // Zobrazíme seznam lektorů, které je možné odebrat ze školení a necháme
            // uživatele vybrat, kterého chce odebrat.
            for (int i = 0; i < skoleni.Lektori.Count; i++)
            {
                Console.WriteLine("{0}. {1} {2} ({3})", i + 1, skoleni.Lektori[i].Jmeno, skoleni.Lektori[i].Prijmeni,
                                  skoleni.Lektori[i].Kod);
            }
            Console.WriteLine("0. Zpět");
            Console.Write("Odebrat lektora:");
            int volba = Int32.Parse(Console.ReadLine()) - 1;

            if (volba >= 0 && volba < skoleni.Lektori.Count)
            {
                skoleni.Lektori.Remove(skoleni.Lektori[volba]);
                UlozitSkoleni();
                Console.WriteLine("! Lektor byl úspěšně odebrán ze školení !");
            }
        }
示例#7
0
        /*
         * Nechá uživatele vybrat a odhlásit ze školení studenta, který je již na školení přihlášen
         */
        public void OdhlasitStudenta(Skoleni skoleni)
        {
            Console.WriteLine("*** Odhlášení studenta ze školení ***");
            // Zobrazíme seznam studentů, které je možné odhlásit ze školení a necháme
            // uživatele vybrat, kterého chce odhlásit.
            for (int i = 0; i < skoleni.Studenti.Count; i++)
            {
                Console.WriteLine("{0}. {1} {2} ({3})", i + 1, skoleni.Studenti[i].Jmeno, skoleni.Studenti[i].Prijmeni,
                                  skoleni.Studenti[i].Kod);
            }
            Console.WriteLine("0. Zpět");
            Console.Write("Odhlásit studenta:");
            int volba = Int32.Parse(Console.ReadLine()) - 1;

            if (volba >= 0 && volba < skoleni.Studenti.Count)
            {
                skoleni.Studenti.Remove(skoleni.Studenti[volba]);
                UlozitSkoleni();
                Console.WriteLine("! Student byl úspěšně odhlášen ze školení !");
            }
        }
示例#8
0
        static void Main(string[] args)
        {
            SpravaSkoleni spravaSkoleni = new SpravaSkoleni();

            spravaSkoleni.NacistZamestnance();
            spravaSkoleni.NacistSkoleni();

            int volba = 0;

            while (volba != 3)
            {
                volba = ZobrazVyberMenu("Hlavní menu", new string[] { "Nové školení", "Seznam školení", "Ukončit program", "Vypsat ladící info" });
                switch (volba)
                {
                case 1:
                    spravaSkoleni.NoveSkoleni();
                    break;

                case 2:
                    Skoleni vybraneSkoleni = spravaSkoleni.VybratSkoleni();
                    if (vybraneSkoleni != null)
                    {
                        int volbaDetailSkoleni = 0;
                        while (volbaDetailSkoleni != 6)
                        {
                            spravaSkoleni.ZobrazDetailSkoleni(vybraneSkoleni);
                            if (vybraneSkoleni.Uzavreno)
                            {
                                Console.WriteLine("! Školení je uzavřené a nelze s ním provést žádnou operaci. Pro návrat zpět stiskněte libovolnou klávsesu !");
                                Console.ReadKey();
                                break;
                            }
                            else
                            {
                                volbaDetailSkoleni = ZobrazVyberMenu("Školení", new string[] { "Přihlásit studenta", "Odhlásit studenta", "Přiřadit lektora",
                                                                                               "Odebrat lektora", "Uzavřít školení", "Zpět na hlavní menu" });
                                switch (volbaDetailSkoleni)
                                {
                                case 1:
                                    spravaSkoleni.PrihlasitStudenta(vybraneSkoleni);
                                    break;

                                case 2:
                                    spravaSkoleni.OdhlasitStudenta(vybraneSkoleni);
                                    break;

                                case 3:
                                    spravaSkoleni.PriraditLektora(vybraneSkoleni);
                                    break;

                                case 4:
                                    spravaSkoleni.OdebratLektora(vybraneSkoleni);
                                    break;

                                case 5:
                                    spravaSkoleni.UzavritSkoleni(vybraneSkoleni);
                                    break;
                                }
                            }
                        }
                    }
                    break;

                case 4:
                    spravaSkoleni.VypisLadiciInfo();
                    break;
                }
            }
            Console.ReadKey();
        }
示例#9
0
        /* Předpokládáme, že soubor skoleni.txt existuje a obsahuje data
         * v očekávaném formátu. Nestandardní situace jako např. chybějící údaje
         * nebo neexistující soubor neošetřujeme.
         */
        public void NacistSkoleni()
        {
            StreamReader reader = new StreamReader("skoleni.txt");

            // Přeskočíme první řádek souboru
            reader.ReadLine();
            string radek = "";

            while ((radek = reader.ReadLine()) != null)
            {
                // Přečteme informace o školení, které jsou vždy na řádku,
                // který následuje po řádku obsahujícím řetězec SKOLENI
                string[] informaceSkoleni = radek.Split(';');
                string   nazev            = informaceSkoleni[0];
                string   popis            = informaceSkoleni[1];

                string[] pocatecniDatumSlozky = informaceSkoleni[2].Split('.');
                DateTime pocatecniDatum       = new DateTime(Int32.Parse(pocatecniDatumSlozky[2]), Int32.Parse(pocatecniDatumSlozky[1]), Int32.Parse(pocatecniDatumSlozky[0]));

                string[] koncoveDatumSlozky = informaceSkoleni[3].Split('.');
                DateTime koncoveDatum       = new DateTime(Int32.Parse(koncoveDatumSlozky[2]), Int32.Parse(koncoveDatumSlozky[1]), Int32.Parse(koncoveDatumSlozky[0]));

                int doporucenyPocetUcastniku = Int32.Parse(informaceSkoleni[4]);

                bool skoleniUzavreno = false;
                if (informaceSkoleni[5] == "ANO")
                {
                    skoleniUzavreno = true;
                }
                // Přeskočíme řádek na kterém očekáváme, že musí být řetězec LEKTORI
                reader.ReadLine();
                List <Lektor> lektori = new List <Lektor>();
                while ((radek = reader.ReadLine()) != "STUDENTI")
                {
                    // Dokud nenarazíme na řádek s řetězcem STUDENTI, tak čteme lektory
                    lektori.Add(NajdiLektoraPodleKodu(radek));
                }

                List <Student> studenti = new List <Student>();
                while ((radek = reader.ReadLine()) != "HODNOCENI")
                {
                    // Dokud nenarazíme na řádek s řetězcem HODNOCENI, tak čteme studenty
                    studenti.Add(NajdiStudentaPodleKodu(radek));
                }
                Dictionary <Student, int> hodnoceni = new Dictionary <Student, int>();
                while (true)
                {
                    // Dokud nenarazíme na řádek s řetězcem SKOLENI, tak čteme hodnocení
                    radek = reader.ReadLine();
                    if (radek == null || radek == "SKOLENI")
                    {
                        break;
                    }
                    string[] hodnotyHodnoceni = radek.Split(';');
                    hodnoceni.Add(NajdiStudentaPodleKodu(hodnotyHodnoceni[0]), Int32.Parse(hodnotyHodnoceni[1]));
                }

                /*
                 * Vytvoříme instanci Skoleni. Ta v sobě bude mít informaci kteří studenti a lektoři se školení účastní.
                 * Zároveň jednotlivým studentům a lektorům přiřadíme informaci o výše vytvořeném školení
                 * Toto se nám bude hodit ve chvíli, kdy budeme chtít jednoduše získat pro daného studenta nebo lektora seznam jeho školení
                 */
                Skoleni skoleni = new Skoleni(nazev, popis, pocatecniDatum, koncoveDatum, studenti, lektori, hodnoceni, doporucenyPocetUcastniku, skoleniUzavreno);
                foreach (Student student in studenti)
                {
                    student.Skoleni.Add(skoleni);
                }
                foreach (Lektor lektor in lektori)
                {
                    lektor.VyucovanaSkoleni.Add(skoleni);
                }
                SeznamSkoleni.Add(skoleni);
            }
            reader.Close();
        }