Advertisement
Guest User

Untitled

a guest
May 4th, 2015
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.72 KB | None | 0 0
  1. // Generika IMyStack
  2. namespace pj2_2015_cv1_v3
  3. {
  4.     public interface IMyStack<T>
  5.     {
  6.         T Pop();
  7.         void Push(T v);
  8.         bool IsFull();
  9.         bool IsEmpty();
  10.         void Print();
  11.         T[] Items { get; }
  12.     }
  13. }
  14.  
  15.  
  16. // Generika MyStack
  17. namespace pj2_2015_cv1_v3
  18. {
  19.     public class MyStack<T> : IMyStack<T>
  20.     {
  21.         private T[] elements;
  22.         private int top;
  23.         public MyStack(int size)
  24.         {
  25.             elements = new T[size];
  26.             top = 0;
  27.         }
  28.  
  29.         public T Pop()
  30.         {
  31.             if (IsEmpty())
  32.             {
  33.                 throw new StackEmptyException(elements.Length, top);
  34.             }
  35.             top--;
  36.             T ret = elements[top];
  37.             elements[top] = default(T);
  38.             return ret;
  39.         }
  40.  
  41.         public void Push(T v)
  42.         {
  43.             if (IsFull())
  44.             {
  45.                 throw new StackFullException(elements.Length, top);
  46.             }
  47.             elements[top] = v;
  48.             top++;
  49.         }
  50.  
  51.         public bool IsFull()
  52.         {
  53.             return top >= elements.Length;
  54.         }
  55.  
  56.         public bool IsEmpty()
  57.         {
  58.             return top == 0;
  59.         }
  60. }
  61.  
  62. // Vyjimka
  63. namespace pj2_2015_cv2_StackLib_v3
  64. {
  65.     public class StackEmptyException : ApplicationException
  66.     {
  67.         private int size;
  68.         public int Top { get; private set; }
  69.         public StackEmptyException(int size, int top) :
  70.             base(String.Format("Zasobnik je prazdny! Velikost:{0}, vrchol: {1}", size, top))
  71.         {
  72.             this.size = size;
  73.             Top = top;
  74.         }
  75.     }
  76. }
  77.  
  78. // Použití vyjimky
  79. public void Push(T v)
  80.         {
  81.             if (IsFull())
  82.             {
  83.                 throw new StackFullException(elements.Length, top);
  84.             }
  85.             elements[top] = v;
  86.             top++;
  87.         }
  88.  
  89. // použítí Delegáta pro změnu formátu jména
  90. namespace pj2_2015_cv5_v2_Kompozit
  91. {
  92.     public delegate String FormatName(String name);
  93.     public interface IPrvek
  94.     {
  95.         void Tisk(int hloubka, FormatName nameFormatter); //jako eventa!!!!
  96.         void Add(IPrvek prvek);
  97.         void Remove(IPrvek prvek);
  98.         void Sort();
  99.         String GetStringForSort();
  100.     }
  101. }
  102. // metoda ve třídě Kontakt
  103. public void Tisk(int hloubka, FormatName nameFormatter)
  104.         {
  105.             for (int i = 0; i < hloubka; i++)
  106.             {
  107.                 Console.Write("  ");
  108.             }
  109.             Console.WriteLine("Kontakt {0} {2}, {1}", nameFormatter(Jmeno), Adresa, Telefon);
  110.         }
  111.  
  112. // v Mainu pak jen
  113.  root.Tisk(0, BigName);
  114. // + ještě metoda
  115.  public static String BigName(String name)
  116.         {
  117.             return name.ToUpper();
  118.         }
  119.  
  120. // Delegát s eventou
  121. public delegate void Vypujceno(String name, DateTime d);
  122.     [Serializable]
  123.     public class Film:IPolozka
  124.     {
  125.         public event Vypujceno vypujceno;
  126.         private DateTime mVypujcenoDo;
  127.         public DateTime VypujcenoDo
  128.         {
  129.             get
  130.             {
  131.                 return mVypujcenoDo;
  132.             }
  133.             set
  134.             {
  135.                 mVypujcenoDo = value;
  136.                 if (vypujceno != null)
  137.                 {
  138.                     vypujceno(Nazev, mVypujcenoDo);
  139.                 }
  140.             }
  141.         }
  142. // Třída Položka, aneb volám delegáta
  143.  
  144. public void PridejPolozku(IPolozka p)
  145.         {
  146.             if (p is Film)
  147.             {
  148.                 Film f = (Film)p;
  149.                 f.vypujceno += infoVypujcky;
  150.             }
  151.             polozky.Add(p);
  152.         }
  153. public void infoVypujcky(String name, DateTime d)
  154.         {
  155.             Console.WriteLine("Info vypujcky: " + name + " " + d);
  156.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement