Pääteohjaustehtäviä 11 / 14.-15.11


Mikäli osan tehtävistä haluaa tehdä komentoriviltä, löytyy mikroluokista Microsoftin C# kääntäjä csc.exe. Sen hakemisto (C:\WINNT\Microsoft.NET\Framework\v1.1.4322) täytyy asettaa PATH muuttujaan.

path=C:\WINNT\Microsoft.NET\Framework\v1.1.4322;%path%

Tehtävät löytyvät esimerkkikoodeineen ainakin http://www.mit.jyu.fi/vesal/kurssit/winohj/csharp/seminaari05/

C#:n dokumentaatiot ja muuta opastetta löytyy tarvittaessa 'Microsoft Visual Studio .NET 2003 Documentation' -ohjetiedostosta Visual Studion kansiosta Käynnistä-valikosta. Katso apua myös: C#-pikakurssi/ Santty Syrjälä, LuK-työ ( http://www.mit.jyu.fi/vesal/kurssit/winohj/csharp/seminaari05/CS_Pikakurssi.pdf).

1. Autolaskuri C#

1.
Tee autolaskuri C#:lla, esimerkiksi Borlandin IDEä käyttäen (File, New, Windows Forms Application - C# Builder). Vertaa erityisesti Delphin ja C#:n tapoja käsitellä tapahtumia. Numeron parsimisen merkkijonosta voi tehdä esimerkiksi Int32.Parse -metodilla.

2. Remoting

2.
Toteuta remoting ( http://www.mit.jyu.fi/vesal/kurssit/winohj/csharp/seminaari05/remoting/) esimerkin pohjalta etälaskin joka siirtää "raskaan" laskutyön palvelimelle
Ohje:
*
Toteuta ContextBoundObjectista peritty Laskin luokka ja sille esimerkiksi metodi summaa
*
Käännä Laskin dll:ksi (komentoriviltä "csc /t:library Laskin.cs")
*
Toteuta Laskupalvelin luokka joka rekisteröi tcp portin 50000 ja julkaisee etäobjektin
*
Käännä laskupalvelin komentoriviltä csc /r:Laskin.dll Laskupalvelin.cs (tai lisää Laskin.dll projektiin)
*
Toteuta LaskinAsiakas joka käyttää Laskupalvelinta. Kääntäminen kuten edellä

3. Kompleksiluku

3.
Toteuta luokka Kompleksiluku (luku jossa on kokonaisluvut reaaliosalle ja imaginääriosalle) jota voi käyttää seuraavasti:
	public static void Main() 
	{
		Kompleksiluku eka = new Kompleksiluku( 2, 3 );
		Kompleksiluku toka = new Kompleksiluku( 3, 4 );
	
		Kompleksiluku sum = eka + toka;
	
		Console.WriteLine( "Ensimmäinen kompleksiluku: {0}", eka );
		Console.WriteLine( "Toinen kompleksiluku: {0}", toka );
		Console.WriteLine( "Lukujen summa: {0}", sum );
	}
Vihje: Ylikuormita yhteenlaskuoperaattori
	public static Kompleksiluku operator + ( Kompleksiluku a, Kompleksiluku b )
ja ylikirjoita ToString -metodi

4. Palaute

4.
Anna palautetta ( https://korppi.jyu.fi/kotka/r.jsp?questionnaireid=481) seminaarista

5. Kuuntelija

5.
Jos jää aikaa ja mielenkiintoa, lisää luennolla olleeseen esimerkkiin tapahtuma siitä kun kahta kirjaa verrataan keskenään, ja toteuta sille ainakin yksi kuuntelija. Tulosta kuuntelijassa vertailtavat kirjat konsoliin. Vihje: static event




Last update: ti 15.11.2005 13:19