Uebungsaufgaben_ITFS_3_SS_2025/Program.cs
2025-02-10 08:57:36 +01:00

980 lines
47 KiB
C#

using System;
using System.IO;
using System.Collections.Generic;
namespace Exercises_C_Sharp
{
class Program
{
static List<ExerciseGroup> OptionList = new();
public static void Main()
{
//Zuerst schauen, ob der Speicherordner existiert
if(!Directory.Exists("saveFolder"))
Directory.CreateDirectory("saveFolder");
//************************
//*******Einleitung*******
//************************
ExerciseGroup beginnerElements = new()
{
Name = "1. Einleitung",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_5.Start}
}
};
//************************
//*******Variablen********
//************************
ExerciseGroup variableElements = new()
{
Name = "2. Variablen",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E02_Variablen.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E02_Variablen.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E02_Variablen.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E02_Variablen.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E02_Variablen.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E02_Variablen.Exercise_6.Start},
new(){Name = "Übung 7", Method = Exercises_C_Sharp.E02_Variablen.Exercise_7.Start},
new(){Name = "Übung 8", Method = Exercises_C_Sharp.E02_Variablen.Exercise_8.Start},
new(){Name = "Übung 9", Method = Exercises_C_Sharp.E02_Variablen.Exercise_9.Start}
}
};
//************************
//********Strings*********
//************************
ExerciseGroup stringElements = new()
{
Name = "3. Strings",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E03_Strings.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E03_Strings.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E03_Strings.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E03_Strings.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E03_Strings.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E03_Strings.Exercise_6.Start},
new(){Name = "Übung 7", Method = Exercises_C_Sharp.E03_Strings.Exercise_7.Start},
new(){Name = "Übung 8", Method = Exercises_C_Sharp.E03_Strings.Exercise_8.Start},
new(){Name = "Übung 9", Method = Exercises_C_Sharp.E03_Strings.Exercise_9.Start},
new(){Name = "Übung 10", Method = Exercises_C_Sharp.E03_Strings.Exercise_10.Start},
new(){Name = "Übung 11", Method = Exercises_C_Sharp.E03_Strings.Exercise_11.Start}
}
};
//************************
//********Konsole*********
//************************
ExerciseGroup terminalElements = new()
{
Name = "4. Konsole",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E04_Konsole.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E04_Konsole.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E04_Konsole.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E04_Konsole.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E04_Konsole.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E04_Konsole.Exercise_6.Start}
}
};
//************************
//********Arrays*********
//************************
ExerciseGroup arrayElements = new()
{
Name = "5. Arrays",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E05_Arrays.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E05_Arrays.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E05_Arrays.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E05_Arrays.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E05_Arrays.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E05_Arrays.Exercise_6.Start},
new(){Name = "Übung 7", Method = Exercises_C_Sharp.E05_Arrays.Exercise_7.Start},
new(){Name = "Übung 8", Method = Exercises_C_Sharp.E05_Arrays.Exercise_8.Start},
new(){Name = "Übung 9", Method = Exercises_C_Sharp.E05_Arrays.Exercise_9.Start},
new(){Name = "Übung 10", Method = Exercises_C_Sharp.E05_Arrays.Exercise_10.Start},
new(){Name = "Übung 11", Method = Exercises_C_Sharp.E05_Arrays.Exercise_11.Start},
new(){Name = "Übung 12", Method = Exercises_C_Sharp.E05_Arrays.Exercise_12.Start}
}
};
//************************
//********Random**********
//************************
ExerciseGroup randomElements = new()
{
Name = "6. Random",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E06_Random.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E06_Random.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E06_Random.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E06_Random.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E06_Random.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E06_Random.Exercise_6.Start}
}
};
//************************
//*******DateTime*********
//************************
ExerciseGroup datetimeElements = new()
{
Name = "6. DateTime",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E07_DateTime.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E07_DateTime.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E07_DateTime.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E07_DateTime.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E07_DateTime.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E07_DateTime.Exercise_6.Start},
new(){Name = "Übung 7", Method = Exercises_C_Sharp.E07_DateTime.Exercise_7.Start}
}
};
//************************
//********* IF ***********
//************************
ExerciseGroup ifElements = new()
{
Name = "8. if",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E08_If.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E08_If.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E08_If.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E08_If.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E08_If.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E08_If.Exercise_6.Start},
new(){Name = "Übung 7", Method = Exercises_C_Sharp.E08_If.Exercise_7.Start},
new(){Name = "Übung 8", Method = Exercises_C_Sharp.E08_If.Exercise_8.Start},
new(){Name = "Übung 9", Method = Exercises_C_Sharp.E08_If.Exercise_9.Start},
new(){Name = "Übung 10", Method = Exercises_C_Sharp.E08_If.Exercise_10.Start},
new(){Name = "Übung 11", Method = Exercises_C_Sharp.E08_If.Exercise_11.Start},
new(){Name = "Übung 12", Method = Exercises_C_Sharp.E08_If.Exercise_12.Start},
new(){Name = "Übung 13", Method = Exercises_C_Sharp.E08_If.Exercise_13.Start},
new(){Name = "Übung 14", Method = Exercises_C_Sharp.E08_If.Exercise_14.Start},
new(){Name = "Übung 15", Method = Exercises_C_Sharp.E08_If.Exercise_15.Start},
new(){Name = "Übung 16", Method = Exercises_C_Sharp.E08_If.Exercise_16.Start},
new(){Name = "Übung 17", Method = Exercises_C_Sharp.E08_If.Exercise_17.Start},
new(){Name = "Übung 18", Method = Exercises_C_Sharp.E08_If.Exercise_18.Start}
}
};
//************************
//*******Flowchart******* TODO
//************************
ExerciseGroup flowchartElements = new()
{
Name = "9. Flowcharts",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//*******SwitchCase******* TODO
//************************
ExerciseGroup switchcaseElements = new()
{
Name = "10. switch/case",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//***********FOR********** TODO
//************************
ExerciseGroup forElements = new()
{
Name = "11. for",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//******Resize Array****** TODO
//************************
ExerciseGroup resizeArrayElements = new()
{
Name = "12. Resize Array",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//*******FOREACH******* TODO
//************************
ExerciseGroup foreachElements = new()
{
Name = "13. foreach",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//**********WHILE********* TODO
//************************
ExerciseGroup whileElements = new()
{
Name = "14. while",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//*********DoWhile********* TODO
//************************
ExerciseGroup dowhileElements = new()
{
Name = "15. switch/case",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//*******breakcontinue******* TODO
//************************
ExerciseGroup breakcontinueElements = new()
{
Name = "16. break / continue",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//*******StructureDiagram******* TODO
//************************
ExerciseGroup structurediagramElements = new()
{
Name = "17. Strukturdiagramm",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//*******Methoden*******
//************************
ExerciseGroup methodsElements = new()
{
Name = "18. Methoden",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start},
new(){Name = "Übung 2", Method = E18_Methods.Exercise_2.Start},
new(){Name = "Übung 3", Method = E18_Methods.Exercise_3.Start},
new(){Name = "Übung 4", Method = E18_Methods.Exercise_4.Start},
new(){Name = "Übung 5", Method = E18_Methods.Exercise_5.Start},
new(){Name = "Übung 6", Method = E18_Methods.Exercise_6.Start}
}
};
//************************
//*******Überladung*******
//************************
ExerciseGroup ueberladungElements = new()
{
Name = "19. Überladung",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = E19_Überladung.Exercise_1.Start},
new(){Name = "Übung 2", Method = E19_Überladung.Exercise_2.Start},
new(){Name = "Übung 3", Method = E19_Überladung.Exercise_3.Start},
new(){Name = "Übung 4", Method = E19_Überladung.Exercise_4.Start},
new(){Name = "Übung 5", Method = E19_Überladung.Exercise_5.Start}
}
};
//************************
//********LISTEN**********
//************************
ExerciseGroup listElements = new()
{
Name = "20. Listen",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = E20_Lists.Exercise_1.Start},
new(){Name = "Übung 2", Method = E20_Lists.Exercise_2.Start},
new(){Name = "Übung 3", Method = E20_Lists.Exercise_3.Start},
new(){Name = "Übung 4", Method = E20_Lists.Exercise_4.Start},
new(){Name = "Übung 5", Method = E20_Lists.Exercise_5.Start},
new(){Name = "Übung 6", Method = E20_Lists.Exercise_6.Start},
new(){Name = "Übung 7", Method = E20_Lists.Exercise_7.Start},
new(){Name = "Übung 8", Method = E20_Lists.Exercise_8.Start},
new(){Name = "Übung 9", Method = E20_Lists.Exercise_9.Start},
new(){Name = "Übung 10", Method = E20_Lists.Exercise_10.Start},
new(){Name = "Übung 11", Method = E20_Lists.Exercise_11.Start},
new(){Name = "Übung 12", Method = E20_Lists.Exercise_12.Start},
new(){Name = "Übung 13", Method = E20_Lists.Exercise_13.Start}
}
};
//************************
//*********Sorting**********
//************************
ExerciseGroup sortingElements = new()
{
Name = "21. Sortieren",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = E21_Sorting.Exercise_1.Start},
new(){Name = "Übung 2", Method = E21_Sorting.Exercise_2.Start},
new(){Name = "Übung 3", Method = E21_Sorting.Exercise_3.Start},
new(){Name = "Übung 4", Method = E21_Sorting.Exercise_4.Start},
new(){Name = "Übung 5", Method = E21_Sorting.Exercise_5.Start},
new(){Name = "Übung 6", Method = E21_Sorting.Exercise_6.Start},
new(){Name = "Übung 7", Method = E21_Sorting.Exercise_7.Start},
new(){Name = "Übung 8", Method = E21_Sorting.Exercise_8.Start}
}
};
//************************
//******Dictionary********
//************************
ExerciseGroup dictionaryElements = new()
{
Name = "22. Dictionary",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.E22_Dictionary.Exercise_1.Start},
new(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.E22_Dictionary.Exercise_2.Start},
new(){Name = "Aufgabe 3", Method = Exercises_C_Sharp.E22_Dictionary.Exercise_3.Start},
new(){Name = "Aufgabe 4", Method = Exercises_C_Sharp.E22_Dictionary.Exercise_4.Start},
new(){Name = "Aufgabe 5", Method = Exercises_C_Sharp.E22_Dictionary.Exercise_5.Start}
}
};
//************************
//*******ChatGPT******* TODO
//************************
ExerciseGroup chatgptElements = new()
{
Name = "23. ChatGPT",
ElementList = new()
{
new(){Name = "Übung 1", Method = E323_ChatGPT.Exercise_1.Start}
}
};
//************************
//*********Enums**********
//************************
ExerciseGroup enumElements = new()
{
Name = "24. Enums",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = E24_Enumns.Exercise_1.Start},
new(){Name = "Übung 2", Method = E24_Enumns.Exercise_2.Start},
new(){Name = "Übung 3", Method = E24_Enumns.Exercise_3.Start},
new(){Name = "Übung 4", Method = E24_Enumns.Exercise_4.Start},
new(){Name = "Übung 5", Method = E24_Enumns.Exercise_5.Start},
new(){Name = "Übung 6", Method = E24_Enumns.Exercise_6.Start},
new(){Name = "Übung 7", Method = E24_Enumns.Exercise_7.Start},
new(){Name = "Übung 8", Method = E24_Enumns.Exercise_8.Start},
new(){Name = "Übung 9", Method = E24_Enumns.Exercise_9.Start},
new(){Name = "Übung 10", Method = E24_Enumns.Exercise_10.Start},
new(){Name = "Übung 11", Method = E24_Enumns.Exercise_11.Start},
new(){Name = "Übung 12", Method = E24_Enumns.Exercise_12.Start},
new(){Name = "Übung 13", Method = E24_Enumns.Exercise_13.Start}
}
};
//************************
//*********Tuple**********
//************************
ExerciseGroup tupleElements = new()
{
Name = "25. Tuple",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = E25_Tuple.Exercise_1.Start},
new(){Name = "Übung 2", Method = E25_Tuple.Exercise_2.Start},
new(){Name = "Übung 3", Method = E25_Tuple.Exercise_3.Start},
new(){Name = "Übung 4", Method = E25_Tuple.Exercise_4.Start},
new(){Name = "Übung 5", Method = E25_Tuple.Exercise_5.Start},
new(){Name = "Übung 6", Method = E25_Tuple.Exercise_6.Start},
new(){Name = "Übung 7", Method = E25_Tuple.Exercise_7.Start},
new(){Name = "Übung 8", Method = E25_Tuple.Exercise_8.Start},
new(){Name = "Übung 9", Method = E25_Tuple.Exercise_9.Start}
}
};
//************************
//*Mehrdimensinale Arrays*
//************************
ExerciseGroup moredimensionalArrayElements = new()
{
Name = "26. Mehrdimensinale Arrays",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = E26_Mehrdimensionale_Arrays.Exercise_1.Start},
new(){Name = "Übung 2", Method = E26_Mehrdimensionale_Arrays.Exercise_2.Start},
new(){Name = "Übung 3", Method = E26_Mehrdimensionale_Arrays.Exercise_3.Start},
new(){Name = "Übung 4", Method = E26_Mehrdimensionale_Arrays.Exercise_4.Start},
new(){Name = "Übung 5", Method = E26_Mehrdimensionale_Arrays.Exercise_5.Start},
new(){Name = "Übung 6", Method = E26_Mehrdimensionale_Arrays.Exercise_6.Start},
new(){Name = "Übung 7", Method = E26_Mehrdimensionale_Arrays.Exercise_7.Start}
}
};
//************************
//******Jagged Arrays*****
//************************
ExerciseGroup jaggedArrayElements = new()
{
Name = "27. Jagged Arrays",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = E27_Jagged_Arrays.Exercise_1.Start},
new(){Name = "Übung 2", Method = E27_Jagged_Arrays.Exercise_2.Start},
new(){Name = "Übung 3", Method = E27_Jagged_Arrays.Exercise_3.Start},
new(){Name = "Übung 4", Method = E27_Jagged_Arrays.Exercise_4.Start}
}
};
//************************
//********Klassen*********
//************************
ExerciseGroup classElements = new()
{
Name = "28. Klassen",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E28_Classes.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E28_Classes.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E28_Classes.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E28_Classes.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E28_Classes.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E28_Classes.Exercise_6.Start},
new(){Name = "Übung 7", Method = Exercises_C_Sharp.E28_Classes.Exercise_7.Start}
}
};
//************************
//****Konstruktoren*******
//************************
ExerciseGroup constructorElements = new()
{
Name = "29. Konstruktoren",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E29_Konstruktoren.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E29_Konstruktoren.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E29_Konstruktoren.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E29_Konstruktoren.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E29_Konstruktoren.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E29_Konstruktoren.Exercise_6.Start},
new(){Name = "Übung 7", Method = Exercises_C_Sharp.E29_Konstruktoren.Exercise_7.Start}
}
};
//************************
//*******Klassendiagram******* TODO
//************************
ExerciseGroup classdiagramElements = new()
{
Name = "30. Klassendiagram",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//*******RAM******* TODO
//************************
ExerciseGroup ramElements = new()
{
Name = "31. RAM",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//******Exceptions********
//************************
ExerciseGroup exceptionElements = new()
{
Name = "32. Exceptions",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Übung 1", Method = Exercises_C_Sharp.E32_Exceptions.Exercise_1.Start},
new(){Name = "Übung 2", Method = Exercises_C_Sharp.E32_Exceptions.Exercise_2.Start},
new(){Name = "Übung 3", Method = Exercises_C_Sharp.E32_Exceptions.Exercise_3.Start},
new(){Name = "Übung 4", Method = Exercises_C_Sharp.E32_Exceptions.Exercise_4.Start},
new(){Name = "Übung 5", Method = Exercises_C_Sharp.E32_Exceptions.Exercise_5.Start},
new(){Name = "Übung 6", Method = Exercises_C_Sharp.E32_Exceptions.Exercise_6.Start},
new(){Name = "Übung 7", Method = Exercises_C_Sharp.E32_Exceptions.Exercise_7.Start},
new(){Name = "Übung 8", Method = Exercises_C_Sharp.E32_Exceptions.Exercise_8.Start},
new(){Name = "Übung 9", Method = Exercises_C_Sharp.E32_Exceptions.Exercise_9.Start}
}
};
//************************
//*******Methodeninformationen******* TODO
//************************
ExerciseGroup methodinformationElements = new()
{
Name = "33. Methodeninformationen",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//*******UseCaseDiagram******* TODO
//************************
ExerciseGroup usecasediagramElements = new()
{
Name = "34. Use Case Diagram",
ElementList = new()
{
new(){Name = "Übung 1", Method = E18_Methods.Exercise_1.Start}
}
};
//************************
//***Dateizugriffe********
//************************
ExerciseGroup filesystemElements = new()
{
Name = "35. Dateizugriffe",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.E35_Dateizugriffe.Exercise_1.Start},
new(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.E35_Dateizugriffe.Exercise_2.Start},
new(){Name = "Aufgabe 3", Method = Exercises_C_Sharp.E35_Dateizugriffe.Exercise_3.Start},
new(){Name = "Aufgabe 4", Method = Exercises_C_Sharp.E35_Dateizugriffe.Exercise_4.Start},
new(){Name = "Aufgabe 5", Method = Exercises_C_Sharp.E35_Dateizugriffe.Exercise_5.Start},
new(){Name = "Aufgabe 6", Method = Exercises_C_Sharp.E35_Dateizugriffe.Exercise_6.Start},
new(){Name = "Aufgabe 7", Method = Exercises_C_Sharp.E35_Dateizugriffe.Exercise_7.Start},
new(){Name = "Aufgabe 8", Method = Exercises_C_Sharp.E35_Dateizugriffe.Exercise_8.Start},
new(){Name = "Aufgabe 8b", Method = Exercises_C_Sharp.E35_Dateizugriffe.Exercise_8b.Start}
}
};
//************************
//******Dateiformate******
//************************
ExerciseGroup fileformatsElements = new()
{
Name = "36. Dateiformate",
ElementList = new()
{
new(){Name = "Übung 1", Method = E36_Dateiforamte.Exercise_1.Start},
new(){Name = "Übung 2", Method = E36_Dateiforamte.Exercise_2.Start}
}
};
//************************
//*****Serialisierung*****
//************************
ExerciseGroup serializeElements = new()
{
Name = "37. Serialisierung",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.E37_Serialisierung.Exercise_1.Start}
}
};
//************************
//***********MySQL********
//************************
ExerciseGroup mysqlElements = new()
{
Name = "38. MySQL",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.E38_MySQL.Exercise_1.Start},
new(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.E38_MySQL.Exercise_2.Start}
}
};
//************************
//******* Vererbung ******
//************************
ExerciseGroup vererbungElements = new()
{
Name = "40. Vererbung",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.E40_Vererbung.Exercise_1.Start},
new(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.E40_Vererbung.Exercise_2.Start},
new(){Name = "Aufgabe 3", Method = Exercises_C_Sharp.E40_Vererbung.Exercise_3.Start},
new(){Name = "Aufgabe 3", Method = Exercises_C_Sharp.E40_Vererbung.Exercise_4.Start}
}
};
//************************
//******* Interfaces *****
//************************
ExerciseGroup interfaceElements = new()
{
Name = "42. Interfaces",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.E42_Interfaces.Exercise_1.Start},
new(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.E42_Interfaces.Exercise_2.Start},
new(){Name = "Aufgabe 3", Method = Exercises_C_Sharp.E42_Interfaces.Exercise_3.Start},
new(){Name = "Aufgabe 4", Method = Exercises_C_Sharp.E42_Interfaces.Exercise_4.Start}
}
};
//************************
//******* Kapselung ******
//************************
ExerciseGroup kapselungElements = new()
{
Name = "44. Kapselung",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.E44_Kapselung.Exercise_1.Start},
new(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.E44_Kapselung.Exercise_2.Start},
new(){Name = "Aufgabe 3", Method = Exercises_C_Sharp.E44_Kapselung.Exercise_3.Start}
}
};
//************************
//******** Pattern *******
//************************
ExerciseGroup patternElements = new()
{
Name = "46. Designpattern",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Singleton", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_1.Start},
new(){Name = "Factory", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_2.Start},
new(){Name = "Observer", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_3.Start},
new(){Name = "Strategy", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_4.Start},
new(){Name = "Decorator", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_5.Start},
new(){Name = "Adapter", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_6.Start},
new(){Name = "Facade", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_7.Start},
new(){Name = "Command", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_8.Start}
}
};
//************************
//****Sonderaufgaben******
//************************
ExerciseGroup specialElements = new()
{
Name = "Sonderaufgaben",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Schere Stein Papier Echse Spock", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_1.Start},
new(){Name = "Schiffe versenken", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_2.Start},
new(){Name = "Memory", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_3.Start},
new(){Name = "Minesweeper", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_4.Start},
new(){Name = "Kniffel", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_5.Start},
new(){Name = "Mensch ärgere Dich nicht", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_6.Start}
}
};
//************************
//*Entwicklungsaufgaben***
//************************
ExerciseGroup developElements = new()
{
Name = "Entwicklungsaufgaben",
ElementList = new List<ExerciseElement>()
{
new(){Name = "Dynamische Eingaben in Echtzeit", Method = Exercises_C_Sharp.Entwicklungsaufgaben.Minispiele.Step_1.Start}
}
};
//************************
//****Schulaufgaben*******
//************************
ExerciseGroup examElements = new()
{
Name = "Schulaufgaben",
ElementList = new()
{
new(){Name = "001 Klassen", Method = Exercises_C_Sharp.Schulaufgaben.S001_Class.Start},
new(){Name = "002 Klassen", Method = Exercises_C_Sharp.Schulaufgaben.S002_Class.Start},
new(){Name = "003 Tuple", Method = Exercises_C_Sharp.Schulaufgaben.S003_Tuple.Start},
new(){Name = "004 Enum", Method = Exercises_C_Sharp.Schulaufgaben.S004_Enum.Start},
new(){Name = "005 Tuple", Method = Exercises_C_Sharp.Schulaufgaben.S005_Tuple.Start},
new(){Name = "006 Multidimensionale Arrays", Method = Exercises_C_Sharp.Schulaufgaben.S006_Multidimensionale_Arrays.Start},
new(){Name = "007 Enum", Method = Exercises_C_Sharp.Schulaufgaben.S007_Enum.Start},
new(){Name = "008 Enum", Method = Exercises_C_Sharp.Schulaufgaben.S008_Enum.Start}
}
};
//************************
//****Eigenaufgaben*******
//************************
ExerciseGroup ownExercises = new()
{
Name = "Eigenaufgaben",
ElementList = new()
{
new(){Name = "Benchmark", Method = Exercises_C_Sharp.Eigenaufgaben.Exercise_1.Start}
}
};
//Zusammenführung
OptionList = new List<ExerciseGroup>(){
beginnerElements,
variableElements,
stringElements,
terminalElements,
arrayElements,
randomElements,
datetimeElements,
ifElements,
flowchartElements,
switchcaseElements,
forElements,
resizeArrayElements,
foreachElements,
whileElements,
dowhileElements,
breakcontinueElements,
structurediagramElements,
methodsElements,
ueberladungElements,
listElements,
sortingElements,
dictionaryElements,
chatgptElements,
enumElements,
tupleElements,
moredimensionalArrayElements,
jaggedArrayElements,
classElements,
constructorElements,
classdiagramElements,
ramElements,
exceptionElements,
methodinformationElements,
usecasediagramElements,
filesystemElements,
fileformatsElements,
serializeElements,
mysqlElements,
vererbungElements,
interfaceElements,
kapselungElements,
patternElements,
specialElements,
developElements,
examElements
};
Menu();
}
//ToDo: Einzelne Lektionen nebeneinander anzeigen
//ToDo: Senden, um zu überprüfen, ob alles richtig ist
//ToDo: Element als erledigt markieren
static void Menu()
{
Console.Clear();
Console.SetCursorPosition(0,0);
LoadMarkedExercises();
var pos = LoadCurrentElementAndCurrentList();
int currentElement = pos.Item1;
int currentList = pos.Item2;
while(true)
{
Console.Clear();
Console.WriteLine("Navigation: Pfeiltasten nach oben/unten und Enter");
Console.WriteLine("______________________________");
for(int k = 0; k < OptionList.Count; k++)
{
var element = OptionList[k];
//Console.ReadKey();
if(currentList == k)
{
Console.WriteLine("*****************************");
Console.WriteLine(element.Name);
Console.WriteLine("*****************************");
for(int i = 0; i < element.ElementList.Count; i++)
{
//Der erste Wert vorne ist dafür gedacht, dass markiert wird, wenn die Aufgabe abgegeben und korregiert wurde --> ToDo
Console.WriteLine("{2}{1}[{0}] " + element.ElementList[i].Name, currentElement == i && currentList == k ? "X" : " ", !element.ElementList[i].IsMarked ? " " : "#", element.ElementList[i].FinishState == false ? "NO" : element.ElementList[i].FinishState == false == true ? "OK" : " ");
}
Console.WriteLine("______________________________");
}
else
{
Console.WriteLine(element.Name);
}
}
var key = Console.ReadKey();
if(key.Key == ConsoleKey.UpArrow)
{
Console.Clear();
if(currentElement == 0 && currentList == 0)
{
currentList = OptionList.Count -1;
currentElement = OptionList[OptionList.Count -1].ElementList.Count -1;
}
else if(currentElement == 0 && currentList > 0)
{
currentList--;
currentElement = OptionList[currentList].ElementList.Count -1;
}
else
currentElement--;
}
else if(key.Key == ConsoleKey.DownArrow)
{
Console.Clear();
if(currentElement == OptionList[currentList].ElementList.Count - 1 && currentList == OptionList.Count -1)
{
currentList = 0;
currentElement = 0;
}
else if(currentElement == OptionList[currentList].ElementList.Count - 1 && currentList < OptionList.Count -1)
{
currentList++;
currentElement = 0;
}
else
{
currentElement++;
}
}
else if(key.Key == ConsoleKey.Enter)
{
Console.Clear();
try
{
SaveCurrentElementAndCurrentList(currentElement, currentList);
OptionList[currentList].ElementList[currentElement].Method();
}
catch(Exception ex)
{
Console.WriteLine("******************");
Console.WriteLine("***** Fehler *****");
Console.WriteLine("******************");
Console.WriteLine("Bei der Aufgabe ist folgender Fehler aufgetreten:");
Console.WriteLine(ex.ToString());
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Aufgabe beendet. Zum Weitermachen Taste drücken...");
Console.ReadKey();
}
else if(key.Key == ConsoleKey.X)
{
Console.Clear();
var el = OptionList[currentList].ElementList[currentElement];
if(el.IsMarked == false)
OptionList[currentList].ElementList[currentElement].IsMarked = true;
else
OptionList[currentList].ElementList[currentElement].IsMarked = false;
SaveMarkedExercises();
}
else if(key.Key == ConsoleKey.RightArrow)
{
//ToDo: Absenden und überprüfen
}
else if(key.Key == ConsoleKey.V)
{
//Zum Videomenu
OpenLinkToVideo.ShowVideoMenu(OptionList[currentList], OptionList[currentList].ElementList[currentElement]);
}
Console.Clear();
}
}
//Speichert das zuletzt ausgewählte Element
static void SaveCurrentElementAndCurrentList(int currentElement, int currentList)
{
try
{
if(File.Exists("lastPoint"))
File.Delete("lastPoint");
File.WriteAllLines("lastPoint", new List<string>(){currentElement.ToString(), currentList.ToString()});
}
catch(Exception ex)
{
Console.WriteLine("Sorry, habe anscheindend einen Fehler reinprogrammiert. Ihre Aufgabe ist nun, den Fehler in der Program.cs zu finden und zu fixen. Hierfür bekommen Sie folgenden Hinweis:");
Console.WriteLine(ex.ToString());
}
}
static Tuple<int,int> LoadCurrentElementAndCurrentList()
{
try
{
if(!File.Exists("lastPoint"))
return new Tuple<int,int>(0,0);
var el = File.ReadAllLines("lastPoint");
return new Tuple<int,int>(Convert.ToInt32(el[0]), Convert.ToInt32(el[1]));
}
catch(Exception ex)
{
Console.WriteLine("Sorry, habe anscheindend einen Fehler reinprogrammiert. Ihre Aufgabe ist nun, den Fehler in der Program.cs zu finden und zu fixen. Hierfür bekommen Sie folgenden Hinweis:");
Console.WriteLine(ex.ToString());
}
return new Tuple<int,int>(0,0);
}
//ToDo: Richtiges Abspeichern implementieren!!!
//Speichert die markierten Aufgaben ab
static void SaveMarkedExercises()
{
List<string> saveList = new List<string>();
foreach(var element in OptionList)
{
foreach(var item in element.ElementList)
{
if(item.IsMarked == true)
{
saveList.Add(string.Format("{0}{1} {2}", element.Name, item.Name, item.IsMarked.ToString()));
}
}
}
File.WriteAllLines("markingSave", saveList);
}
static void LoadMarkedExercises()
{
if(!File.Exists("markingSave"))
return;
var el = File.ReadAllLines("markingSave");
Dictionary<string, bool> dic = new Dictionary<string, bool>();
foreach(var element in el)
{
string str = element.Substring(0, element.LastIndexOf(" "));
bool b = Convert.ToBoolean(element.Substring(element.LastIndexOf(" ") + 1));
dic.Add(str, b);
}
foreach(var element in OptionList)
{
for(int i = 0; i < element.ElementList.Count; i++)
{
var key = string.Format("{0}{1}", element.Name, element.ElementList[i].Name);
if(dic.ContainsKey(key))
{
element.ElementList[i].IsMarked = dic[key];
}
}
}
}
}
}