Организовать множественное наследование с использованием интерфейсов - C#

Узнай цену своей работы

Формулировка задачи:

Ребят, не знаю как решить. Может кто сможет? Задание выглядит так: Доработайте программу, созданную в лабораторной работе №11.1, следующим образом: - организуйте множественное наследование с использованием интерфейсов; - добавьте как минимум еще один интерфейс; - класс/классы должны реализовывать как минимум два интерфейса. А вот решенный пример лабораторной работы №11.1
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. interface ICalculate
  7. {
  8. int Add();
  9. int Sub();
  10. int Mul();
  11. double Div();
  12. }
  13. class Calculate : ICalculate
  14. {
  15. private int a;
  16. private int b;
  17. public Calculate()
  18. {
  19. a = 0; // не обязательно
  20. b = 0; // не обязательно
  21. }
  22. public Calculate(int a, int b)
  23. {
  24. this.a = a;
  25. this.b = b;
  26. }
  27. public int Add()
  28. { return a + b; }
  29. public int Sub()
  30. { return a - b; }
  31. public int Mul()
  32. { return a * b; }
  33. public double Div()
  34. { return b == 0 ? 0 : (double)a / b; }
  35. // Метод, не являющийся частью интерфейса
  36. public int Pow()
  37. { return (int)Math.Pow(a, b); }
  38. public int getA()
  39. { return a; }
  40. public int getB()
  41. { return b; }
  42. }
  43. class A
  44. {
  45. static void Main()
  46. {
  47. Console.WriteLine("Введите a");
  48. int a = Convert.ToInt32(Console.ReadLine());
  49. Console.WriteLine("Введите b");
  50. int b = Convert.ToInt32(Console.ReadLine());
  51. Calculate obj1 = new Calculate(a, b);
  52. Calculate obj2 = new Calculate(a, b);
  53. Console.WriteLine("{0} + {1} = {2}", obj1.getA(), obj1.getB(), obj1.Add());
  54. Console.WriteLine("{0} - {1} = {2}", obj1.getA(), obj1.getB(), obj1.Sub());
  55. Console.WriteLine("{0} * {1} = {2}", obj2.getA(), obj2.getB(), obj2.Mul());
  56. Console.WriteLine("{0} / {1} = {2}", obj2.getA(), obj2.getB(), obj2.Div());
  57. Console.ReadKey(true);
  58. }
  59. }

Решение задачи: «Организовать множественное наследование с использованием интерфейсов»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication3
  8. {
  9.     interface IRadical
  10.     {
  11.         double Radical();
  12.     }
  13.  
  14.     interface ISquare
  15.     {
  16.         int Square();
  17.     }
  18.     interface ICalculate: IRadical,ISquare
  19.     {
  20.         int Add();
  21.         int Sub();
  22.         int Mul();
  23.         double Div();
  24.     }
  25.  
  26.     class Calculate : ICalculate
  27.     {
  28.         private int a;
  29.         private int b;
  30.  
  31.         public Calculate()
  32.         {
  33.             a = 0;      
  34.             b = 0;      
  35.         }
  36.  
  37.         public Calculate(int a, int b)
  38.         {
  39.             this.a = a;
  40.             this.b = b;
  41.         }
  42.  
  43.         public int Add()
  44.         { return a + b; }
  45.  
  46.         public int Sub()
  47.         { return a - b; }
  48.  
  49.         public int Mul()
  50.         { return a * b; }
  51.  
  52.         public double Div()
  53.         { return b == 0 ? 0 : (double)a / b; }
  54.  
  55.         public double Radical()
  56.         {
  57.             return Math.Sqrt(a+b);
  58.         }
  59.         public int Square()
  60.         {
  61.             return (int)Math.Pow(a, b);
  62.         }
  63.         // Метод, не являющийся частью интерфейса
  64.         public int Pow()
  65.         { return (int)Math.Pow(a, b); }
  66.  
  67.         public int GetA()
  68.         { return a; }
  69.  
  70.         public int GetB()
  71.         { return b; }
  72.        
  73.     }
  74.  
  75.     class A
  76.     {
  77.         static void Main()
  78.         {
  79.             Console.Write("Введите a:");
  80.             int a = Convert.ToInt32(Console.ReadLine());
  81.             Console.Write("Введите b:");
  82.             int b = Convert.ToInt32(Console.ReadLine());
  83.             Calculate obj1 = new Calculate(a, b);
  84.             Calculate obj2 = new Calculate(a, b);
  85.             Console.WriteLine("{0} + {1} = {2}", obj1.GetA(), obj1.GetB(), obj1.Add());
  86.             Console.WriteLine("{0} - {1} = {2}", obj1.GetA(), obj1.GetB(), obj1.Sub());
  87.             Console.WriteLine("{0} * {1} = {2}", obj2.GetA(), obj2.GetB(), obj2.Mul());
  88.             Console.WriteLine("{0} / {1} = {2}", obj2.GetA(), obj2.GetB(), obj2.Div());
  89.             Console.WriteLine("({0} + {1})^0.5 = {2}", obj2.GetA(), obj2.GetB(), obj2.Radical());
  90.             Console.WriteLine("{0} ^ {1} = {2}", obj2.GetA(), obj2.GetB(), obj2.Square());
  91.             Console.ReadKey(true);
  92.         }
  93.     }
  94. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы