Program.cs 6.05 KB
Newer Older
Uwe Wienkop's avatar
Uwe Wienkop committed
1 2
using System;
using System.Collections.Generic;
Uwe Wienkop's avatar
Uwe Wienkop committed
3
using System.Linq;
Uwe Wienkop's avatar
Uwe Wienkop committed
4 5 6 7

// Modifizieren/Erweitern Sie die KeyValue Klassen bzw. das Main()-Programm
// derart, dass Sie eine weitergehende Kalenderverwaltung realisieren. In
// Main erstellen Sie bitte eine Menü mit Auswahl:
Uwe Wienkop's avatar
Uwe Wienkop committed
8
// 1 - Termin eintragen (tt.mm|Thema|Projekt|Teilnehmer|Uhrzeit)
Uwe Wienkop's avatar
Uwe Wienkop committed
9 10 11
// 2 - Monatstermine auflisten; Eingabe Monat mm
// 3 - Jahrestermine auflisten
// 4 - Alle Termine eines Projekts im Monat mm; Eingabe mm|Projektname
Uwe Wienkop's avatar
Uwe Wienkop committed
12
// Diskutieren Sie die KeyValue-Struktur
Uwe Wienkop's avatar
Uwe Wienkop committed
13 14

// 12 x 100 (5 Tage x 4 Wochen x 5 Termine/Tag); 10 Projekte
Uwe Wienkop's avatar
Uwe Wienkop committed
15
// Variante 1:   Ebene 1: Monat; Ebene 2: Projekt; Value 2: Restliche Infos
Uwe Wienkop's avatar
Uwe Wienkop committed
16 17 18 19 20 21 22 23 24
//    06 | {
//            Prog2 | {
//                      09, 8:45, Übung, Gruppe-B
//                      09, 9:45, Vorlesung, alle
//                    }
//       | {
//            DigBB | { ...
// Ebene 1: 12 Elemente, 10 Elemente, 10 Einträge/Proj.
// Suchschritte: 6 + 5 + 5 = 16
Uwe Wienkop's avatar
Uwe Wienkop committed
25
// KeyValueList<int,KeyValueList<string,List<Termin>>> givemeAName
Uwe Wienkop's avatar
Uwe Wienkop committed
26

Uwe Wienkop's avatar
Uwe Wienkop committed
27 28 29 30 31 32 33 34
// Variante 2:   Ebene 1: Datum; Value 1: Restl. Infos
//    09-06 | {
//               08:00, Übung, Prog2, Gruppe-B
//               09:45, Vorlesung, Prog2, alle
//            }
//    10-06 | {
//               09:45, Vorlesung, DigBB, alle
//            }
Uwe Wienkop's avatar
Uwe Wienkop committed
35 36
// DateTime datum = new DateTime(2020, 6, 9)
// KeyValueList<DateTime, List<Termin>> organizer = ....
Uwe Wienkop's avatar
Uwe Wienkop committed
37 38
// Ebene 1: 240 Arbeitstage, Ebene 2: 5 Elemente
// Suchschritte: 120 + 3 = 123
Uwe Wienkop's avatar
Uwe Wienkop committed
39 40 41 42 43 44 45

namespace _07KeyValueList
{
    class Termin
    {
        public string was;
        public string wer;
Uwe Wienkop's avatar
Uwe Wienkop committed
46
        public Termin(string was, string wer) { this.was = was; this.wer = wer; }
Uwe Wienkop's avatar
Uwe Wienkop committed
47 48
        public override string ToString() => $"Termin: {was} mit {wer}";
    }
Uwe Wienkop's avatar
Uwe Wienkop committed
49 50
    class ComplexKey : IComparable<ComplexKey>
    {
Uwe Wienkop's avatar
Uwe Wienkop committed
51 52 53
        public int Wert1 { get; set; }
        public string Wert2 { get; set; }
        public ComplexKey(int Wert1, string Wert2) { this.Wert1 = Wert1;this.Wert2 = Wert2; }
Uwe Wienkop's avatar
Uwe Wienkop committed
54 55
        public int CompareTo(ComplexKey other)
        {
Uwe Wienkop's avatar
Uwe Wienkop committed
56
            int diff = Wert1.CompareTo(other.Wert1);
Uwe Wienkop's avatar
Uwe Wienkop committed
57 58
            if (diff != 0)
                return diff;
Uwe Wienkop's avatar
Uwe Wienkop committed
59
            return Wert2.CompareTo(other.Wert2);
Uwe Wienkop's avatar
Uwe Wienkop committed
60 61
        }
    }
Uwe Wienkop's avatar
Uwe Wienkop committed
62 63 64 65 66 67 68 69
    class Program
    {
        static void Main(string[] args)
        {
            KeyValueListe<string, int> kvListe = new KeyValueListe<string, int>();
            kvListe["Wienkop"] = 1614;
            kvListe["Otsa"] = 1855;

Uwe Wienkop's avatar
Uwe Wienkop committed
70 71 72
            Console.WriteLine($"Telefonnummer von Wienkop: {kvListe["Wienkop"]}");
            Console.WriteLine("-----------");

Uwe Wienkop's avatar
Uwe Wienkop committed
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
            kvListe.Print();
            Console.WriteLine("-----------");
            kvListe["Otsa"] = 9999;
            kvListe.Print();
            Console.WriteLine("-----------");

            KeyValueListe<string, Termin> termine = new KeyValueListe<string, Termin>();
            termine["Wienkop"] = new Termin("IT-Proj", "Digitale Visitenkarte");
            termine.Print();
            //foreach (var item in termine)
            //{
            //    Console.WriteLine(item.val);
            //}

            List<Termin> termineMi = new List<Termin>();
            termineMi.Add(new Termin("08:00 Prog2-Vorlesung", "Gruppe-Wienkop"));
Uwe Wienkop's avatar
Uwe Wienkop committed
89
            termineMi.Add(new Termin("09:45 Dig Bildbearbeitung", "MA-MIN"));
Uwe Wienkop's avatar
Uwe Wienkop committed
90 91 92 93

            List<Termin> termineDi = new List<Termin>();
            termineDi.Add(new Termin("08:00 Prog2-Übung", "Gruppe-Wienkop"));
            termineDi.Add(new Termin("09:45 Prog2-Vorlesung", "Gruppe-Wienkop"));
Uwe Wienkop's avatar
Uwe Wienkop committed
94
            termineDi.Add(new Termin("11:30 Mitarbeiterbesprechung", "Jobbörse"));
Uwe Wienkop's avatar
Uwe Wienkop committed
95 96 97

            KeyValueListe<string, List<Termin>> terminverwaltung = new KeyValueListe<string, List<Termin>>();
            terminverwaltung["02.06.2020"] = termineDi;
Uwe Wienkop's avatar
Uwe Wienkop committed
98
            terminverwaltung["03.06.2020"] = termineMi;
Uwe Wienkop's avatar
Uwe Wienkop committed
99 100
            terminverwaltung["02.06.2020"].Add(new Termin("11:30 Teams", "BayernMINT"));

Uwe Wienkop's avatar
Uwe Wienkop committed
101
            // Pfannkuchen, Zutaten(Mehl, Milch, Eier), Zubereitung (Schritt1, Schritt2, ...)
Uwe Wienkop's avatar
Uwe Wienkop committed
102 103 104 105 106 107 108 109 110 111
            KeyValueListe<string, (List<string>, List<string>)> rezepte = new KeyValueListe<string, (List<string>, List<string>)>();
            List<string> zutaten = new List<string>();
            zutaten.Add("Mehl");
            zutaten.Add("Milch");
            zutaten.Add("Eier");
            List<string> zubereitung = new List<string>();
            zubereitung.Add("Eier in Schüssel schlagen");
            zubereitung.Add("mit Mehl und Milch verrühren");

            rezepte["Pfannkuchen"] = (zutaten, zubereitung);
Uwe Wienkop's avatar
Uwe Wienkop committed
112 113


Uwe Wienkop's avatar
Uwe Wienkop committed
114 115 116
            List<string> zutaten2;
            List<string> zubereitung2;
            (zutaten2, zubereitung2) = rezepte["Pfannkuchen"];
Uwe Wienkop's avatar
Uwe Wienkop committed
117 118 119 120 121 122 123 124 125 126
            Console.WriteLine("Zutaten: ");
            foreach (var item in zutaten2)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("Zubereitung:");
            foreach (var item in zubereitung2)
            {
                Console.WriteLine(item);
            }
Uwe Wienkop's avatar
Uwe Wienkop committed
127 128 129

            //KeyValueListe<string, KeyValueListe<char, string>> l3 = new KeyValueListe<string, KeyValueListe<char, string>>();
            //l3["Wienkop"]['A'] = "Teambesprechung";
Uwe Wienkop's avatar
Uwe Wienkop committed
130 131 132 133 134 135 136 137 138

            foreach (var tag in terminverwaltung)
            {
                Console.WriteLine($"\nTermine am {tag.key}:");
                foreach (var item in tag.val)
                {
                    Console.WriteLine(item);
                }
            }
Uwe Wienkop's avatar
Uwe Wienkop committed
139 140

            if ((2, 3, "2020").CompareTo((2, 3, "2020")) == 0)
Uwe Wienkop's avatar
Uwe Wienkop committed
141
                Console.WriteLine("Ist gleich");   // Ergebnis: die beiden sind gleich!
Uwe Wienkop's avatar
Uwe Wienkop committed
142 143 144 145
            else
                Console.WriteLine("Ist ungleich");

            KeyValueListe<int, KeyValueListe<string, List<string>>> t3 = new KeyValueListe<int, KeyValueListe<string, List<string>>>();
Uwe Wienkop's avatar
Uwe Wienkop committed
146 147 148 149 150 151 152
            List<string> l;
            t3[6]["Prog2"] = l = new List<string>();
            l.Add("09.45 Vorlesung");

            KeyValueListe<(int, int), string> t4 = new KeyValueListe<(int, int), string>();
            t4[(3, 6)] = "Kaffestunde";
            t4[(3, 5)] = "Vorlesung";
Uwe Wienkop's avatar
Uwe Wienkop committed
153

Uwe Wienkop's avatar
Uwe Wienkop committed
154
            KeyValueListe<ComplexKey, string> t5 = new KeyValueListe<ComplexKey, string>();
Uwe Wienkop's avatar
Uwe Wienkop committed
155 156 157
        }
    }
}