Lösungen Einsendeaufgabe EA 2 und 3

#51
Ich habe den Kurs erst etwas später belegt.

Bekommt man die Aufgabenstellung per Post oder wo kann ich die finden?

Vielen Dank vorab
 
#52
Huhu, hat hier jemand Lösungen für 2.4 und 2.5 mit C#?
Ich komme nicht weiter und die hier bereits geposteten Lösungen sind als Anhang hochgeladen und das können die meisten leider nicht öffnen :-(
Könnte es jemand in den Text rein kopieren, damit ich es auch lesen kann?
 
#53
ServerHandler.cs:


using System;
using System.Threading;

namespace ServerHandler
{
public class Server
{
public Server()
{
new Thread(new ThreadStart(run)).Start();
}

private void run()
{
while (true)
{
Console.WriteLine("Waiting for new task");
Console.ReadLine();

new Handler();

Console.WriteLine("New handler started");
Thread.Sleep(1);
}
}

[STAThread]
static void Main(string[] args)
{
new Server();
}
}

public class Handler
{
public Handler()
{
new Thread(new ThreadStart(run)).Start();
}

private void run()
{
Console.WriteLine("Processing new task...");
Thread.Sleep(3000);
Console.WriteLine("Processing finished");
}
}
}









AsynchronerAufruf.cs:


using System;
using System.Threading;

namespace AsynchronerAufruf
{
public class Client
{
public Client()
{
Caller caller = new Caller(); // Caller caller = new Caller(null);

while (caller.returned == false)
{
Console.WriteLine("Do some other work...");
Thread.Sleep(1000);
}

Console.WriteLine("Continue with result: " + caller.result);

Caller caller2 = new Caller(this);
Console.WriteLine("Do lots of other work");

Console.ReadLine();
}

public void callback(int result)
{
Console.WriteLine("Received result: " + result);
}

[STAThread]
static void Main(string[] args)
{
new Client();
}
}


public class Caller
{
private int _result = -1;
private bool _returned = false;
private Client client;
private Object _lock = new object();



public Caller(Client client = null)
{
this.client = client;
new Thread(new ThreadStart(run)).Start();
}

public bool returned
{
get
{
lock (_lock)
{
return _returned;
}
}

private set
{
_returned = value;
}
}

public int result
{
get
{
lock (_lock)
{
return _result;
}
}

private set
{
_result = value;
}
}

private void run()
{
Console.WriteLine("Processing task...");

int r = new Random().Next(0, 101);
Thread.Sleep(2000);

Console.WriteLine("Processing finished");

lock (_lock)
{
result = r;
returned = true;
}

if (client != null)
{
client.callback(result);
}
}
}
}
 
#55
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<!DOCTYPE Student [
<!ELEMENT Student (Name, Matrikel, Anschrift, Lieferanschrift?, Kontodaten, LN*, Schriftliche_Arbeit*, Anmerkung*)>
<!ELEMENT Name (Anrede, Vorname, Nachname)>
<!ELEMENT Anrede (#PCDATA | Frau | Herr)*>
<!ELEMENT Vorname (#PCDATA)>
<!ELEMENT Nachname (#PCDATA)>
<!ELEMENT Matrikel (#PCDATA)>
<!ELEMENT Anschrift (#PCDATA)>
<!ELEMENT Lieferanschrift (#PCDATA)>
<!ELEMENT Kontodaten (Kontoinhaber?, KTO, BLZ)>
<!ELEMENT Kontoinhaber (#PCDATA)>
<!ELEMENT KTO (#PCDATA)>
<!ELEMENT BLZ (#PCDATA)>
<!ELEMENT LN (Kurs, (Note | (Punkte, Gesamtpunkte)), Datum, Versuche?)>
<!ELEMENT Kurs (#PCDATA)>
<!ELEMENT Note (#PCDATA)>
<!ELEMENT Punkte (#PCDATA)>
<!ELEMENT Gesamtpunkte (#PCDATA)>
<!ELEMENT Datum (#PCDATA)>
<!ELEMENT Versuche (#PCDATA)>
<!ELEMENT Schriftliche_Arbeit (Thema, Note, Betreuer*, Datum)>
<!ATTLIST Schriftliche_Arbeit
Art (Diplomarbeit | Seminararbeit | Bachelorarbeit | Masterarbeit | Dissertation) #REQUIRED>
<!ELEMENT Thema (#PCDATA)>
<!ELEMENT Betreuer (#PCDATA)>
<!ELEMENT Anmerkung (#PCDATA)>
]>
<Student>
<Name>
<Anrede>Sehr geehrter Herr</Anrede>
<Vorname>Tobias</Vorname>
<Nachname>Herfert</Nachname>
</Name>
<Matrikel>8947929</Matrikel>
<Anschrift>Darmstädter Str. 58, 64625 Bensheim</Anschrift>
<Kontodaten>
<KTO>123456789</KTO>
<BLZ>60080030</BLZ>
</Kontodaten>
<LN>
<Kurs>BIS</Kurs>
<Note>1.0</Note>
<Datum>29.10.2016</Datum>
</LN>
<Schriftliche_Arbeit Art="Diplomarbeit">
<Thema>Optimierung</Thema>
<Note>1.0</Note>
<Datum>25.10.2009</Datum>
</Schriftliche_Arbeit>
</Student>