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

работа с классами и наследование в С#

15.04.2010, 23:46. Показов 2484. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят,не нашел подходящей темы.... нужна помощь в решении задачи... на С# я чето вошел в ступор....был бы признателен за помощь вот условие:
_______________________________
Разработать приложение для вычисления результирующей информации об объектах, описанных с помощью наследования:
базовый объект – “Сетевое напряжение” (Поля: напряжение – U, колич-во фаз - faza)
производный объект 1 – “Электроустановка на 220 V”. (Поля: тип электроустановки – type, мощность - wt.)
производный объект 2 – “трехфазная электроустановка на 360 V”. (Поля: тип электроустановки – type, сопротивление – R, потребляемый ток – amp)
Требуется.
а). Определить базовый класс и производные классы, используя наследование.
б). Используя виртуальный метод печати базового класса, разработать переопределенные методы производных классов для вывода результирующей информации из перечня:
тип электроустановки,
сопротивление R=U/I
потребляемый ток I=U/R,
мощность W=I*U.
в). Создать массив для хранения ссылок на объекты, следующие в произвольном порядке. Всю необходимую информацию вводит пользователь.
г). Создать объекты, присвоив начальные значения полям объекта с помощью конструктора.
д). Используя массив ссылок и цикл, вывести результирующую информацию (см. требование б).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.04.2010, 23:46
Ответы с готовыми решениями:

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

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

Задача с классами (наследование)
С помощью механизма композиции создать классы, поля данных которых являются объектами других классов. Изобразить объекты этих классов....

4
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
16.04.2010, 00:05
Из-за чего именно ступор?
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 5
16.04.2010, 00:25  [ТС]
вот прога,которую я написал,по этому поводу я немогу понять,как выполнить пункт д. и хотел бы у опытных спросить,правильно ли я выполнил остальные пункты: Собственно я новичек в C#...

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
141
142
143
144
145
146
147
148
149
150
151
152
153
namespace ConsoleApplication1
{
    class Program
    {
 
        static void Main(string[] args)
        {
            сетевое_напряжние сет;
            Электроустановка_на_220_V эл1;
            ConsoleKeyInfo key = new ConsoleKeyInfo();
            трехфазная_электроустановка_на_360_V эл2;
            ArrayList list = new ArrayList();
            uint U,I;
            string str,type,эл12;
            int n;
            uint faza,wt,R,amp;
 
            do
            {
                while (true)
                {
                    Console.Write("Введите напряжение ");
                    Console.WriteLine();
                    try
                    {
                        str = Console.ReadLine();
                        U = uint.Parse(str);
                        Console.WriteLine();
                    }
                    catch
                    {
 
 
 
                        Console.WriteLine("Некорректно введён напряжение!");
                        continue;
 
 
                    }
                    break;
 
                }
 
 
                Console.Write("Введите тип: ");
                Console.WriteLine();
                type = Console.ReadLine();
                Console.WriteLine();
 
 
                while (true)
                {
                    Console.Write("Введите кол-во фаз ");
                    Console.WriteLine();
                    try
                    {
                        str = Console.ReadLine();
                        faza = uint.Parse(str);
                        Console.WriteLine();
                    }
                    catch
                    {
 
 
 
                        Console.WriteLine("Некорректно введёно кол-во фаз!");
                        continue;
                    }
                    break;
                }
                while (true)
                {
                    Console.Write("Введите мощность");
                    Console.WriteLine();
                    try
                    {
                        str = Console.ReadLine();
                        wt = uint.Parse(str);
                        Console.WriteLine();
                    }
                    catch
                    {
 
 
 
                        Console.WriteLine("Некорректно введёна мощность!");
                        continue;
                    }
                    break;
                }
                while (true)
                {
                    Console.Write("Введите сопротивление");
                    Console.WriteLine();
                    try
                    {
                        str = Console.ReadLine();
                        R = uint.Parse(str);
                        Console.WriteLine();
                    }
                    catch
                    {
 
 
 
                        Console.WriteLine("Некорректно введёно Сопротивление!");
                        continue;
                    }
                    break;
                }
                         while (true)
                {
                    Console.Write("Введите силу тока");
                    Console.WriteLine();
                    try
                    {
                        str = Console.ReadLine();
                        amp = uint.Parse(str);
                        Console.WriteLine();
                    }
                    catch
                    {
 
 
 
                        Console.WriteLine("Некорректно введёна сила тока!");
                        continue;
                    }
                    break;
                }
            }
            while (key.Key == ConsoleKey.A);
            сет = new сетевое_напряжние(U, faza);
            эл1 = new Электроустановка_на_220_V(U, faza, wt, type,I);
            эл2 = new трехфазная_электроустановка_на_360_V(type, R, U, faza, amp);
            сетевое_напряжние  baseOb = new сетевое_напряжние (U,faza);
            baseOb.who();
            Электроустановка_на_220_V dObl = new Электроустановка_на_220_V(U, faza, wt, type,I);
            dObl.who();
            трехфазная_электроустановка_на_360_V dOb2 = new трехфазная_электроустановка_на_360_V(type,R,U,faza,amp);
            dOb2.who();
 
            
           
            
 
            
            Console.WriteLine("Продолжить?\n\'A\'-да\nлюбая другая клавиша-выход");
            key = Console.ReadKey(true);
            Console.WriteLine();
        }
    }
    }
Базовый класс
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
 class сетевое_напряжние
    {
        protected uint U;
        protected uint faza;
        public сетевое_напряжние(uint U, uint faza)
        {
            this.U = U;
            this.faza = faza;
        }
        public uint напряжение
        {
            set
            {
 
                if (value < 0)
                {
                    Console.WriteLine("Ошибка");
                }
                else
                {
                    U = value;
                }
            }
            get
            {
                return U;
            }
            
        }
 
        public uint фаза
        {
            set
            {
 
                if (value < 0)
                {
                    Console.WriteLine("Ошибка");
                }
                else
                {
                    faza = value;
                }
            }
            get
            {
                return faza;
            }
        }
        
 
        public virtual void who()
        {
            Console.WriteLine("напряжение"+"    "+U + "фазы"+"   "+ faza);
        }
    }

1й произвольный
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
 class Электроустановка_на_220_V : сетевое_напряжние
    {
        public uint wt;
        public uint I;
        public string type;
 
        public Электроустановка_на_220_V(uint U, uint faza, uint wt, string type,uint I)
            : base(U, faza)
        {
            this.U = U;
            this.faza = faza;
            this.wt = wt;
            this.type = type;
            I = wt / U;
        }
        public uint мощность
        {
            set
            {
 
                if (wt < 0)
                {
                    Console.WriteLine("Ошибка");
                }
                else
                {
                    мощность = wt;
                }
               
            }
 
        }
        public string тип
        {
            set
            {
 
              
                    тип = type;
                }
            }
       
        public override void who()
        {
            Console.WriteLine("мощность"+"   "+ wt +  "тип"+ "    "+ type+ "   "+ "тока"+ I);
        }
    }
2ой произвольный
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
class трехфазная_электроустановка_на_360_V : сетевое_напряжние
    {
        public string type;
        public uint R;
        public uint amp;
 
        public трехфазная_электроустановка_на_360_V(string type, uint R, uint U, uint faza, uint amp)
            : base(U, faza)
        {
            this.U = U;
            this.R = R;
            this.faza = faza;
            this.type = type;
            this.amp = amp;
        }
        public uint сопротивление
        {
            set
            {
                if (R < 0)
                {
                    Console.WriteLine("Ошибка");
                }
                else
                {
                    сопротивление = R;
                }
            }
        }
 
        
        public override void who()
        {
            Console.WriteLine("сопротивлене"+"   "+ R + "тип"+"    "+ type);
        }
    }
0
Tamirlan
16.04.2010, 22:35
Хм, любопытно, ошибок конечно много, я тут сам пробовал написать эту прогу, но не получается вывести результирующую информацию при помощи массивов и ссылок.Я на C# уже 3 года, но вот эту задачу не знаю как решать, видимо я не такой профи.
 Аватар для kuroiryuu
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
17.04.2010, 11:31
как сам понял из задания:
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;
using System.Collections.Generic;
using System.Text;
 
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            List<object> obj = new List<object>(); //массив ссылок
 
            do
            {
                Console.Write("Выберите тип электрооборудования (двухфазный(1)/трёхфазный(2)): ");
                uint n = Convert.ToUInt32(Console.ReadLine());
                switch (n)
                {
                    case 1:
                        obj.Add(new ElectricalInstallation220(TypeElectricalInstallation.two_phase, 1000));
                        break;
                    case 2:
                        obj.Add(new ElectricalInstallation360(TypeElectricalInstallation.three_phase, 260, 4));
                        break;
                }
                Console.WriteLine("Желаете повторить ввод [Y/N]?");
            }while(Console.ReadLine().CompareTo("Y") == 0);
 
            for (int i = 0; i < obj.Count; i++)
            {
                if (obj[i] is ElectricalInstallation220)
                    Console.WriteLine((obj[i] as ElectricalInstallation220).ToText());
                if (obj[i] is ElectricalInstallation360)
                    Console.WriteLine((obj[i] as ElectricalInstallation360).ToText());
            }
        }
    }
    public enum TypeElectricalInstallation { two_phase = 2, three_phase = 3 };
 
    public class MainsVoltage
    {
        uint _voltage;
        uint _phase;
 
        public MainsVoltage(uint voltage, uint phase)
        {
            _voltage = voltage;
            _phase = phase;
        }
 
        public uint Voltage
        {
            get { return _voltage; }
        }
 
        public uint Phase
        {
            get { return _phase; }
        }
 
        public virtual string ToText()
        {
            return string.Format("Напряжение:{0}\nКоличество фаз:{1}", _voltage, _phase);
        }
    }
 
    public class ElectricalInstallation220 : MainsVoltage
    {
        uint _power;
        TypeElectricalInstallation _type;
 
        public ElectricalInstallation220(TypeElectricalInstallation type, uint power)
            : base(220, (uint)type)
        {
            _power = power;
            _type = type;
        }
 
        public uint Power
        {
            get { return _power; }
        }
 
        public TypeElectricalInstallation Type
        {
            get { return _type; }
        }
 
        public override string ToText()
        {
            StringBuilder sb = new StringBuilder("--------------------\n");
            sb.Append(base.ToText());
            uint amperage = _power / base.Voltage;
            uint resistance = base.Voltage / amperage;
            sb.AppendFormat("\nСила тока: {0}\nСопротивление: {1}\nМощность: {2}", amperage, resistance, _power);
            sb.Append("\n--------------------\n");
            return sb.ToString();
        }
    }
 
    public class ElectricalInstallation360 : MainsVoltage
    {
        uint _resistance;
        uint _amperage;
        TypeElectricalInstallation _type;
 
        public ElectricalInstallation360(TypeElectricalInstallation type, uint resistance, uint amperage)
            : base(360, (uint)type)
        {
            _resistance = resistance;
            _amperage = amperage;
            _type = type;
        }
 
        public uint Amperage
        {
            get { return _amperage; }
        }
 
        public uint Resistance
        {
            get { return _resistance; }
        }
 
        public TypeElectricalInstallation Type
        {
            get { return _type; }
        }
 
        public override string ToText()
        {
            StringBuilder sb = new StringBuilder("--------------------\n");
            sb.Append(base.ToText());
            uint power = _amperage * base.Voltage;
            sb.AppendFormat("\nСила тока: {0}\nСопротивление: {1}\nМощность: {2}", _amperage, _resistance, power);
            sb.Append("\n--------------------\n");
            return sb.ToString();
        }
    }
}
если это то что нужно, то систему ввода данных сами доделаете...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.04.2010, 11:31
Помогаю со студенческими работами здесь

PHP. OOP. Как реализовать комбинацию, ассоциацию и наследование между классами?
Разбираюсь с реализацией отношений между классами, подскажите пожалуйста на примере, как реализовать отношения по такой схеме ...

Работа с классами
Добрый день! Я столкнулся с проблемой которую не могу решить.Суть проблемы заключается в том что в классе Interface реализуется некая...

Работа с классами
Имеется заголовочный файл В нем создаю два класса Vector и MyCamera. class Vector { public: float x,y,z; }; ...

Работа с классами
Есть два класса визуально готовы как на картинке. Нужно написать третий который проверяет такие условия: 1. Если кандидат с опытом...

Работа с классами
Нам задали по программированию задание (во вложении Лабораторная работа 1_2) Решение ЛР3 и ЛР4 есть в ОтчетЛР3 и ОтчетЛР4 соответственно....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru