Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
NikolayStadnik
1 / 1 / 1
Регистрация: 05.10.2016
Сообщений: 49
#1

Разработка интерфейсов, использование механизма наследования интерфейсов и применение их в программах - C#

02.02.2018, 09:29. Просмотров 115. Ответов 1
Метки нет (Все метки)

Имеется код, необходимо реализовать, и протестировать эти интерфейсы IComparable (сравнимый), ICloneable (клонируемый).
Помогите пожалуйста завтра сдавать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System;
 
namespace Core
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            int n1, n2;
            Garden_Tree[] list = new Garden_Tree[6];
 
            for (int i = 0; i < 3; i++)
            {
                list[i] = new Apple();
                Console.WriteLine($"Ввод {i + 1} яблони");
                list[i].Add();
            }
            Console.WriteLine();
 
            for (int i = 3; i < 6; i++)
            {
                list[i] = new Pear();
                Console.WriteLine($"Ввод {i + 1 - 3} груши");
                list[i].Add();
            }
 
            Console.WriteLine("\nВывод всего массива");
 
            for (int i = 0; i < 6; i++)
            {
                list[i].Show();
            }
 
            Console.Write("Введите возраст = ");
            n1 = Int32.Parse(Console.ReadLine());
 
            Console.Write("Введите плодоношение = ");
            n2 = Int32.Parse(Console.ReadLine());
 
            for (int i = 0; i < 6; i++)
            {
                if (list[i].GetType() == typeof(Apple))
                {
                    ((Apple)list[i]).Peres(n1, n2);
                }
                else
                {
                    ((Pear)list[i]).Peres(n1, n2);
                }
            }
 
            Console.ReadKey();
        }
    }
 
    internal class Garden_Tree
    {
        protected int Number { get; set; }
        protected string Name { get; set; }
        protected int Adge { get; set; }
        protected int Plod { get; set; }
 
        public virtual void Add()
        {
            Console.WriteLine("Базовый метод");
        }
 
        public virtual bool IsApple()
        {
            return false;
        }
 
        public virtual void Show()
        {
            Console.WriteLine("Базовый метод");
        }
    }
 
    internal class Apple : Garden_Tree
    {
        public override void Add()
        {
            Console.Write("Введите вид Яблони: ");
            Name = Console.ReadLine();
 
            Console.Write("Введите возраст: ");
            Adge = Int32.Parse(Console.ReadLine());
 
            Console.Write("Введите количество плодов: ");
            Plod = Int32.Parse(Console.ReadLine());
        }
 
        public override void Show()
        {
            Console.WriteLine(Name);
            Console.WriteLine($"Возраст: {Adge}; Количество плодов: {Plod}");
        }
 
        public override bool IsApple()
        {
            return true;
        }
 
        public void Peres(int l, int m)
        {
            if (Adge > l && Plod < m)
            {
                Show();
            }
        }
    }
 
    internal class Pear : Garden_Tree
    {
        public override void Add()
        {
            Console.Write("Введите вид Груши: ");
            Name = Console.ReadLine();
 
            Console.Write("Введите возраст: ");
            Adge = Int32.Parse(Console.ReadLine());
 
            Console.Write("Введите количество плодов: ");
            Plod = Int32.Parse(Console.ReadLine());
        }
 
        public override void Show()
        {
            Console.WriteLine(Name);
            Console.WriteLine($"Возраст: {Adge}; Количество плодов: {Plod}");
        }
        public void Peres(int l, int m)
        {
            if (Adge > l && Plod < m)
            {
                Show();
            }
        }
    }
}
Добавлено через 1 минуту
Пропустил тему на лекции, теперь сижу ничего не понимаю. Времени вообще нету, а завтра ещё и делегаты сдавать.

Добавлено через 2 минуты
Задание с яблонями и грушами было таково: Создать базовый класс «Садовое дерево» и производные классы «Яблоня», «Вишня», «Груша» и др. С помощью конструктора автоматически установить номер каждого дерева. Принять решение о пересадке каждого дерева в зависимости от возраста и плодоношения.
Теперь нужно реализовать и протестировать интерфейсы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2018, 09:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Разработка интерфейсов, использование механизма наследования интерфейсов и применение их в программах (C#):

Непонятка наследования интерфейсов в list
Проблему лучше опишу на &quot;пальцах&quot;: Скажем есть интерфейс IMyInterface. Его...

Применение интерфейсов (нужны примеры)
Если не сложно, приведите несколько.. или хотя бы один простой пример...

Использование интерфейсов
Реализовать иерархию классов из индивидуального задания. Определить и...

Использование интерфейсов
Реализовать иерархию классов Квадрат – Треугольник. Вместо абстрактного класса...

Использование интерфейсов
Реализовать иерархию классов. Определить и использовать интерфейс IFigure...

Использование интерфейсов
Реализовать иерархию классов Фигура - Круг – Квадрат (данные-координаты)....

1
SeIZVeIZ
602 / 559 / 235
Регистрация: 08.02.2014
Сообщений: 1,714
Завершенные тесты: 3
02.02.2018, 09:42 #2
информации с примерами тьма:
раз - Реализация интерфейса IComparable
два - Клонирование объектов. Интерфейс ICloneable
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2018, 09:42
Привет! Вот еще темы с решениями:

Использование интерфейсов
Реализовать иерархию классов из индивидуального задания. Определить и...

Применение стандартных интерфейсов в собственных классах. Реализация итератора для класса. Создание клона
Помогите, пожалуйста, сделать задачу Общая постановка задачи: Каждый...

Применение стандартных интерфейсов в собственных классах. Реализация итератора для класса. Создание клона
Класс “Многочлен ax^2+bx+c”. Поля – a,b,c, а также имя многочлена и его id....

Применение стандартных интерфейсов в собственных классах. Реализация итератора для класса. Создание клона
Общая постановка задачи: Каждый разрабатываемый класс должен содержать:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru