Untitled

By Torrid Zebra, 6 Years ago (2013-02-28 14:57:29), written in Plain Text, viewed 397 times.
URL https://paste.godclan.hu/view/nclrBWPH Embed
Download Paste or View RawExpand paste to full width of browser
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9.     #region
  10. #if a
  11.     interface ISzines
  12.     {
  13.         string Szin { get; }
  14.     }
  15.     interface IAtSzinezheto : ISzines
  16.     {
  17.         void AtSzinez(string s);
  18.     }
  19.  
  20.     class Motor : ISzines
  21.     {
  22.         public enum MotorGyarto {
  23.             Kawasaki, Honda
  24.         };
  25.         MotorGyarto gyarto;
  26.         public virtual string Szin {
  27.             get {
  28.                 switch (gyarto)
  29.                 {
  30.                     case MotorGyarto.Honda:
  31.                         return "piros";
  32.                     case MotorGyarto.Kawasaki:
  33.                         return "zold";
  34.                     default:
  35.                         return "fhjkgk";
  36.                 }
  37.             }
  38.         }
  39.         public Motor(MotorGyarto g)
  40.         {
  41.             gyarto = g;
  42.         }
  43.  
  44.     }
  45.  
  46.     class TorottMotor : Motor, IAtSzinezheto
  47.     {
  48.         string szin;
  49.         public override string Szin
  50.         {
  51.             get
  52.             {
  53.                 return szin;
  54.             }
  55.         }
  56.         public TorottMotor(MotorGyarto g) : base(g)
  57.         {
  58.             szin = base.Szin;
  59.         }
  60.         public void AtSzinez(string ujszin)
  61.         {
  62.             szin = ujszin;
  63.         }
  64.     }
  65.  
  66.     #region
  67. #if kutya
  68.     class Kutya : IComparable
  69.     {
  70.         double suly;
  71.         public Kutya(double suly)
  72.         {
  73.             this.suly = suly;
  74.         }
  75.         static Random r = new Random();
  76.         public int CompareTo(object obj)
  77.         {
  78.             Kutya k = obj as Kutya;
  79.             if (k == null) throw new ArgumentException("nemkutya");
  80.             //return (k.suly == this.suly) ? 0 : (this.suly < k.suly) ? -1 : 1;
  81.             return r.Next(3) - 1;
  82.         }
  83.         public override string ToString()
  84.         {
  85.             return string.Format("{0} kilos kutya", suly);
  86.         }
  87.     }
  88. #endif
  89.     #endregion
  90.     class Program
  91.     {
  92.         static void Main(string[] args)
  93.         {
  94.     #region
  95. #if kutya
  96.             Random r = new Random();
  97.             Kutya[] kutyak = new Kutya[20];
  98.             for (int i = 0; i < kutyak.Length; i++)
  99.                 kutyak[i] = new Kutya(/*r.Next(60)*/ i+1);
  100.             foreach (Kutya k in kutyak)
  101.                 Console.WriteLine(k);
  102.             Array.Sort(kutyak);
  103.             Console.WriteLine("rendezes utan:");
  104.             foreach(Kutya k in kutyak)
  105.                 Console.WriteLine(k);
  106. #endif
  107.             #endregion
  108.             TorottMotor m = new TorottMotor(Motor.MotorGyarto.Honda);
  109.             Console.WriteLine(m.Szin);
  110.             m.AtSzinez("zod");
  111.             Console.WriteLine(m.Szin);
  112.             Console.WriteLine((m as Motor).Szin);
  113.         }
  114.     }
  115. #endif
  116.     #endregion
  117.     interface IEladhato
  118.     {
  119.         int Ar { get; }
  120.     }
  121.     interface IKarbantartando
  122.     {
  123.         bool KarbantartasSzukseges();
  124.         string Karbantartas();
  125.     }
  126.     interface IVisszavalthato : IEladhato
  127.     {
  128.         int VisszavaltasiErteke(int elteltNapokSzama);
  129.     }
  130.     abstract class Termek : IEladhato
  131.     {
  132.         private string nev;
  133.  
  134.         public string Nev
  135.         {
  136.             get { return nev; }
  137.             set { nev = value; }
  138.         }
  139.         abstract public int Ar { get; }
  140.         public Termek(string nev)
  141.         {
  142.             this.nev = nev;
  143.         }
  144.     }
  145.  
  146.     class Cipo : Termek, IVisszavalthato
  147.     {
  148.         int meret;
  149.         public override int Ar
  150.         {
  151.             get
  152.             {
  153.                 return meret >= 40 ? 15000 : 14000;
  154.             }
  155.         }
  156.         public Cipo(int meret) : base("cipő")
  157.         {
  158.             this.meret = meret;
  159.         }
  160.  
  161.         public int VisszavaltasiErteke(int elteltNapokSzama)
  162.         {
  163.             if (elteltNapokSzama >= 50)
  164.                 return 0;
  165.             return (int)(Ar * (elteltNapokSzama / 50.0));
  166.         }
  167.     }
  168.  
  169.     class Virag : Termek, IKarbantartando
  170.     {
  171.         int kor;
  172.         int karbantartasSzamlalo;
  173.         public override int Ar
  174.         {
  175.             get
  176.             {
  177.                 return 1000 + kor * 2;
  178.             }
  179.         }
  180.         public Virag(int kor) : base("virág")
  181.         {
  182.             this.kor = kor;
  183.             karbantartasSzamlalo = 0;
  184.         }
  185.         public bool KarbantartasSzukseges()
  186.         {
  187.             if(karbantartasSzamlalo >= 2)
  188.             {
  189.                 return true;
  190.             }
  191.             karbantartasSzamlalo++;
  192.             return false;
  193.         }
  194.         public string Karbantartas()
  195.         {
  196.             karbantartasSzamlalo = 0;
  197.             return "Öntözés";
  198.         }
  199.     }
  200.  
  201.     class VasarlasiUtalvany : IEladhato, IVisszavalthato
  202.     {
  203.         public int Ar
  204.         {
  205.             get { return 1000; }
  206.         }
  207.  
  208.         public int VisszavaltasiErteke(int elteltNapokSzama)
  209.         {
  210.             return 1000;
  211.         }
  212.     }
  213.  
  214.     class Huto : IKarbantartando
  215.     {
  216.  
  217.         public bool KarbantartasSzukseges()
  218.         {
  219.             return true;
  220.         }
  221.  
  222.         public string Karbantartas()
  223.         {
  224.             return "Tisztítás";
  225.         }
  226.     }
  227.  
  228.     class EladoModul
  229.     {
  230.         IEladhato[] termekek;
  231.         int szabadID;
  232.         public EladoModul(int maxdarab)
  233.         {
  234.             termekek = new IEladhato[maxdarab];
  235.             szabadID = 0;
  236.         }
  237.  
  238.         public void UjTermekFelvetele(IEladhato termek)
  239.         {
  240.             if (szabadID >= termekek.Length)
  241.                 Array.Resize(ref termekek, termekek.Length * 2);
  242.             termekek[szabadID++] = termek;
  243.         }
  244.         public IEladhato Legolcsobb()
  245.         {
  246.             IEladhato legolcsobb = termekek[0];
  247.             for (int i = 1; i < termekek.Length && termekek[i] != null; i++)
  248.             {
  249.                 if (legolcsobb.Ar > termekek[i].Ar)
  250.                     legolcsobb = termekek[i];
  251.             }
  252.             return legolcsobb;
  253.         }
  254.     }
  255.     class KarbantartoModul
  256.     {
  257.         IKarbantartando[] dolgok;
  258.         int szabadID;
  259.         public KarbantartoModul(int maxdarab)
  260.         {
  261.             dolgok = new IKarbantartando[maxdarab];
  262.             szabadID = 0;
  263.         }
  264.         public void UjKarbantartandoFelvetele(IKarbantartando dolog)
  265.         {
  266.             if (szabadID >= dolgok.Length)
  267.                 Array.Resize(ref dolgok, dolgok.Length * 2);
  268.             dolgok[szabadID++] = dolog;
  269.         }
  270.         public void MindenKarbantartas()
  271.         {
  272.             foreach (IKarbantartando dolog in dolgok)
  273.             {
  274.                 if (dolog != null && dolog.KarbantartasSzukseges())
  275.                     Console.WriteLine(dolog.Karbantartas());
  276.             }
  277.         }
  278.     }
  279.  
  280.     class Program
  281.     {
  282.         static void Main()
  283.         {
  284.             EladoModul elado = new EladoModul(5);
  285.             KarbantartoModul karbantarto = new KarbantartoModul(5);
  286.             Virag virag1 = new Virag(20);
  287.             Virag virag2 = new Virag(60);
  288.             elado.UjTermekFelvetele(virag1);
  289.             elado.UjTermekFelvetele(virag2);
  290.             karbantarto.UjKarbantartandoFelvetele(virag1);
  291.             karbantarto.UjKarbantartandoFelvetele(virag2);
  292.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  293.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  294.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  295.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  296.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  297.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  298.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  299.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  300.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  301.             karbantarto.UjKarbantartandoFelvetele(new Huto());
  302.             Cipo c1, c2;
  303.             elado.UjTermekFelvetele(new Cipo(30));
  304.             elado.UjTermekFelvetele(c1 = new Cipo(45));
  305.             elado.UjTermekFelvetele(c2 = new Cipo(38));
  306.             Console.WriteLine(c1.Ar);
  307.             Console.WriteLine(c2.Ar);
  308.             int n = 0;
  309.             for (; ; )
  310.             {
  311.                 Thread.Sleep(500);
  312.                 Console.WriteLine("{0}. karbantartas:", ++n);
  313.                 karbantarto.MindenKarbantartas();
  314.                 Console.WriteLine();
  315.             }
  316.         }
  317.     }
  318. }
  319.  

Reply to "Untitled"

Here you can reply to the paste above