Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 15.10.2019
Сообщений: 67

Наследования классов

15.10.2019, 15:54. Показов 1976. Ответов 6

Студворк — интернет-сервис помощи студентам
Ребятки, кто шарит, нужна помощь. Проверить имеющийся код на ошибки и правильность по заданию. Исправить косяки, если есть и сделать вывод (класс Program).
Заранее спасибо за помощь

Задание: составить программу с одним родительским классом и двумя потомками. Потомки должны содержать виртуальные методы. Создать виртуальный метод выдачи результатов расчётов на экран монитора с указанием названий полей и их значений соответствующего объекта. При этом создать объекты базового и производных типов, используя полиморфный контейнер - массив ссылок базового класса на объекты базового и производных классов.

Данные:
Родительский класс (поля): Птица (название породы);
Потомки (поля): Аист (размах крыльев - L в см), ворона (высота - h);
Методы: Количество пищи в день (Аист L*1/2000, Ворона 0.8*h).


Имеющийся код на данный момент:
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication2
{ //Создаём родительский класс Птичка :)
class Птица
{
public string nazvanie_porody;
//тут должен быть конструктор
public Птица (string s)
{
nazvanie_porody = s;
}
public virtual void Display()
{
Console.WriteLine("Название породы птички: " + nazvanie_porody);
}
public virtual void Amount(){}
public virtual void Amount_1() { }
public virtual void Write() { }
public virtual void Write_1() { }
 
}
 
//Дочерний класс Аист
class Аист : Птица
{
public double L;
public Аист(string s) : base(s) 
{
nazvanie_porody = s; 
}
 
public override void Write()
{
Console.WriteLine("Аист: {0}", "Размах крыльев (в см): {1}", "Количество пищи, необходимое аисту: {2}", this.nazvanie_porody, L, Amount());
}
//Количество пищи в день для аиста
public virtual double Amount()
{
return L*1/2000;
}
}
//Дочерний класс Ворона
class Ворона : Птица
{
public double h;
public Ворона(string s): base (s)
{
nazvanie_porody = s;
}
 
public override void Write_1()
{
Console.WriteLine("Ворона: {0}", "Высота (в см): {1}", "Количество пищи, необходимое ворону: {2}", this.nazvanie_porody, h, Amount_1());
}
//Количество пищи в день для ворона
public virtual double Amount_1()
{
return 0.8 * h;
}
}
 
class Program
{
static void Main(string[] args)
{
Console.Write("Сколько будет аистов у нас?: ");
int Write = Convert.ToInt32(Console.ReadLine());
Console.Write("Сколько будет ворон у нас?: ");
int Write_1 = Convert.ToInt32(Console.ReadLine());
Птица[] A = new Птица[Write + Write_1];
for (int j = 0; j < Write; j++)
{
 
}
 
for (int i = 0; i < Write_1; i++)
{
 
}
Console.WriteLine("Данные о аисте: ");
A.Write();
Console.WriteLine("*********************");
Console.WriteLine("Данные о вороне: ");
A.Write_1();
Console.WriteLine("*********************");
Console.ReadKey();
}
 
}
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2019, 15:54
Ответы с готовыми решениями:

созданием объектов, классов и механизмом наследования c#
в С# Построить иерархию классов в соответствии с вариантом задания: -Журнал, книга, печатное издание, учебник.

Проблема наследования
Всем привет) Заранее спасибо за помощь. Есть класс, наследуемый от коллекции содержащий пользовательский класс. Внутри класса реализован...

использование наследования
Преподаватель одолел не могу разобраться помогите пожалуйста. С# Теория В программах требуется описать базовый класс (возможно,...

6
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
15.10.2019, 17:10
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

Здесь по заданию ни одна птица с консоли не вводится.
Цитата Сообщение от littlefoxjoelle Посмотреть сообщение
Задание: составить программу с одним родительским классом и двумя потомками. Потомки должны содержать виртуальные методы. Создать виртуальный метод выдачи результатов расчётов на экран монитора с указанием названий полей и их значений соответствующего объекта. При этом создать объекты базового и производных типов, используя полиморфный контейнер - массив ссылок базового класса на объекты базового и производных классов.
Данные:
Родительский класс (поля): Птица (название породы);
Потомки (поля): Аист (размах крыльев - L в см), ворона (высота - h);
Методы: Количество пищи в день (Аист L*1/2000, Ворона 0.8*h).
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
using System;
 
namespace Question2513547
{
    /**
     * Птица
     **/
    class Bird
    {
        public string species;
 
        public Bird()
        {
            this.species = "неизвестная птица";
        }
        protected Bird(string species)
        {
            this.species = species;
        }
        public virtual void Show()
        {
            Console.WriteLine($"Вид птицы: {species}");
        }
        public virtual double CalculateFood() => 0;
    }
 
    /**
     * Аист
     **/
    class Stork : Bird
    {
        // Размах крыльев
        public int wingspan;
 
        public Stork(int wingspan) : base("аист")
        {
            this.wingspan = wingspan;
        }
 
        public override void Show()
        {
            Console.WriteLine($"Вид птицы: {species}\nРазмах крыльев: {this.wingspan}\nКоличество пищи в день: {this.CalculateFood()}");
        }
        public override double CalculateFood() => wingspan / 2000.0;
    }
 
    /**
     * Ворона
     **/
    class Crow : Bird
    {
        // Высота
        public int height;
 
        public Crow(int height) : base("ворона")
        {
            this.height = height;
        }
 
        public override void Show()
        {
            Console.WriteLine($"Вид птицы: {species}\nВысота: {height}\nКоличество пищи в день: {this.CalculateFood()}");
        }
        public override double CalculateFood() => 0.8 * height;
    }
    class Program
    {
        static void Main(string[] args)
        {
            var array = new Bird[] { new Bird(), new Stork(200), new Crow(20) };
 
            foreach (var bird in array)
            {
                bird.Show();
            }
 
            Console.ReadKey();
        }
    }
}
1
1 / 1 / 0
Регистрация: 15.10.2019
Сообщений: 67
15.10.2019, 17:14  [ТС]
Есть вопрос по коду...
CalculateFood() => 0
Что это?
Console.WriteLine($"Вид птицы: {species}");
Зачем нам сдесь значок $?
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
15.10.2019, 17:21
Цитата Сообщение от littlefoxjoelle Посмотреть сообщение
CalculateFood() => 0
https://docs.microsoft.com/ru-... on-members
https://docs.microsoft.com/ru-... ed-members
Цитата Сообщение от littlefoxjoelle Посмотреть сообщение
Console.WriteLine($"Вид птицы: {species}");
Зачем нам сдесь значок $?
https://docs.microsoft.com/ru-... erpolation
1
1 / 1 / 0
Регистрация: 15.10.2019
Сообщений: 67
15.10.2019, 17:29  [ТС]
Спасибо. Просто мы такое ещё не проходили и могут возникнуть проблемы при сдаче программы
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
15.10.2019, 17:35
littlefoxjoelle, не возникнет.
Просто изучайте, какое новшество в какой версии появилось, и грамотно отвечайте, откуда вы взяли это новшество.
0
1 / 1 / 0
Регистрация: 15.10.2019
Сообщений: 67
15.10.2019, 17:36  [ТС]
amr-now, Благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2019, 17:36
Помогаю со студенческими работами здесь

Классы и наследования
Задание: В зависимоти от заданного дня нужно выбрать класс и вызывать статический метод получения описания того, чем студен занят в данный...

Иерархия множественного наследования и шаблон
Имеется абстрактный класс Playerpublic abstract class Player {...}от него наследую 2 класса: User и Computerpublic class User : Player...

Варианты наследования. Расход памяти
Всем доброго времени суток. Возник такой вопрос (исключительно в целях повышения самообразованности), каков расход памяти при...

Алгоритм наследования признаков в генах
Приветствую вас, форумчане! Сегодня мне стало жутко интересно посмотреть на алгоритм наследования в генах. Так как в интернете не нашел...

Entity Framework, наследования таблицы с лайками
у меня есть следующие сущности. public abstract class LikeBase { public int Id { get; set; } public User...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru