Advertisement
GraionDilach

Müvelet + Müv2 = Haywire

Mar 7th, 2012
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.60 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication4
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             bool ell;
  13.             double a, b;
  14.             char note;
  15.  
  16.             do
  17.             {
  18.                 Console.WriteLine("Kérem az első számot:");
  19.                 ell = double.TryParse(Console.ReadLine(), out a);
  20.             } while (!ell);
  21.  
  22.             do
  23.             {
  24.                 Console.WriteLine("Kérem a műveleti jelet:");
  25.                 ConsoleKeyInfo Szvatopluk = new ConsoleKeyInfo();
  26.                 Szvatopluk = Console.ReadKey();
  27.                 note = Szvatopluk.KeyChar;
  28.                 Console.WriteLine();
  29.  
  30.             } while (!(note == '+' || note == '-' || note == '*' || note == '/' || note == '=' || note == '%'));
  31.  
  32.  
  33.             do
  34.             {
  35.                 Console.WriteLine("Kérem a második számot:");
  36.                 ell = double.TryParse(Console.ReadLine(), out b);
  37.             } while (!ell || (b == 0 && note == '/'));
  38.  
  39.             Muvelet ActualMuvelet = new Muvelet2(a, b, note);
  40.             Muvelet2 ActualMuvelet2 = new Muvelet2(a, b, note);
  41.  
  42.             //Muvelet2 konstruktora Muveletté inicializálja az objektumot,
  43.             //ErrorIDzik a közepekre
  44.             //newt betéve Muv2-be még mindig semmi
  45.             //virtual-override kombónál Müv2 konstruktorral függvénye kerül be a Müv1-be is!!!
  46.             //anélkül meg Müv2-ben is Müv1 Számolja, még newwal is, lolwtf?!
  47.  
  48.             //Dióhéjban: Ha Müv2ben felüldefiniálni akarom Müv1et, akkor ahhoz kell a virtual-override kombó, mert new nem szeret
  49.            
  50.             //ActualMuvelet.SzamolKiir();
  51.            
  52.             //Öröklődő függvényt idősebb elem nem hívhat, IntelliSense szerint
  53.  
  54.             ActualMuvelet.Szamol();
  55.             ActualMuvelet.Kiir();
  56.  
  57.             GimmeMuvelet(ActualMuvelet);
  58.             GimmeMuvelet(ActualMuvelet2);
  59.  
  60.         }
  61.         static void GimmeMuvelet( Muvelet ImAMuvelet){
  62.             ImAMuvelet.Szamol();
  63.             ImAMuvelet.Kiir();
  64.         }
  65.     }
  66.     class Muvelet
  67.     {
  68.         public Muvelet(){}
  69.         public Muvelet(double X, double Y, char Muv){
  70.             this.X = X; this.Y = Y; this.Muv = Muv;
  71.         }
  72.  
  73.         protected double x;
  74.         protected double y;
  75.         protected double eredmeny;
  76.         protected char muv;
  77.  
  78.         public double Eredmeny
  79.         {
  80.             set { this.eredmeny = value; }
  81.             get { return eredmeny; }
  82.         }
  83.  
  84.         public double X
  85.         {
  86.             set { this.x = value; }
  87.             get { return x; }
  88.         }
  89.  
  90.         public double Y
  91.         {
  92.             set { this.y = value; }
  93.             get { return y; }
  94.         }
  95.  
  96.         public char Muv
  97.         {
  98.             set { this.muv = value; }
  99.             get { return muv; }
  100.         }
  101.  
  102.         //virtual public void Szamol()
  103.         public void Szamol()
  104.         {
  105.             switch (muv)
  106.             {
  107.                 case '+':
  108.                     eredmeny = X + Y;
  109.                     break;
  110.                 case '-':
  111.                     eredmeny = X - Y;
  112.                     break;
  113.                 case '*':
  114.                     eredmeny = X * Y;
  115.                     break;
  116.                 case '/':
  117.                     eredmeny = X / Y;
  118.                     break;
  119.                 default:
  120.                     Console.WriteLine("ErrorID = 0");
  121.                     break;
  122.             }
  123.         }
  124.         public void Kiir()
  125.         {
  126.             Console.WriteLine("Az eredmeny: " + Eredmeny);
  127.         }
  128.  
  129.     }
  130.     class Muvelet2 : Muvelet
  131.     {
  132.         public Muvelet2(double X, double Y, char Muv): base (X,Y,Muv){}
  133.         //override public void Szamol()
  134.         new public void  Szamol()
  135.         {
  136.             switch (muv)
  137.             {
  138.                 case '+':
  139.                     eredmeny = X + Y;
  140.                     break;
  141.                 case '-':
  142.                     eredmeny = X - Y;
  143.                     break;
  144.                 case '*':
  145.                     eredmeny = X * Y;
  146.                     break;
  147.                 case '/':
  148.                     eredmeny = X / Y;
  149.                     break;
  150.                 case '=':
  151.                     eredmeny = (X + Y) / 2;
  152.                     break;
  153.                 case '%':
  154.                     eredmeny = Math.Sqrt(X * Y);
  155.                     break;
  156.             }
  157.         }
  158.         public void SzamolKiir()
  159.         {
  160.             Szamol();
  161.             Kiir();
  162.         }
  163.     }
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement