Spis treści

C# - Ćwiczenia

Dziedziczenie

public class A 
{
   public int a;
   protected void F();
   private int x;
}
 
public class B : A 
{
   public int b;
}

Metody wirtualne

public class Pojazd 
{
   public virtual void Ruszaj() {...}
}
 
public class Rower : Pojazd 
{
   public override void Ruszaj() {...}
}
 
public class Auto : Pojazd 
{
   public override void Ruszaj() {...}
}

Metody i klasy abstrakcyjne

public abstract class Pojazd 
{
   public abstract void Ruszaj();
}
public class Rower : Pojazd 
{
   public override void Ruszaj() {...}
}
 
public class Auto : Pojazd 
{
   public override void Ruszaj() {...}
}

Interfejsy

public interface IPojazd 
{
   void Ruszaj();
}
 
public class Rower : IPojazd 
{
   void Ruszaj() {...}
}
 
public class Auto : IPojazd 
{
   void Ruszaj() {...}
}

Przeciążanie metod i operatorów

using System;
 
public struct Complex 
{
   public int real;
   public int imaginary;
 
   public Complex(int real, int imaginary) 
   {
      this.real = real;
      this.imaginary = imaginary;
   }
 
   public static Complex operator +(Complex c1, Complex c2) 
   {
      return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
   }
   public override string ToString()
   {
      return(String.Format("{0} + {1}i", real, imaginary));
   }
}

Zadanie: Firma

Utwórz podstawy systemu zarządzania pracownikami w pewnej firmie. Zaimplementuj klasę reprezentującą pracownika.
Każdy pracownik opisany jest właściwościami:

Klasa reprezentująca pracownika udostępnia operacje:

Każdy kontrakt reprezentowany jest przez obiekt udostępniający publicznie następujące operacje:

Obecnie w firmie podpisywane są 2 rodzaje kontraktów: staż i etat.
Kontrakty określone są przez następujące własności:

Wysokość pensji wyznaczana jest dla każdego z tych kontaktów inaczej, odpowiednio:

Zakładamy, że w przyszłości pojawią się inne typy kontraktów różniące się sposobem naliczania wysokości pensji. Za obliczanie pensji odpowiedzialny jest obiekt klasy kontrakt, który udostępnia metodę publiczną zwracającą wysokość wynagrodzenia za pomocą metody Pensja(). Dlatego, dodanie nowego typu kontraktu sprowadza się do zaimplementowania tylko jednej klasy, bez potrzeby modyfikowania istniejących już klas.

Zadanie: Zbiór figur

Zaimplementuj klasy pozwalające reprezentować zbiór figur geometrycznych w dwu wymiarowej przestrzeni.

W układzie współrzędnych umieszczane będą następujące obiekty:

Dodatkowo:

Dla wszystkich figur umieszczanych na wykresie zdefiniuj następujące operacje:

Dla klasy określającej punkt zdefiniuj operację pozwalającą:

Dodatkowo:

Przykładowy diagram UML