예제 #1
0
        public Kaart TrekRandomKaart()
        {
            Random rnd   = new Random();
            int    getal = rnd.Next(0, (kaartenPerBoek * aantalBoeken));

            if (boekKaarten.Count <= 0)
            {
                this.Opstarten();
                //this.Schudden();
            }
            Kaart kaartTerugTeGeven = boekKaarten[getal];

            boekKaarten.RemoveAt(getal);
            return(kaartTerugTeGeven);
        }
        static void Main(string[] args)
        {
            BookmarkManagar();

            Console.ReadLine();

            void Prijzen()
            {
                Random rnd = new Random();

                double[] prijzen = new double[20];
                double   gem     = 0;

                for (int i = 0; i < prijzen.Length; i++)
                {
                    Console.Write($"Prijs {i}: ");
                    Console.Write(prijzen[i] = Convert.ToDouble(rnd.Next(1, 20)));
                    Console.ReadLine();
                }
                for (int i = 0; i < prijzen.Length; i++)
                {
                    if (prijzen[i] >= 5)
                    {
                        Console.WriteLine(prijzen[i]);
                    }
                    gem += prijzen[i];
                }
                Console.WriteLine($"Gemiddelde: {gem/=prijzen.Length}");
            }

            void Speelkaarten()
            {
                BoekKaarten boekKaarten = new BoekKaarten();

                Console.WriteLine($"Aantal kaarten: {boekKaarten.AantalKaarten()}");
                Kaart getrokkenKaart = boekKaarten.TrekRandomKaart();

                Console.WriteLine($"Getrokken kaart: {getrokkenKaart.suite} - {getrokkenKaart.waarde}");
                Console.WriteLine($"Aantal kaarten over: {boekKaarten.AantalKaarten()}");
            }

            void StudentOrganizer()
            {
                List <Student> studenten = new List <Student>();

                for (int i = 0; i < 5; i++)
                {
                    studenten.Add(new Student());
                }
                bool exit = false;

                while (!exit)
                {
                    switch (SelectMenu("Student gegevens invoeren", "Student gegevens tonen", "Verwijder student", "exit"))
                    {
                    case 1:
                    {
                        int  iAntw         = 0;
                        bool overschrijven = false;
                        while (!overschrijven)
                        {
                            if (iAntw != 0)
                            {
                                Console.WriteLine("Gelieve een andere nummer te kiezen");
                                Console.ReadKey(false);
                                iAntw = 0;
                            }
                            while (iAntw > 5 || iAntw < 1)
                            {
                                Console.Clear();
                                int.TryParse(InputChr("Welke studentnummer wil je veranderen? (1 tot 5)").ToString(), out iAntw);
                            }
                            Console.WriteLine(iAntw);
                            if ((studenten[iAntw - 1].Naam != "") && (studenten[iAntw - 1].Naam != null))
                            {
                                overschrijven = InputBool($"Student {studenten[iAntw - 1].Naam} overschrijven?");
                            }
                            else
                            {
                                overschrijven = true;
                            }
                        }
                        studenten[iAntw - 1].Naam                        = InputStr("Naam: ");
                        studenten[iAntw - 1].Leeftijd                    = Convert.ToInt32(InputStr("Leeftijd: "));
                        studenten[iAntw - 1].Klas                        = (Klassen)SelectMenu("Klas: EA1", "Klas: EA2", "Klas: EA3", "Klas: EA4") - 1;
                        studenten[iAntw - 1].PuntenCommunicatie          = Convert.ToInt32(InputStr("Punten communicatie: "));
                        studenten[iAntw - 1].PuntenProgrammingPrinciples = Convert.ToInt32(InputStr("Punten programming pinciples: "));
                        studenten[iAntw - 1].PuntenWebTech               = Convert.ToInt32(InputStr("Punten web technology: "));
                        Console.WriteLine($"Student {studenten[iAntw - 1].Naam} bewaard");
                    }
                    break;

                    case 2:
                    {
                        Console.Clear();
                        Console.WriteLine("Overzicht alle studenten: ");
                        foreach (Student student in studenten)
                        {
                            if ((student.Naam != "") && (student.Naam != null))
                            {
                                Console.WriteLine();
                                student.GeefOverzicht();
                            }
                        }
                        Console.ReadLine();
                    }
                    break;

                    case 3:
                    {
                        List <string> studentNamen = new List <string>();
                        foreach (Student student in studenten)
                        {
                            if (student.Naam != "")
                            {
                                studentNamen.Add(student.Naam);
                            }
                        }
                        string teVerwijderen = studentNamen[SelectMenu(studentNamen.ToArray()) - 1];
                        bool   verwijderd    = false;
                        foreach (Student student in studenten)
                        {
                            if (student.Naam == teVerwijderen)
                            {
                                student.VerwijderGegevens();
                                verwijderd = true;
                                break;
                            }
                        }
                        Console.WriteLine(verwijderd?$"Student {teVerwijderen} is verwijderd.":$"Niet gelukt om {teVerwijderen} te verwijderen.");
                        Console.ReadLine();
                    }
                    break;

                    default: exit = true; break;
                    }
                }
            }

            void BookmarkManagar()
            {
                List <Bookmark> bookmarks = new List <Bookmark>();
                bool            exit      = false;

                for (int i = 0; i < 5; i++)
                {
                    bookmarks.Add(new Bookmark());
                }

                while (!exit)
                {
                    switch (SelectMenu("Bookmark aanmaken/aanpassen", "Bookmark verwijderen", "Bookmark openen", "exit"))
                    {
                    case 1:
                    {
                        int  iAntw         = 0;
                        bool overschrijven = false;
                        while (!overschrijven)
                        {
                            if (iAntw != 0)
                            {
                                Console.WriteLine("Gelieve een andere bookmark te kiezen");
                                Console.ReadKey(false);
                                iAntw = 0;
                            }
                            while (iAntw > 5 || iAntw < 1)
                            {
                                Console.Clear();
                                int.TryParse(InputChr("Welke bookmark wil je veranderen? (1 tot 5)").ToString(), out iAntw);
                            }
                            Console.WriteLine(iAntw);
                            if ((bookmarks[iAntw - 1].Naam != "") && (bookmarks[iAntw - 1].Naam != null))
                            {
                                overschrijven = InputBool($"Bookmark {bookmarks[iAntw - 1].Naam} overschrijven?");
                            }
                            else
                            {
                                overschrijven = true;
                            }
                        }
                        bookmarks[iAntw - 1].Naam = InputStr("Naam: ");
                        bookmarks[iAntw - 1].URL  = InputStr("URL: ");
                        Console.WriteLine($"Bookmark {bookmarks[iAntw - 1].Naam} bewaard");
                    }
                    break;

                    case 2:
                    {
                        List <string> bookmarkName = new List <string>();
                        foreach (Bookmark bookmark in bookmarks)
                        {
                            if ((bookmark.Naam != "") && (bookmark.Naam != null))
                            {
                                bookmarkName.Add(bookmark.Naam);
                            }
                        }
                        bookmarkName.Add("Exit");
                        string teVerwijderen = bookmarkName[SelectMenu(bookmarkName.ToArray()) - 1];
                        bool   verwijderd    = false;
                        foreach (Bookmark bookmark in bookmarks)
                        {
                            if (bookmark.Naam == teVerwijderen)
                            {
                                bookmark.VerwijderGegevens();
                                verwijderd = true;
                                break;
                            }
                        }
                        Console.WriteLine(verwijderd ? $"Bookmark {teVerwijderen} is verwijderd." : $"Niet gelukt om {teVerwijderen} te verwijderen.");
                        Console.ReadLine();
                    }
                    break;

                    case 3:
                    {
                        List <string> bookmarkName = new List <string>();
                        foreach (Bookmark bookmark in bookmarks)
                        {
                            if ((bookmark.Naam != "") && (bookmark.Naam != null))
                            {
                                bookmarkName.Add(bookmark.Naam);
                            }
                        }
                        bookmarkName.Add("Exit");
                        string bookmarkOpenen = bookmarkName[SelectMenu(bookmarkName.ToArray()) - 1];
                        foreach (Bookmark bookmark in bookmarks)
                        {
                            if (bookmark.Naam == bookmarkOpenen)
                            {
                                bookmark.OpenSite();
                                break;
                            }
                        }
                    } break;

                    default: exit = true; break;
                    }
                }
            }

            int SelectMenu(params string[] menu)
            {
                int          selection           = 1;
                bool         selected            = false;
                ConsoleColor selectionForeground = Console.BackgroundColor;
                ConsoleColor selectionBackground = Console.ForegroundColor;

                Console.SetCursorPosition(0, 0);
                Console.CursorVisible = false;
                Console.Clear();
                while (!selected)
                {
                    for (int i = 0; i < menu.Length; i++)
                    {
                        if (selection == i + 1)
                        {
                            Console.ForegroundColor = selectionForeground;
                            Console.BackgroundColor = selectionBackground;
                        }
                        Console.WriteLine((i + 1) + ": " + menu[i]);
                        Console.ResetColor();
                    }
                    switch (Console.ReadKey(true).Key)
                    {
                    case ConsoleKey.UpArrow:
                        selection--;
                        break;

                    case ConsoleKey.DownArrow:
                        selection++;
                        break;

                    case ConsoleKey.Enter:
                        selected = true;
                        break;

                    case ConsoleKey.D1:
                    case ConsoleKey.NumPad1: selection = 1; break;

                    case ConsoleKey.D2:
                    case ConsoleKey.NumPad2: selection = 2; break;

                    case ConsoleKey.D3:
                    case ConsoleKey.NumPad3: selection = 3 <= menu.Length ? 3:menu.Length; break;

                    case ConsoleKey.D4:
                    case ConsoleKey.NumPad4: selection = 4 <= menu.Length ? 4 : menu.Length; break;
                    }
                    selection = Math.Min(Math.Max(selection, 1), menu.Length);
                    Console.SetCursorPosition(0, 0);
                }
                Console.Clear();
                Console.CursorVisible = true;
                return(selection);
            }

            char InputChr(params string[] tekst)
            {
                for (int i = 0; i < tekst.GetLength(0); i++)
                {
                    Console.WriteLine(tekst[i]);
                }
                return(Console.ReadKey(true).KeyChar);
            }

            string InputStr(params string[] tekst)
            {
                for (int i = 0; i < tekst.GetLength(0); i++)
                {
                    if (tekst.GetLength(0) == 1)
                    {
                        Console.Write(tekst[i]);
                    }
                    else
                    {
                        Console.WriteLine(tekst[i]);
                    }
                }
                return(Console.ReadLine());
            }

            bool InputBool(string tekst = "j/n", bool Cyes = true, bool Cno = false)
            {
                Console.WriteLine(tekst);
                switch (Char.ToLower(Console.ReadKey(true).KeyChar))
                {
                case 'y':
                case 'j': return(Cyes);

                case 'n': return(Cno);
                }
                return(false);
            }
        }