Initial
parent
ae11c32c0c
commit
82c8b563bf
|
|
@ -0,0 +1,17 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E01_Einleitung
|
||||||
|
{
|
||||||
|
class Exercise_1
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass in der Konsole nicht das englische ‚Hello World!‘, sondern die deutsche Übersetzung ‚Hallo Welt!‘ ausgegeben wird.
|
||||||
|
//Code START
|
||||||
|
Console.WriteLine("Hello World!");
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E01_Einleitung
|
||||||
|
{
|
||||||
|
class Exercise_2
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Geben Sie diese nacheinander die Lösungen folgender Gleichungen jeweils in eigener Zeile in der Konsole aus:
|
||||||
|
//24 + 14 – 34 / 12 * 2 % 4
|
||||||
|
//23847 + 3333 / 34 * 22 – 12 + 2343234 % 6
|
||||||
|
//123.34 / 2344.3 – 12035.55 / 4.9 * 123.2
|
||||||
|
//948475.23423 * 7 – 23433.833 % 22.66 + 34.3 * 4
|
||||||
|
//2343 – 3434.2 * 333.33 – 3333.88 / 77777.1 + 12.33 % 0.3336
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E01_Einleitung
|
||||||
|
{
|
||||||
|
class Exercise_3
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Programmieren Sie folgende Anweisungen aus:
|
||||||
|
|
||||||
|
//Teilen Sie dreimal die Zahl 459 durch und geben Sie das Ergebnis aus:
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Nehmen Sie die Zahl 10 mal 4, addieren Sie dann die Zahl 17 darauf, teilen Sie dann das Ergebnis durch 3. Ziehen Sie zum Schluss noch 2 ab und geben Sie das Ergebnis aus:
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Teilen Sie die Zahl 343 zweimal durch 7 und nehmen Sie die erhaltene Zahl Modulo 3. Geben Sie das Ergebnis aus:
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E01_Einleitung
|
||||||
|
{
|
||||||
|
class Exercise_4
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Geben Sie die Ergebnise der booleschen Werte nacheinander in eigener Zeile in der Konsole aus:
|
||||||
|
//8374 + 1234 > 10522 - 2256
|
||||||
|
//123 * 123 != 100 + 12523
|
||||||
|
//756.055 / 299.25 >= 25 * 22
|
||||||
|
//123 + 2562 / 4 <= 3874 + 56856
|
||||||
|
//1234 % 4 * 526 / 25685 == 9374 + 85 * 36369 / 40252 % 256
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E01_Einleitung
|
||||||
|
{
|
||||||
|
class Exercise_5
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Programmieren Sie folgende Anweisungen aus:
|
||||||
|
|
||||||
|
//Ist das Ergebnis von 100 / 3 größer als 3 mal 11? Lassen Sie diese Frage den Computer beantworten und geben das Ergebnis in einer extra Zeile aus:
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Ist 1526 Modulo 12 kleiner als 1526 Modulo 16? Lassen Sie diese Frage den Computer beantworten und geben das Ergebnis in einer extra Zeile aus:
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Kommt dasselbe Ergebnis heraus, wenn man 2152 durch acht teilt und wenn man von 500 231 subtrahiert? Lassen Sie diese Frage den Computer beantworten und geben das Ergebnis in einer extra Zeile aus:
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E02_Variablen
|
||||||
|
{
|
||||||
|
class Exercise_1
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Um welche Variablentypen handelt es sich hier? Tauschen Sie den Wert dynamic durch den richtigen Typ aus:
|
||||||
|
dynamic var1 = 343;
|
||||||
|
dynamic var2 = -231;
|
||||||
|
dynamic var3 = 'T';
|
||||||
|
dynamic var4 = "T";
|
||||||
|
dynamic var5 = "Hallo";
|
||||||
|
dynamic var6 = " ";
|
||||||
|
dynamic var7 = 123.34;
|
||||||
|
dynamic var8 = 335.27364;
|
||||||
|
dynamic var9 = 7483.291M;
|
||||||
|
dynamic var10 = true;
|
||||||
|
dynamic var11 = 3847M;
|
||||||
|
dynamic var12 = 38493.28F;
|
||||||
|
dynamic var13 = 8349.23;
|
||||||
|
dynamic var14 = '\\';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E02_Variablen
|
||||||
|
{
|
||||||
|
class Exercise_2
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
string val1 = "Hallo, ";
|
||||||
|
string val2 = "";
|
||||||
|
string val3 = "geht's?";
|
||||||
|
|
||||||
|
//Sorgen Sie dafür, dass unten auf der Konsole "Hallo, wie geht's?" ausgegeben wird.
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
|
||||||
|
Console.Write(val1);
|
||||||
|
Console.Write(val2);
|
||||||
|
Console.Write(val3);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E02_Variablen
|
||||||
|
{
|
||||||
|
class Exercise_3
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
int val1 = 156;
|
||||||
|
int val2 = 7;
|
||||||
|
int val3 = -12;
|
||||||
|
|
||||||
|
//Sorgen Sie dafür, dass unten auf der Konsole 101 ausgegeben wird.
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
|
||||||
|
Console.Write(val1 + val2 + val3);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E02_Variablen
|
||||||
|
{
|
||||||
|
class Exercise_4
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
string val1 = "Das ";
|
||||||
|
string val2 = " cool!";
|
||||||
|
string val3 = "ist ";
|
||||||
|
|
||||||
|
//Geben Sie den Satz "Das ist cool!" auf der Konsole aus. Verwenden Sie ausschließlich Variablen:
|
||||||
|
//Code Start
|
||||||
|
val2 = val1;
|
||||||
|
val3 = val2;
|
||||||
|
val1 = val3;
|
||||||
|
//Code Ende
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E02_Variablen
|
||||||
|
{
|
||||||
|
class Exercise_5
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
double val1 = 123.456;
|
||||||
|
double val2 = 789.101112;
|
||||||
|
|
||||||
|
//Geben Sie die Addition, die Subtraktion, die Division und die Multiplikation der beiden oeben Zahlen auf der Konsole aus:
|
||||||
|
//Code Start
|
||||||
|
val2 = val1;
|
||||||
|
//Code Ende
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E02_Variablen
|
||||||
|
{
|
||||||
|
class Exercise_6
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
int var1 = 160;
|
||||||
|
int var2 = 20;
|
||||||
|
string hello = "Hallo und herzlich Willkommen!";
|
||||||
|
string end = "Hier kommt das Ergebnis:";
|
||||||
|
|
||||||
|
|
||||||
|
//Geben Sie zuerst beide String-Variablen in der richtigen Reihenfolge aus:
|
||||||
|
//Code Start
|
||||||
|
var1 = var2;
|
||||||
|
hello = end;
|
||||||
|
//Code Ende
|
||||||
|
|
||||||
|
//Geben Sie nun das Ergebnis folgender Operation aus: var1 soll durch var2 geteilt werden. Das Ergebnis soll dann durch zwei geteilt werden und mal var2 genommen werden. Dann soll davon var1 abgezogen werden und das dreifache von var2 addiert werden. Nehmen Sie das Ergebnis dann Modulo 27. Nutzen Sie dabei ausschließlich die Variablen!
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
|
||||||
|
//Ändern Sie nun die beiden Werte oben auf 3600 und 360:
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
|
||||||
|
//Machen Sie nun dieselben Operationen wie oben und geben Sie dann wiederum das Ergebnis aus:
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E02_Variablen
|
||||||
|
{
|
||||||
|
class Exercise_7
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Erstellen Sie zwei Variablen, sodass unten auf der Konsole "Dies ist Ihre Zahl: 123" ausgegeben wird.
|
||||||
|
//Code START
|
||||||
|
dynamic a = 1;
|
||||||
|
dynamic b = 2;
|
||||||
|
dynamic c = 3;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.Write(a);
|
||||||
|
Console.WriteLine(c);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E02_Variablen
|
||||||
|
{
|
||||||
|
class Exercise_8
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
//Erstellen Sie unten die drei Variablen richtig:
|
||||||
|
//Code START
|
||||||
|
dynamic firstValue;
|
||||||
|
dynamic secondValue;
|
||||||
|
dynamic thirdValue;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
firstValue = "Hier kommen die Zahlen:";
|
||||||
|
secondValue = 456;
|
||||||
|
thirdValue = 789.4585;
|
||||||
|
|
||||||
|
Console.WriteLine(firstValue);
|
||||||
|
Console.WriteLine(secondValue);
|
||||||
|
Console.WriteLine(thirdValue);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E02_Variablen
|
||||||
|
{
|
||||||
|
class Exercise_9
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass die Zahl 2736.938 unten auf der Konsole ausgegeben wird.
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
double d1 = 2634.37263;
|
||||||
|
double d2 = 237384.2832;
|
||||||
|
double d3 = 663782.39283;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
d1 = d2 -d3;
|
||||||
|
d2 = d3 / d1;
|
||||||
|
d3 = d1 * d3;
|
||||||
|
d1 = d3 / d2;
|
||||||
|
d2 = d3 + d2;
|
||||||
|
double d4 = d1 + d2 + d3;
|
||||||
|
|
||||||
|
//Code Start
|
||||||
|
double d5 = 0;
|
||||||
|
//Code Ende
|
||||||
|
Console.WriteLine(d5 + d4 + d3 + d2 + d1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_1
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass "Hallo, wie geht's?" unten auf der Konsole ausgegeben wird.
|
||||||
|
//Code START
|
||||||
|
dynamic s = -1;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_10
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass auf der Konsole
|
||||||
|
//"Das Erste kommt zuerst...
|
||||||
|
//...und das Zweite kommt zuletzt."
|
||||||
|
//ausgegeben wird
|
||||||
|
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
string s1 = "";
|
||||||
|
string s2 = "";
|
||||||
|
string s3 = "";
|
||||||
|
string s4 = "";
|
||||||
|
//Code ENDE
|
||||||
|
string s = string.Format("{0} Erste kommt zu{1}{2}das Zweite{3}zuletzt.", s2, s1, s4, s3);
|
||||||
|
|
||||||
|
Console.WriteLine(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_11
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass auf der Konsole ein richtiger Satz ausgegeben wird.
|
||||||
|
string s1 = "Piratenschiff";
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
string s2 = "";
|
||||||
|
int i1 = -1;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine($"Das Wort {s1} hat genau so viele Zeichen wie {s2}, nämlich {i1}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_12
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass nach der Eingabe ausgegeben wird, ob der eingegebene String ein A bzw. a besitzt, oder nicht.
|
||||||
|
string s = Console.ReadLine() ?? "Irgendwas";
|
||||||
|
bool b = false;
|
||||||
|
|
||||||
|
//CODE START
|
||||||
|
|
||||||
|
//CODE ENDE
|
||||||
|
|
||||||
|
if(b)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Das Wort enthält den Buchstaben A.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("Das Wort enthält nicht den Buchstaben A.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_2
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Fügen Sie die Strings so zusammen, dass der Satz "Wie gut es ist, oder?" ausgegeben wird. Nutzen Sie wo es geht die folgenden Variablen:
|
||||||
|
string s1 = "gut";
|
||||||
|
string s2 = "wie";
|
||||||
|
string s3 = "oder";
|
||||||
|
string s4 = "Wie";
|
||||||
|
string s5 = "es";
|
||||||
|
string s6 = "ist";
|
||||||
|
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
s2 = s3 = s4 = s5 = s6;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine(s1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_3
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Fügen Sie die Variable DasWarGemeint in den String ausgabeString anstatt der Stelle {0} ein:
|
||||||
|
string DasWarGemeint = "Elefanten";
|
||||||
|
string ausgabeString = "{0} sind die größten Landtiere.";
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
DasWarGemeint = ausgabeString;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine(ausgabeString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_4
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass der String userinput ohne führende und endende Leerzeichen ausgegeben wird:
|
||||||
|
string userinput = " WERT ";
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine(userinput);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_5
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Geben Sie von folgenden Werten den vierten Buchstaben aus:
|
||||||
|
string firstValue = "Brauerei";
|
||||||
|
string secondValue = "Überbau";
|
||||||
|
string thirdValue = "keinerlei";
|
||||||
|
string fourthValue = "Fairness";
|
||||||
|
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
firstValue = secondValue = thirdValue = fourthValue;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_6
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass das erste Wort in Großbuchen und in Kleinbuchstaben ausgegeben wird.
|
||||||
|
string val = "hAllIHaLlo";
|
||||||
|
string small;
|
||||||
|
string big;
|
||||||
|
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
small = val;
|
||||||
|
big = val;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine("Kleinbuchstaben:");
|
||||||
|
Console.WriteLine(small);
|
||||||
|
Console.WriteLine("Großbuchstaben:");
|
||||||
|
Console.WriteLine(big);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_7
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Extrahieren Sie aus dem folgenden String das Wort Polizei
|
||||||
|
string val = " difjPolizei jidf das dielsaö";
|
||||||
|
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine(val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_8
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass alle drei Strings in einer extra Zeile ausgegeben werden.
|
||||||
|
string val = "Zeile 1";
|
||||||
|
string val2 = "Zeile 2";
|
||||||
|
string val3 = "Zeile 3";
|
||||||
|
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine(val + val2 + val3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E03_Strings
|
||||||
|
{
|
||||||
|
class Exercise_9
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Lassen Sie folgende Zeichen(folgen) auf der Konsole ausgeben:
|
||||||
|
// - \
|
||||||
|
// - \n
|
||||||
|
// - \t
|
||||||
|
// - "
|
||||||
|
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
string val = "Element 1";
|
||||||
|
string val2 = "Element 2";
|
||||||
|
string val3 = "Element 3";
|
||||||
|
string val4 = "Element 4";
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine(val);
|
||||||
|
Console.WriteLine(val2);
|
||||||
|
Console.WriteLine(val3);
|
||||||
|
Console.WriteLine(val4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E04_Konsole
|
||||||
|
{
|
||||||
|
class Exercise_1
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Geben Sie auf der Konsole "Hallo, wie geht es Ihnen?" aus.
|
||||||
|
string s = "irgendwas?";
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E04_Konsole
|
||||||
|
{
|
||||||
|
class Exercise_2
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass nach jedem Mal "Eingabe" drücken, der Text und der Hintergrund eine neue Farbe bekommt:
|
||||||
|
Console.WriteLine("Hallo und herzlich Willkommen zum bunten Farbenspiel!");
|
||||||
|
Console.WriteLine();
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine();
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine();
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Danke für die Nutzung!");
|
||||||
|
Console.WriteLine();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E04_Konsole
|
||||||
|
{
|
||||||
|
class Exercise_3
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Auf der Konsole soll das ausgegeben werden, was der Anwender eingibt.
|
||||||
|
|
||||||
|
Console.WriteLine("Bitte geben Sie was ein:");
|
||||||
|
//Code START
|
||||||
|
string s = "irgendwas?";
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine("Ihre Eingabe war:\n" + s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E04_Konsole
|
||||||
|
{
|
||||||
|
class Exercise_4
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Der Anwender soll auf der Konsole zwei Zahlen eingeben. Dann soll die Addition, die Subtraktion, die Division, die Multiplikation und das Modulo Ergebnis ausgegeben werden.
|
||||||
|
double result = 0;
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Die Addition der Zahlen ist: {0}", result);
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Die Subtraktion der Zahlen ist: {0}", result);
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Die Division der Zahlen ist: {0}", result);
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Die Multiplikation der Zahlen ist: {0}", result);
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Das Modulo der Zahlen ist: {0}", result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E04_Konsole
|
||||||
|
{
|
||||||
|
class Exercise_5
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
string terminalName = string.Empty;
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Der Name der Konsole wurde auf '{0}' geändert!", terminalName);
|
||||||
|
Console.ReadLine();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E04_Konsole
|
||||||
|
{
|
||||||
|
class Exercise_6
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sie sollen dafür sorgen, dass der Anwender zu Beginn eine Zahl eingibt. Danach soll diese Zahl bei jedem Tastendruck verdoppelt werden. Sorgen Sie dafür, dass dies 5 mal funktioniert.
|
||||||
|
int userinput = 0;
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Die 1. Verdopplung ist {0}.", userinput);
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Die 2. Verdopplung ist {0}.", userinput);
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Die 3. Verdopplung ist {0}.", userinput);
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Die 4. Verdopplung ist {0}.", userinput);
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Die 5. Verdopplung ist {0}.", userinput);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_1
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Geben Sie alle Werte aus dem Array aus. Was fällt Ihnen auf?
|
||||||
|
int[] intArray = new int[3];
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_10
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_11
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_12
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_2
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Lassen Sie den Anwender fünf Strings eingeben und speichern Sie diese in diesem Array:
|
||||||
|
string[] stringArray = new string[5];
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Geben Sie nun alle fünf String in dem Array mit Leerzeichen getrennt aus:
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_3
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Geben Sie alle Zeichen in alphabetischer Reihenfolge auf der Konsole aus:
|
||||||
|
char[] charArray = new char[]{ 'k', 'a', 'o', 'w', 'l', 'x', 't', 's'};
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_4
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Auf der Konsole soll ausgegen werden, wie viele Elemente sich in dem Array befinden:
|
||||||
|
int[] intArray = new int[]
|
||||||
|
{123,23,43,123,4,122,43235,46,45645,756,7,58,56,74,5,634,56456,4,56,3457,4,57,56,75,6,856,85,67,45,74564356,45,645,6756876,98,98,978,97,80,790789,78,978,96,7,865786,57546,74,67,45,64,56,45,645,6,45,65,67567,567,4567,45,656,64565,64,56465,766,7,56,8,5678,7,8,67,9,678678,56,7,567,6,75,674565645,6,45,46,7,56,867,8,67,8,67,867,8,678,67,86786,78,98879,67,8,768,56,756,74,56,54,6,45,645,7,56,756,87,56,876,8,56,74,5,645,6,3,632,4,5,435,34,53,45,34,5,34,5,4,6745,67,34567,5,45,74,56,45,6,54,6,45,7,65,7,56,8,56,85,674567,56745,6,4,56,456,45645,6,3,45,3,4,5345345,34654,56,987,546,756,8,756,87,5,67,5467,45,6,354,64,57,45,7,4,6,45,6,45,6,34,6,4,65,34,6,457,45,7,658,67,9,2345,89,879780,87,0,80987,9,78,97,89,78,97,8,79,89789,78,9789,78,97897,89};
|
||||||
|
|
||||||
|
//Code START
|
||||||
|
dynamic i = 0;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine("Das Array hat {0} Elemente.", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_5
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Lassen Sie den Anwender fünf Decimal-Zahlen eingeben. Speichern Sie diese in das Array:
|
||||||
|
decimal[] decimalArray = new decimal[5];
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Geben Sie nun die Summe aller Zahlen auf der Konsole aus:
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_6
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Erstellen Sie ein Array, sodass unten eine wahre Aussage steht:
|
||||||
|
//Code START
|
||||||
|
dynamic arr = -1;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
arr[2] = 12;
|
||||||
|
arr[0] = 32;
|
||||||
|
|
||||||
|
int i = arr[0] + arr[1] + arr[2];
|
||||||
|
|
||||||
|
Console.WriteLine("Teilt man Zahl {0} durch 57 kommt 1 heraus.", i);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_7
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_8
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.E05_Arrays
|
||||||
|
{
|
||||||
|
class Exercise_9
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.Entwicklungsaufgaben.Minispiele
|
||||||
|
{
|
||||||
|
class Step_1
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
Im ersten Schritt sollen Sie sich mit dynamischen Eingaben in Echtzeit auseinandersetzen. Die Grundvoraussetzung dafür ist eine Umgebung, in der beispielsweise ein Männchen (repräsentiert durch einen Char, also beispielsweise einem X), die als Spielfigur agiert, vom Nutzer gesteuert werden kann. Dies wollen wir mit Hilfe der Pfeiltasten realisieren. Dafür kann man sehr gut die Methode Console.ReadKey() verwenden. Dieser gibt (bis auf ein paar ausnahmen) bei jedem Tastendruck die jeweilige Taste mit dem Wert eines Enums zurück. Sie können den Wert dann mit .Key abfragen.
|
||||||
|
|
||||||
|
|
||||||
|
Im Kern sind also Ihre Aufgaben folgende:
|
||||||
|
- Erstellen Sie ein zweidimensionales Array.
|
||||||
|
- Implementieren Sie ein Objekt, dass der Nutzer mit Hilfe der Pfeiltasten steuern kann.
|
||||||
|
- Zeigen Sie das 'Spielfeld' an und aktualisieren Sie es bei jeder Änderung.
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp
|
||||||
|
{
|
||||||
|
class ExerciseElement
|
||||||
|
{
|
||||||
|
public string Name = string.Empty;
|
||||||
|
public Action Method = blind;
|
||||||
|
public bool IsMarked = false;
|
||||||
|
public bool? FinishState = null;
|
||||||
|
public int VideoID = -1;
|
||||||
|
|
||||||
|
static void blind(){}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp
|
||||||
|
{
|
||||||
|
class ExerciseGroup
|
||||||
|
{
|
||||||
|
public string Name = string.Empty;
|
||||||
|
public List<ExerciseElement> ElementList = new List<ExerciseElement>();
|
||||||
|
public int VideoID = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
using System;
|
||||||
|
using System.Text;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp
|
||||||
|
{
|
||||||
|
class OpenLinkToVideo
|
||||||
|
{
|
||||||
|
static List<VideoElement> VideoLectionLinks = new List<VideoElement>()
|
||||||
|
{
|
||||||
|
new VideoElement(){ ID = 4, Name = "Mathematische Operationen"},
|
||||||
|
new VideoElement(){ ID = 5, Name = "Bool'sche Operationen"},
|
||||||
|
new VideoElement(){ ID = 6, Name = "Variablen"},
|
||||||
|
new VideoElement(){ ID = 7, Name = "Arbeiten mit Strings"},
|
||||||
|
new VideoElement(){ ID = 8, Name = "Debuggen"},
|
||||||
|
new VideoElement(){ ID = 9, Name = "Ein- und Ausgabe mit der Konsole"},
|
||||||
|
new VideoElement(){ ID = 10, Name = "Arrays"},
|
||||||
|
new VideoElement(){ ID = 11, Name = "Kurzschreibweise Mathematische Operationen"},
|
||||||
|
new VideoElement(){ ID = 12, Name = "Kontrollstruktur IF"},
|
||||||
|
new VideoElement(){ ID = 13, Name = "Überprüfen von Eingaben (TryParse)"},
|
||||||
|
new VideoElement(){ ID = 14, Name = "Short IFs"},
|
||||||
|
new VideoElement(){ ID = 15, Name = "Switch Case"},
|
||||||
|
new VideoElement(){ ID = 16, Name = "Flowcharts / PAP (Programm Ablauf Plan)"},
|
||||||
|
new VideoElement(){ ID = 17, Name = "FOR-Schleife"},
|
||||||
|
new VideoElement(){ ID = 18, Name = "Arrays variabler machen"},
|
||||||
|
new VideoElement(){ ID = 19, Name = "FOREACH-Schleife"}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
public static void ShowVideoMenu(ExerciseGroup eg, ExerciseElement ee)
|
||||||
|
{
|
||||||
|
Console.Clear();
|
||||||
|
var loginData = LoadAccount();
|
||||||
|
if(loginData == null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Um Videos zu den einzelnen Übungen und Lektionen anzusehen, benötigt man einen Alumnee-Account. Bitte geben Sie Ihren vollen Namen (Vor- und Nachname) ein:");
|
||||||
|
|
||||||
|
string name;
|
||||||
|
do{
|
||||||
|
name = Console.ReadLine() ?? "";
|
||||||
|
name = name.Trim();
|
||||||
|
} while(string.IsNullOrEmpty(name) || !name.Contains(" ") || name.Length < 7);
|
||||||
|
Console.WriteLine();
|
||||||
|
Console.WriteLine("Bitte geben Sie jetzt Ihre Wibizu-E-Mailadresse ein:");
|
||||||
|
string mail;
|
||||||
|
do{
|
||||||
|
mail = Console.ReadLine() ?? "";
|
||||||
|
mail = mail.Trim();
|
||||||
|
} while(string.IsNullOrEmpty(mail) || mail.Contains(" ") || mail.Length < 16);
|
||||||
|
Console.WriteLine();
|
||||||
|
Console.WriteLine("Die Anmeldedaten werden nun gesetzt und gespeichert!");
|
||||||
|
loginData = new Tuple<string, string>(name, mail);
|
||||||
|
SaveAccount(loginData);
|
||||||
|
}
|
||||||
|
|
||||||
|
int num = 0;
|
||||||
|
while(true)
|
||||||
|
{
|
||||||
|
Console.Clear();
|
||||||
|
Console.WriteLine("Welches Video soll gezeigt werden?");
|
||||||
|
Console.WriteLine("[{0}] Video zu dieser Lektion bzw. zu der Unterrichtsstunde, wo das aktuelle Kapitel nochmal erläutert wird.", num == 0 ? "X" : " ");
|
||||||
|
Console.WriteLine("[{0}] Video zu der Lösung dieser Aufgabe", num == 0 ? "X" : " ");
|
||||||
|
var el = Console.ReadKey();
|
||||||
|
if(el.Key == ConsoleKey.DownArrow || el.Key == ConsoleKey.UpArrow)
|
||||||
|
{
|
||||||
|
if(num == 0) num = 1;
|
||||||
|
else num = 0;
|
||||||
|
}
|
||||||
|
if(el.Key == ConsoleKey.Enter)
|
||||||
|
{
|
||||||
|
if(num == 0)
|
||||||
|
Open(loginData.Item1, loginData.Item2, eg.VideoID, "lection");
|
||||||
|
else if(num == 1)
|
||||||
|
Open(loginData.Item1, loginData.Item2, ee.VideoID, "exercise");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
static Tuple<string, string>? LoadAccount()
|
||||||
|
{
|
||||||
|
if(!File.Exists("saveFolder/accountData"))
|
||||||
|
return null;
|
||||||
|
var lines = File.ReadAllLines("saveFolder/accountData");
|
||||||
|
if(lines.Length < 2)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return new Tuple<string, string>(lines[0], lines[1]);
|
||||||
|
}
|
||||||
|
static void SaveAccount(Tuple<string, string> values)
|
||||||
|
{
|
||||||
|
if(File.Exists("saveFolder/accountData"))
|
||||||
|
File.Delete("saveFolder/accountData");
|
||||||
|
|
||||||
|
List<string> stringList = new List<string>(){values.Item1, values.Item2};
|
||||||
|
File.WriteAllLines("saveFolder/accountData", stringList);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Open(string name, string mail, int videoID, string videoKind)
|
||||||
|
{
|
||||||
|
string tempHTMLLocation = "saveFolder/temp.html";
|
||||||
|
string url = @"https://alumnee.de/videoapi.php";
|
||||||
|
|
||||||
|
// create the temporary html file
|
||||||
|
using (FileStream fs = new FileStream(tempHTMLLocation, FileMode.Create)) {
|
||||||
|
using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8)) {
|
||||||
|
w.WriteLine("<body onload=\"goToLink()\">");
|
||||||
|
w.WriteLine("<form id=\"form\" method=\"POST\" action=\"" + url + "\">");
|
||||||
|
w.WriteLine("<input type=\"hidden\" name=\"username\" value=\"" + name + "\">");
|
||||||
|
w.WriteLine("<input type=\"hidden\" name=\"mail\" value=\"" + mail + "\">");
|
||||||
|
w.WriteLine("<input type=\"hidden\" name=\"videoKind\" value=\"" + videoKind + "\">");
|
||||||
|
w.WriteLine("<input type=\"hidden\" name=\"videoID\" value=\"" + videoID + "\">");
|
||||||
|
w.WriteLine("</form>");
|
||||||
|
w.WriteLine("<script> function goToLink() { document.getElementById(\"form\").submit(); } </script>");
|
||||||
|
w.WriteLine("</body>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// launch the temp html file
|
||||||
|
var launchProcess = new ProcessStartInfo {
|
||||||
|
FileName = tempHTMLLocation,
|
||||||
|
UseShellExecute = true
|
||||||
|
};
|
||||||
|
Process.Start(launchProcess);
|
||||||
|
|
||||||
|
// delete temp file but add delay so that Process has time to open file
|
||||||
|
Task.Delay(1500).ContinueWith(t=> File.Delete(tempHTMLLocation));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp
|
||||||
|
{
|
||||||
|
class VideoElement
|
||||||
|
{
|
||||||
|
public string Name = string.Empty;
|
||||||
|
public int ID = -1;
|
||||||
|
public string Kind = "lection";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,573 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp
|
||||||
|
{
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
static List<ExerciseGroup> OptionList = new List<ExerciseGroup>();
|
||||||
|
|
||||||
|
public static void Main()
|
||||||
|
{
|
||||||
|
//Zuerst schauen, ob der Speicherordner existiert
|
||||||
|
if(!Directory.Exists("saveFolder"))
|
||||||
|
Directory.CreateDirectory("saveFolder");
|
||||||
|
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//*******Einleitung*******
|
||||||
|
//************************
|
||||||
|
ExerciseGroup beginnerElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "1. Einleitung",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_5.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//************************
|
||||||
|
//*******Variablen********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup variableElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "2. Variablen",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E02_Variablen.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E02_Variablen.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E02_Variablen.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E02_Variablen.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E02_Variablen.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.E02_Variablen.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.E02_Variablen.Exercise_7.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 8", Method = Exercises_C_Sharp.E02_Variablen.Exercise_8.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 9", Method = Exercises_C_Sharp.E02_Variablen.Exercise_9.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//************************
|
||||||
|
//********Strings*********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup stringElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "3. Strings",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E03_Strings.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E03_Strings.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E03_Strings.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E03_Strings.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E03_Strings.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.E03_Strings.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.E03_Strings.Exercise_7.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 8", Method = Exercises_C_Sharp.E03_Strings.Exercise_8.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 9", Method = Exercises_C_Sharp.E03_Strings.Exercise_9.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 10", Method = Exercises_C_Sharp.E03_Strings.Exercise_10.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 11", Method = Exercises_C_Sharp.E03_Strings.Exercise_11.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//************************
|
||||||
|
//********Konsole*********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup terminalElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "4. Konsole",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E04_Konsole.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E04_Konsole.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E04_Konsole.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E04_Konsole.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E04_Konsole.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.E04_Konsole.Exercise_6.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//************************
|
||||||
|
//********Arrays*********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup arrayElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "5. Arrays",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E05_Arrays.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E05_Arrays.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E05_Arrays.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E05_Arrays.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E05_Arrays.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.E05_Arrays.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.E05_Arrays.Exercise_7.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 8", Method = Exercises_C_Sharp.E05_Arrays.Exercise_8.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 9", Method = Exercises_C_Sharp.E05_Arrays.Exercise_9.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 10", Method = Exercises_C_Sharp.E05_Arrays.Exercise_10.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 11", Method = Exercises_C_Sharp.E05_Arrays.Exercise_11.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 12", Method = Exercises_C_Sharp.E05_Arrays.Exercise_12.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//*******Überladung*******
|
||||||
|
//************************
|
||||||
|
ExerciseGroup ueberladungElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Überladung",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = XX_Überladung.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = XX_Überladung.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = XX_Überladung.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = XX_Überladung.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = XX_Überladung.Exercise_5.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//********LISTEN**********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup listElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Listen",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = XX_Lists.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = XX_Lists.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = XX_Lists.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = XX_Lists.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = XX_Lists.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = XX_Lists.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = XX_Lists.Exercise_7.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 8", Method = XX_Lists.Exercise_8.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 9", Method = XX_Lists.Exercise_9.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 10", Method = XX_Lists.Exercise_10.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 11", Method = XX_Lists.Exercise_11.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 12", Method = XX_Lists.Exercise_12.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 13", Method = XX_Lists.Exercise_13.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//*********Enums**********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup enumElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Enums",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = XX_Enumns.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = XX_Enumns.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = XX_Enumns.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = XX_Enumns.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = XX_Enumns.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = XX_Enumns.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = XX_Enumns.Exercise_7.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 8", Method = XX_Enumns.Exercise_8.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 9", Method = XX_Enumns.Exercise_9.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 10", Method = XX_Enumns.Exercise_10.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 11", Method = XX_Enumns.Exercise_11.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 12", Method = XX_Enumns.Exercise_12.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 13", Method = XX_Enumns.Exercise_13.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//*********Tuple**********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup tupleElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Tuple",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = XX_Tuple.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = XX_Tuple.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = XX_Tuple.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = XX_Tuple.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = XX_Tuple.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = XX_Tuple.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = XX_Tuple.Exercise_7.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 8", Method = XX_Tuple.Exercise_8.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 9", Method = XX_Tuple.Exercise_9.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//*Mehrdimensinale Arrays*
|
||||||
|
//************************
|
||||||
|
ExerciseGroup moredimensionalArrayElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Mehrdimensinale Arrays",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = XX_Mehrdimensionale_Arrays.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = XX_Mehrdimensionale_Arrays.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = XX_Mehrdimensionale_Arrays.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = XX_Mehrdimensionale_Arrays.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = XX_Mehrdimensionale_Arrays.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = XX_Mehrdimensionale_Arrays.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = XX_Mehrdimensionale_Arrays.Exercise_7.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//******Jagged Arrays*****
|
||||||
|
//************************
|
||||||
|
ExerciseGroup jaggedArrayElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Jagged Arrays",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = XX_Jagged_Arrays.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = XX_Jagged_Arrays.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = XX_Jagged_Arrays.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = XX_Jagged_Arrays.Exercise_4.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//********Klassen*********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup classElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Klassen",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.XX_Classes.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.XX_Classes.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.XX_Classes.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.XX_Classes.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.XX_Classes.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.XX_Classes.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.XX_Classes.Exercise_7.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//****Konstruktoren*******
|
||||||
|
//************************
|
||||||
|
ExerciseGroup constructorElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Konstruktoren",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_7.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//******Exceptions********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup exceptionElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Exceptions",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_7.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 8", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_8.Start},
|
||||||
|
new ExerciseElement(){Name = "Übung 9", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_9.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//****Sonderaufgaben******
|
||||||
|
//************************
|
||||||
|
ExerciseGroup specialElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Sonderaufgaben",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Schere Stein Papier Echse Spock", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Schiffe versenken", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Memory", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_3.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//*Entwicklungsaufgaben***
|
||||||
|
//************************
|
||||||
|
ExerciseGroup developElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Entwicklungsaufgaben",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Dynamische Eingaben in Echtzeit", Method = Exercises_C_Sharp.Entwicklungsaufgaben.Minispiele.Step_1.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//***Dateizugriffe********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup filesystemElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Dateizugriffe",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_2.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 3", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_3.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 4", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_4.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 5", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_5.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 6", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_6.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 7", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_7.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 8", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_8.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 8b", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_8b.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//***********MySQL********
|
||||||
|
//************************
|
||||||
|
ExerciseGroup mysqlElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "MySQL",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.XX_MySQL.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.XX_MySQL.Exercise_2.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************
|
||||||
|
//*****Serialisierung*****
|
||||||
|
//************************
|
||||||
|
ExerciseGroup serializeElements = new ExerciseGroup()
|
||||||
|
{
|
||||||
|
Name = "Serialisierung",
|
||||||
|
ElementList = new List<ExerciseElement>()
|
||||||
|
{
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.XX_Serialisierung.Exercise_1.Start},
|
||||||
|
new ExerciseElement(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.XX_Serialisierung.Exercise_2.Start}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//Zusammenführung
|
||||||
|
OptionList = new List<ExerciseGroup>(){
|
||||||
|
beginnerElements,
|
||||||
|
variableElements,
|
||||||
|
stringElements,
|
||||||
|
terminalElements,
|
||||||
|
arrayElements,
|
||||||
|
listElements,
|
||||||
|
enumElements,
|
||||||
|
ueberladungElements,
|
||||||
|
moredimensionalArrayElements,
|
||||||
|
jaggedArrayElements,
|
||||||
|
tupleElements,
|
||||||
|
specialElements,
|
||||||
|
developElements,
|
||||||
|
classElements,
|
||||||
|
constructorElements,
|
||||||
|
exceptionElements,
|
||||||
|
filesystemElements,
|
||||||
|
mysqlElements
|
||||||
|
};
|
||||||
|
|
||||||
|
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();
|
||||||
|
LoadMarkedExercises();
|
||||||
|
var pos = LoadCurrentElementAndCurrentList();
|
||||||
|
int currentElement = pos.Item1;
|
||||||
|
int currentList = pos.Item2;
|
||||||
|
|
||||||
|
while(true)
|
||||||
|
{
|
||||||
|
for(int k = 0; k < OptionList.Count; k++)
|
||||||
|
{
|
||||||
|
var element = OptionList[k];
|
||||||
|
Console.WriteLine("**********************");
|
||||||
|
Console.WriteLine(element.Name);
|
||||||
|
Console.WriteLine("**********************");
|
||||||
|
if(currentList == k)
|
||||||
|
{
|
||||||
|
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" : " ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var key = Console.ReadKey();
|
||||||
|
if(key.Key == ConsoleKey.UpArrow)
|
||||||
|
{
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
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];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
README.md
11
README.md
|
|
@ -1,4 +1,9 @@
|
||||||
# Exercises_C_Sharp
|
# Exercises_C_Sharp
|
||||||
|
Hinweise:
|
||||||
Hier finden Sie die Übungsaufgaben aus dem Unterricht.
|
- Wichtig: Hierbei handelt es sich um Übungsaufgaben, die oftmals in der Praxis nicht so verwendet werden sollten. Es geht um die konkrete Übung eines spezifischen Sachverhalts.
|
||||||
Bitte geben Sie die Daten hier nicht weiter. Sollten Sie Fehler finden, melden Sie diese bitte direkt an mich.
|
- Die Aufgaben befinden sich sortiert zu dem jeweiligen Gebiet in den Ordnern.
|
||||||
|
- Lesen Sie die oben stehende Aufgaben genau durch und fügen Sie Ihre Lösung zwischen 'Code START' und 'Code ENDE' ein. Sollte es keinen Start und kein Ende geben, sollen Sie die Datei wie in der Aufgabenstellung beschrieben bearbeiten.
|
||||||
|
- Sie können zwischen START und ENDE beliebig viele Zeilen einfügen oder herauslöschen. Beim Löschen könnte es Bedingungen durch die Aufgabenstellung geben.
|
||||||
|
- Aufgaben sind teilweise so angepasst, dass der gesamte Code kompilierbar bleibt. Löschen Sie unpassende Dinge, oder ändern Sie diese ab, wenn diese zwischen 'Code START' und 'Code ENDE' stehen. Jeglicher anderer Code MUSS so stehen bleiben und darf nicht verändert werden.
|
||||||
|
- Ausnahmen dafür sind dynamic-Typen. Diese müssen Sie immer durch den korrekten Typen ersetzen, egal ob diese zwischen Start und Ende stehen, oder nicht.
|
||||||
|
- Auch die Preprocessordirectives können Sie herauslöschen. Dadurch werden Ihnen Warnungen angezeigt.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.Sonderaufgaben
|
||||||
|
{
|
||||||
|
class Exercise_1
|
||||||
|
{
|
||||||
|
//Schreiben Sie ein Spiel, in dem man gegen den Computer Schere, Stein, Papier, Echse, Spock spielen kann. Die Regeln sind wie folgt:
|
||||||
|
// - Schere schneidet Papier
|
||||||
|
// - Papier bedeckt Stein
|
||||||
|
// - Stein zerquetscht Echse
|
||||||
|
// - Echse vergiftet Spock
|
||||||
|
// - Spock zertrümmert Schere
|
||||||
|
// - Schere köpft Echse
|
||||||
|
// - Echse frisst Papier
|
||||||
|
// - Papier widerlegt Spock
|
||||||
|
// - Spock verdampft Stein
|
||||||
|
// - Stein schleift Schere
|
||||||
|
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 7.0 KiB |
|
|
@ -0,0 +1,50 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.Sonderaufgaben
|
||||||
|
{
|
||||||
|
class Exercise_2
|
||||||
|
{
|
||||||
|
//Schreiben Sie ein Programm, in dem man gegen den PC Schiffe versenken spielen kann. Dabei soll der Anwender immer eine Koordinate (z.B. A7) eingeben und dann wird überprüft, ob sich dort ein Treffer befindet. Dabei hat nur der Computer ein 10x10 Feld, auf dem er Zufällig die Schiffe (Schlachtschiff[5 Felder], Kreuzer [4 Felder], Fregatte [3 Felder], Schnellboot[2 Felder]) platziert. Überlegen Sie sich, wie man das Feld auf der Konsole anzeigen könnte.
|
||||||
|
|
||||||
|
//Gedankengang zu dieser Aufgabe:
|
||||||
|
//0 -> Wasser -> Ausgabe: O
|
||||||
|
//1 -> Schiff -> Ausgabe: O (Tipp: Kann auch zum Debuggen geändert werden)
|
||||||
|
//2 -> Getroffenes Wasser -> Ausgabe: $
|
||||||
|
//3 -> Getroffenes Schiff -> Ausgabe: X
|
||||||
|
|
||||||
|
//Hierbei handelt es sich um das Spielfeld (Standardmäßig sind alle Werte 0)
|
||||||
|
static int[,] GameField = new int[10,10];
|
||||||
|
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Diese Methode setzt die Schiffe in das Spielfeld
|
||||||
|
static void SetShips()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Diese Methode frägt, prüft und wandelt die Eingabe des Nutzers um. Dabei wird die konkrete Koordinate zurück gegeben.
|
||||||
|
static Tuple<int,int> GetUserinput()
|
||||||
|
{
|
||||||
|
return new Tuple<int, int>(-1,-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Diese Methode verarbeitet die Eingabe des Nutzers.
|
||||||
|
static void HandleUserInput(Tuple<int,int> userinput)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Diese Methode zeigt das Spielfeld mit allen weiteren Anzeigeelementen an.
|
||||||
|
static void ShowField()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
|
|
@ -0,0 +1,17 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.Sonderaufgaben
|
||||||
|
{
|
||||||
|
class Exercise_3
|
||||||
|
{
|
||||||
|
//Schreiben Sie ein eigenes Memory-Spiel! Bei Memory haben Sie eine gerade Anzahl an Karten, die für den Nutzer nicht einsehbar (verdeckt) liegen. Nun darf der Anwender immer zwei Karten nacheinander aufdecken. Besitzen beide Karten dasselbe Symbol, verschwinden diese vom Spielfeld. Sind es zwei unterschiedliche Symbole, so werden diese wieder "umgedreht", also für den Spieler unsichtbar gemacht. Gewonnen hat der Spieler dann, wenn keine Karten mehr übrig sind. Zählen Sie die Versuche mit, die der Spieler bis zum Gewinn gebraucht hat.
|
||||||
|
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
Hinweise zu den Sonderaufgaben:
|
||||||
|
|
||||||
|
In diesen Aufgaben sind Sie komplett frei, was Sie programmieren. Oftmals gibt es auch vorgefertigte Strukturen, diese können Sie nutzen, oder auch komplett verändern. Die Aufgaben sind meistens etwas freier beschrieben, schließen Sie die Aufgabenlücken mit Ihrer eigenen Meinung zum Thema, wie das Programm am besten arbeiten und aussehen sollte.
|
||||||
|
Sie finden auch (teilweise) Beispielbilder vom Programm. Diese besitzen den selben Namen wie die Aufgabe.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Sie sollen für Ihre nächste Party ein Use Case-Diagramm erzeugen. Dabei sollen sie die Interaktionen von dem Gast, dem Gastgeber und der Polizei implementieren. Achten Sie darauf, dass die Gäst (wie auch der Gastgeber) Tanzen, Essen, Trinken und sich unterhalten können. Achten Sie dabei darauf, dass immer genug Nachschub an Essen und Trinken da ist. Sie als Gastgeber können natürlich die Feier beenden und auch Gäste herausgeleiten. Natürlich kann aber die Polizei auch die Party abrupt beenden.
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
Sie sollen für eine Schiffe versenken Software ein Use-Case-Diagramm modellieren. Das Spiel ist auf zwei Spieler ausgelegt. Dabei eröffnet ein Spieler einen Raum und ein zweiter kann dann folgen. Das Spiel kann erst gestartet werden, wenn ein zweiter Spieler gefolgt ist.
|
||||||
|
Dann darf jeder Spieler abwechselnd setzen. Jeder Spieler kann aber auch das Spiel abbrechen, dann wird die Verbindung getrennt und der Raum geschlossen.
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
Sie sollen ein Use-Case-Diagramm für einen Login-Bereich schreiben. In diesem soll sich ein Anwender registrieren und anmelden können. Wenn sich jemand registriert hat, dann muss sein Account erst durch einen Admin freigeschalten werden. Nache erfolgreichen login kann der Anwender Posts erstellen und Kommentare dazu schreiben. Diese können von ihm selber und von einem Admin geslöscht werden.
|
||||||
|
Der gesamte Account kann auch von einem Admin gesperrt werden, dann ist ein Einloggen nicht mehr möglich.
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Classes
|
||||||
|
{
|
||||||
|
class Exercise_1
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Erstellen Sie die Klasse Funny, sodass "Hallo, das ist super!" auf der Konsole ausgegeben wird.
|
||||||
|
//Code START
|
||||||
|
dynamic funnyClass = -1;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
Console.WriteLine(funnyClass.Value1 + funnyClass.Value2 + funnyClass.Value3 + funnyClass.Value4);
|
||||||
|
}
|
||||||
|
class Funny
|
||||||
|
{
|
||||||
|
public string Value1 = "Hallo";
|
||||||
|
public string Value2 = ", das";
|
||||||
|
public string Value3 = " ist";
|
||||||
|
public string Value4 = " super!";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Classes
|
||||||
|
{
|
||||||
|
class Exercise_2
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
List<Lists> listList = new List<Lists>();
|
||||||
|
//Erstellen Sie fünf neue Instanzen der Klasse Lists und fügen Sie diese der oberen Liste hinzu.
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
foreach(var element in listList)
|
||||||
|
fillListsWithRandomValues(element);
|
||||||
|
|
||||||
|
//Lassen Sie nun den Anwender Eingaben machen. Diese sollen Strings, Chars, Ints oder Decimal sein. Überprüfen Sie, um welchen Typ es sich handelt und überprüfen Sie, ob sich dieser Wert in einer Liste in einen der Klassen befindet oder nicht.
|
||||||
|
//Sollte sich das Element in einer Liste befinden, dann geben Sie den Wert davor und den Wert danach aus. Sollte es keinen Wert davor bzw. danach geben, nehmen Sie den letzten oder den ersten Wert.
|
||||||
|
while(true)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static void fillListsWithRandomValues(Lists lis)
|
||||||
|
{
|
||||||
|
Random rand = new Random();
|
||||||
|
//Fill Integer
|
||||||
|
for(int i = 0; i < rand.Next(5, 21); i++)
|
||||||
|
lis.IntegerList.Add(rand.Next());
|
||||||
|
//Fill Strings
|
||||||
|
for(int i = 0; i < rand.Next(5,21); i++)
|
||||||
|
{
|
||||||
|
string temp = "";
|
||||||
|
for(int j = 0; j < rand.Next(5,21); j++)
|
||||||
|
temp += (char)rand.Next(65,123);
|
||||||
|
lis.StringList.Add(temp);
|
||||||
|
}
|
||||||
|
//Fill Chars
|
||||||
|
for(int i = 0; i < rand.Next(5,21); i++)
|
||||||
|
{
|
||||||
|
lis.CharList.Add((char)rand.Next(65,123));
|
||||||
|
}
|
||||||
|
//Fill Decimal
|
||||||
|
for(int i = 0; i < rand.Next(5,21); i++)
|
||||||
|
{
|
||||||
|
lis.DecimalList.Add(((decimal)rand.Next()) / (decimal)Math.Pow(10, rand.Next(1,9)));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class Lists
|
||||||
|
{
|
||||||
|
public List<int> IntegerList = new List<int>();
|
||||||
|
public List<string> StringList = new List<string>();
|
||||||
|
public List<char> CharList = new List<char>();
|
||||||
|
public List<decimal> DecimalList = new List<decimal>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Classes
|
||||||
|
{
|
||||||
|
class Exercise_3
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Erstellen Sie eine Liste von Ausweisen (IDs)
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Der Nutzer soll nun beliebig viele Ausweise erstellen können. Achten Sie darauf, dass der Nutzer mindestens 5 Ausweise erstellen muss. Verwenden Sie die Methode UserCreateID(). Speichern Sie die Ausweise in die oben erstellte Liste, nach dem Geburtsdatum sortiert.
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Geben Sie zum Schluss alle Ausweise aus. Nutzen Sie dafür die Methode ShowIDs().
|
||||||
|
//Code Start
|
||||||
|
//ShowIDs();
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
|
||||||
|
//Geben Sie in diser Methode alle Ausweise optisch ansprechend auf der Konsole aus.
|
||||||
|
static void ShowIDs(List<ID> idList)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Sorgen Sie dafür, dass der Anwender hier einen validen Ausweis erstellen kann. Setzen Sie die IDNumber selber. Achten Sie darauf, dass eine IDNumber mindesten 5 Zahlen beinhaltet und eindeutig sein muss.
|
||||||
|
static ID UserCreateID()
|
||||||
|
{
|
||||||
|
//Code START
|
||||||
|
return new ID();
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class ID
|
||||||
|
{
|
||||||
|
public int IDNumber = -1;
|
||||||
|
public string? Prename = null;
|
||||||
|
public string? Givenname = null;
|
||||||
|
public DateTime Birth = DateTime.MinValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Classes
|
||||||
|
{
|
||||||
|
class Exercise_4
|
||||||
|
{
|
||||||
|
//Erstellen Sie eine statische Liste, wo man Elemente vom Typ Equipment reinspeichern kann
|
||||||
|
//Code Start
|
||||||
|
static dynamic EList = 1;
|
||||||
|
//Code ENDE
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
string userinput;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
EList.Add(MakeEquipment());
|
||||||
|
Console.WriteLine("Wollen Sie die weitere Eingabe abbrechen? (y -> JA, ABBRECHEN)");
|
||||||
|
userinput = Console.ReadLine() ?? "";
|
||||||
|
}
|
||||||
|
while(userinput.Trim().ToUpper() != "Y");
|
||||||
|
PrintEquipment();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Lassen Sie hier einen Nutzer Ausrüstung erstellen (Eingabe einer ID, eines Namens und einer Anzahl) und gegen Sie diese zurück.
|
||||||
|
static Equipment? MakeEquipment()
|
||||||
|
{
|
||||||
|
//Code Start
|
||||||
|
return null;
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
|
||||||
|
//Geben Sie hier die Liste mit Equipment optisch ansprechend aus.
|
||||||
|
static void PrintEquipment()
|
||||||
|
{
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Equipment
|
||||||
|
{
|
||||||
|
public int ID = -1;
|
||||||
|
public string? Name = null;
|
||||||
|
public int Amount = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Classes
|
||||||
|
{
|
||||||
|
class Exercise_5
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Erstellen Sie hier eine Instanz ihrer Klasse
|
||||||
|
//Code START
|
||||||
|
dynamic obj = 1;
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
obj.StringList = new List<string>{"Hallo", "Hi", "Hey", "Hohoho", "Ciao", "Byebye"};
|
||||||
|
obj.Position = 1;
|
||||||
|
|
||||||
|
Console.WriteLine(GetCharsFromPosition(obj));
|
||||||
|
}
|
||||||
|
static string GetCharsFromPosition(dynamic d)
|
||||||
|
{
|
||||||
|
string tempString = string.Empty;
|
||||||
|
foreach(var element in d.StringList)
|
||||||
|
{
|
||||||
|
tempString += element.Length > d.Position ? element[d.Position] : "";
|
||||||
|
}
|
||||||
|
return tempString;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Schreiben Sie eine Klasse, die oben zu der Aufgabe passt. Ändern Sie dann auch alle dynamics oben ab.
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Classes
|
||||||
|
{
|
||||||
|
class Exercise_6
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
List<Animal> AnimalList = new List<Animal>();
|
||||||
|
|
||||||
|
//Füllen Sie die AnimalList mit 20 verschiedenen Tieren unterschiedlichen Typs.
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
|
||||||
|
while(true)
|
||||||
|
{
|
||||||
|
//Geben Sie dem Anwender die Möglichkeit, nach den unten stehenden Enums zu filtern. Der Anwender soll auswählen, nach was er filtern möchte (z.B. Schuppen, Vogel, Insekt usw.). Rufen Sie dann die Methode FilterAnimnals() auf und übergeben Sie diesen Wert.
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void FilterAnimals<T> (List<Animal> animalList, T filterItem)
|
||||||
|
{
|
||||||
|
Console.Clear();
|
||||||
|
if(filterItem == null || animalList == null)
|
||||||
|
return;
|
||||||
|
foreach(var element in animalList)
|
||||||
|
{
|
||||||
|
if(typeof(T) == typeof(SkinKind))
|
||||||
|
{
|
||||||
|
if(element.Skin == (SkinKind)Convert.ChangeType(filterItem, typeof(SkinKind)))
|
||||||
|
PrintAnimalToConsole(element);
|
||||||
|
}
|
||||||
|
else if(typeof(T) == typeof(MealKind))
|
||||||
|
{
|
||||||
|
if(element.Meal == (MealKind)Convert.ChangeType(filterItem, typeof(MealKind)))
|
||||||
|
PrintAnimalToConsole(element);
|
||||||
|
}
|
||||||
|
else if(typeof(T) == typeof(AnimalKind))
|
||||||
|
{
|
||||||
|
if(element.Kind == (AnimalKind)Convert.ChangeType(filterItem, typeof(AnimalKind)))
|
||||||
|
PrintAnimalToConsole(element);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void PrintAnimalToConsole(Animal a)
|
||||||
|
{
|
||||||
|
//Geben Sie hier das übergebene Tier mit allen Werten aus.
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
enum SkinKind {Fell, Schuppen, Federn, Haut}
|
||||||
|
enum MealKind {Pflanzenfresser, Fleischfresser, Allesfresser}
|
||||||
|
enum AnimalKind {Säugetier, Vogel, Insekt, Reptil}
|
||||||
|
|
||||||
|
class Animal
|
||||||
|
{
|
||||||
|
public string? Name = null;
|
||||||
|
public SkinKind Skin = SkinKind.Federn;
|
||||||
|
public MealKind Meal = MealKind.Allesfresser;
|
||||||
|
public AnimalKind Kind = AnimalKind.Insekt;
|
||||||
|
|
||||||
|
public int CurrentPopulation = -1;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Classes
|
||||||
|
{
|
||||||
|
class Exercise_7
|
||||||
|
{
|
||||||
|
static List<Customer> CustomerList = new List<Customer>();
|
||||||
|
static List<Product> ProductList = new List<Product>();
|
||||||
|
static List<Invoice> InvoiceList = new List<Invoice>();
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
while(true)
|
||||||
|
{
|
||||||
|
//Schreiben Sie ein Menü (auch gerne in einer neuen Methode), in dem der Nutzer Auswählen kann, ob er einen Kunden, ein Produkt oder eine Rechnung erstellen kann. Geben Sie ihm auch die Möglichkeit, zu einer Rechnung Produkte hinzuzufügen und zu löschen.
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Ergänzen Sie diese Methode, sodass ein Anwender hier einen neuen Kunden erstellen kann. Dieser soll dann in die CustomerList gespeichert werden.
|
||||||
|
static void CreateNewCustomerAndAddToList()
|
||||||
|
{
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
}
|
||||||
|
//Ergänzen Sie diese Methode, sodass ein Anwender hier einen neues Produkt erstellen kann. Dieser soll dann in die ProductList gespeichert werden.
|
||||||
|
static void CreateNewProductAndAddToList()
|
||||||
|
{
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
}
|
||||||
|
//Ergänzen Sie diese Methode, sodass ein Anwender hier eine neue Rechnung erstellen kann. Dieser soll dann in die InvoiceList gespeichert werden.
|
||||||
|
static void CreateNewInvoiceAndAddToList()
|
||||||
|
{
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code Ende
|
||||||
|
}
|
||||||
|
//Ergänzen Sie diese Methode, sodass ein Anwender hier ein Produkt zu einer Rechnung hinzufügen kann.
|
||||||
|
static void AddElementToInvoice(Invoice inv)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
//Ergänzen Sie diese Methode, sodass ein Anwender hier ein Produkt von einer Rechnung löschen kann.
|
||||||
|
static void DeleteElementToInvoice(Invoice inv)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class Product
|
||||||
|
{
|
||||||
|
public string? Name = null;
|
||||||
|
public decimal Price = 0;
|
||||||
|
}
|
||||||
|
class Invoice
|
||||||
|
{
|
||||||
|
public Customer? Cust = null;
|
||||||
|
public List<Item> Items = new List<Item>();
|
||||||
|
|
||||||
|
//Schreiben Sie hier eine Methode, die die Anzahl aller einzelnen Elemente zurückgibt
|
||||||
|
|
||||||
|
//Schreiben Sie hier eine Methode, die die Anzahl der verschiedenen Produkte zurückgibt
|
||||||
|
|
||||||
|
//Schreiben Sie hier eine Methode, die den Gesamtpreis der Rechnung zurück gibt
|
||||||
|
}
|
||||||
|
class Item
|
||||||
|
{
|
||||||
|
public Product? Product = null;
|
||||||
|
public int Amount = 0;
|
||||||
|
}
|
||||||
|
class Customer
|
||||||
|
{
|
||||||
|
public int ID = -1;
|
||||||
|
public string? Name = null;
|
||||||
|
public string? Address = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
class Inventar
|
||||||
|
{
|
||||||
|
public Inventar(string companyName)
|
||||||
|
{
|
||||||
|
if(string.IsNullOrWhiteSpace(companyName))
|
||||||
|
throw new ArgumentNullException("Der übergeben Name für die Fima ist NULL oder leer. Dies ist nicht erlaubt.");
|
||||||
|
CompanyName = companyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string CompanyName;
|
||||||
|
|
||||||
|
public List<string> Notes = new List<string>();
|
||||||
|
|
||||||
|
List<(Thing obj, int amount)> objectList = new List<(Thing obj, int amount)>();
|
||||||
|
|
||||||
|
//Diese Methode soll den Gesamtpreis aller Elemente zurück geben.
|
||||||
|
public decimal ReturnPriceSum()
|
||||||
|
{
|
||||||
|
//Code START
|
||||||
|
return decimal.Zero;
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
class Thing
|
||||||
|
{
|
||||||
|
public string? Name;
|
||||||
|
public decimal Price;
|
||||||
|
public string? Details;
|
||||||
|
public double Weight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
class Exercise_1
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
Console.WriteLine("Hier ist der Inhalt der Datei 'ex1.ttdx';");
|
||||||
|
//Unter Files finden Sie die Datei ex1.ttdx. Geben Sie den Inhalt der Datei aus:
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
class Exercise_2
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Unter Files finden Sie die Datei Animal.txt. Sorgen Sie dafür, dass der Nutzer die Dateiendung beliebig ändern kann:
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
class Exercise_3
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Unter Files finden Sie die Datei 'ex3.num'. In dieser Datei sind Messergebnisse enthalten. Einige dieser Messergebnisse haben Nachkommastellen. Ihre Aufgabe ist nun, alle Zahlen mit Nachkommastellen matehmatisch sauber zu runden, sodass nur noch Integer-Zahlen in der Datei ex3.num stehen.
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
class Exercise_4
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sorgen Sie dafür, dass die stringList bei jedem Ausführen der Aufgabe geladen wird. Achten Sie darauf zu überprüfen, ob die Datei überhaupt schon existiert.
|
||||||
|
List<string> stringList = new List<string>();
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
Console.WriteLine("Bitte geben Sie den nächsten String ein:");
|
||||||
|
stringList.Add(Console.ReadLine() ?? "");
|
||||||
|
Console.Clear();
|
||||||
|
Console.WriteLine("Hier sind alle Elemente:");
|
||||||
|
foreach(var element in stringList)
|
||||||
|
Console.WriteLine(element);
|
||||||
|
|
||||||
|
//Implementieren Sie die Speicherung der Liste
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
class Exercise_5
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
Console.WriteLine("Bitte geben Sie eine Namen ein:");
|
||||||
|
string s = Console.ReadLine() ?? "";
|
||||||
|
Console.WriteLine("Bitte geben Sie eine Anzahl der Ordner ein:");
|
||||||
|
int i = Convert.ToInt32(Console.ReadLine());
|
||||||
|
//Sie finden im Dateisystem einen Ordner 'Filecreator'. Der Anwender gibt oben einen Namen und eine Zahl ein. Nun sollen die Anzahl der Ordner erstellt werden. Diese sollen alle den eingegebenen Namen haben (das geht natürlich nicht, suchen Sie nach einer Lösung).
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
class Exercise_6
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Sie sehen den Ordner "FileSystem". Geben Sie alle Ordner darin grafisch ansprechend aus:
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
class Exercise_7
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Schreiben Sie ein Menü, in welchem der Anwender auswählen kann, ob er
|
||||||
|
// - Die Ordner im Ordner FileSystem anzeigen lassen möchte
|
||||||
|
// - Einen Ordner davon löschen möchte
|
||||||
|
// - Einen Ordner hinzufügen möchte
|
||||||
|
// - Einen Ordner umbenennen möchte
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
|
||||||
|
//Diese Methode soll alle Ordner mit Unterordner aus FileSystem anzeigen. Achten Sie darauf, das sich die Ordnerstrukturen (auch in der Tiefe) ändern können.
|
||||||
|
static void ShowDirectories()
|
||||||
|
{
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
//In dieser Methode soll der Anwender die Möglichkeit haben, einen Ordner auszuwählen. Dabei soll der Pfad des Ordners zurück gegeben werden. Als Übergabewert kann man selbst, was bei dem jeweiligen Aufruf angezeigt werden soll.
|
||||||
|
static string ChooseDirectory(string command = "Bitte wählen Sie einen Ordner:")
|
||||||
|
{
|
||||||
|
Console.WriteLine(command);
|
||||||
|
//Code Start
|
||||||
|
return string.Empty;
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
//In dieser Methode soll ein Ordner gelöscht werden. Dieser Methode soll ein Pfad zu dem zu löschenden Ordner übergeben werden.
|
||||||
|
static void DeleteDirectory(string path)
|
||||||
|
{
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
//In dieser Methode soll ein Ordner umbenannt werden. Dabei soll wieder ein Pfad zu dem umbenennenden Ordner übergeben werden.
|
||||||
|
static void RenameDirectory(string path)
|
||||||
|
{
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
|
||||||
|
//In dieser Methode soll der Anwender einen neuen Ordner erstellen können. Dabei wird der Pfad zu dem Ordner, in dem der neue Ordner erstellt werden soll, übergeben werden.
|
||||||
|
static void CreateNewDirectory(string path)
|
||||||
|
{
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
//Hierbei sollen Sie die Klassen aus dem Ordner ex8 verwenden.
|
||||||
|
class Exercise_8
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
//Erstellen Sie eine Instanz der Klasse Inventar.
|
||||||
|
//Code Start
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Füllen Sie die Felder des Inventar-Objekts mit Werten. Schreiben Sie mindestens 5 Notizen und 5 Dinge mit deren Anzahl in die jeweilige Liste.
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Geben Sie nun den Gesamtpreis aller Elemente darin aus. Programmieren Sie dafür in der Inventar.cs die Methode ReturnPriceSum() aus und rufen Sie diese hier auf.
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
|
||||||
|
//Spreichern Sie nun das Objekt ab als XML und als JSON in zwei verschiedene Dateien ab.
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace Exercises_C_Sharp.XX_Dateizugriffe
|
||||||
|
{
|
||||||
|
//Hierbei sollen Sie die Klassen aus dem Ordner ex8 verwenden.
|
||||||
|
class Exercise_8b
|
||||||
|
{
|
||||||
|
public static void Start()
|
||||||
|
{
|
||||||
|
Console.WriteLine("Hier sind die Daten der XML-Datei:");
|
||||||
|
ShowXml();
|
||||||
|
Console.WriteLine("Hier sind die Daten der JSON-Datei:");
|
||||||
|
ShowJson();
|
||||||
|
}
|
||||||
|
//Laden Sie die XML-Datei aus der vorherigen Aufgabe und zeigen Sie sie an:
|
||||||
|
static void ShowXml()
|
||||||
|
{
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
//Laden Sie die JSON-Datei aus der vorherigen Aufgabe und zeigen Sie sie an:
|
||||||
|
static void ShowJson()
|
||||||
|
{
|
||||||
|
//Code START
|
||||||
|
|
||||||
|
//Code ENDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue