Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.01.2022
Сообщений: 13
.NET 4.x

Описать базовый класс строка и подкласс комплексное число

19.01.2022, 15:30. Показов 524. Ответов 2

Студворк — интернет-сервис помощи студентам
Всем привет!
Такая вот лабораторная работа, нужно описать базовый класс строка и подкласс комплексное число. Преподаватель посоветовал описать "строку" через список, что я собственно и сделал. Правда с подклассом комплексное число дела плохи. В методичке написано, что строки данного класса состоят из двух полей, разделённых символом "i", + каждое поле может хранить только знаки "+ или -" и числа. Как это сделать - понятия не имею.
Если вдруг комплексное число на момент инициализации встречает другие символы, то класс должен принимать нулевое значение, с чем у меня тоже проблемы.
Ещё необходимо описать следующие методы для подкласса комплексное число:
1) проверка на равенство,
2) сложение комплексных чисел,
3) умножение комплексных чисел.

С последними двумя проблема. Как складывать или умножать объекты типа "Stroka"?? Как написать для них верные операторы сложения и умножения?
Заранее спасибо!
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ПиОА_9
{
    class Stroka
    {
        public static bool stop = false;
        List<string> str = new List<string>(10);
        public int word;
        public Stroka() { }
        public Stroka (string str_1)
        {
            str.Add(str_1);
        }
        public Stroka (char a)
        {
            str.Add(Convert.ToString(a));
        }
        public void Add() 
        {
            Console.Write("Введите строку, которую вы хотите добавить: ");
            string s = Console.ReadLine();
            str.Add(s);
        }
        public void Stroka_length()
        {
            Console.Write("Выберете строку для определения длины: ");
            int i = Convert.ToInt32(Console.ReadLine());
            this.word = str[i].Length;
            Console.WriteLine("Длина данной строки: " + word);
        }
        public void Clean()
        {
            Console.Write("Выберете строку для удаления (по индексу): ");
            int i = Convert.ToInt32(Console.ReadLine());
            str.RemoveAt(i);
            word = 0;
        }
        public void Show()
        {
            if (str.Count == 0) Console.WriteLine("Строк нет");
            else
            {
                for (int i = 0; i < str.Count; i++)
                {
                    Console.WriteLine(str[i]);
                }
            }
        }
    }
    class Complex:Stroka
    {
        public Stroka RealPart { get; set; }
        public Stroka ImaginaryPart { get; set; }
        
        public Complex(Stroka re, Stroka im)
        {
            RealPart = re;
            ImaginaryPart = im;
        }
        public static Complex operator + (Complex A, Complex B)
        {
            return int.Parse(A.RealPart) + int.Parse(B.RealPart);
        }
        public void Ravenstvo(Complex A, Complex B)
        {
            if (A.RealPart == B.RealPart && A.ImaginaryPart == B.ImaginaryPart) Console.WriteLine(A + " равно " + B);
            else Console.WriteLine(A + " не равно " + B);
        }
        public void Plus(Complex A, Complex B)
        {
            //A.RealPart + B.RealPart;
 
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Stroka str = new Stroka();
            do
            {
                Console.WriteLine("Доступные команды:\n1. Добавить строку\n2. Удалить строку\n3. Определить длину строки\n4. Вывести все строки\n5. Создать комплексное число\n0. Выход из программы");
                Console.Write("Выберите команду: ");
                switch (Console.ReadLine())
                {
                    case "1": { str.Add(); Console.WriteLine("Нажмите любую клавишу"); Console.ReadKey(); Console.Clear(); break; };
                    case "2": { str.Clean(); Console.WriteLine("Нажмите любую клавишу"); Console.ReadKey(); Console.Clear(); break; };
                    case "3": { str.Stroka_length(); ; Console.WriteLine("Нажмите любую клавишу"); Console.ReadKey(); Console.Clear(); break; };
                    case "4": { str.Show(); Console.WriteLine("Нажмите любую клавишу"); Console.ReadKey(); Console.Clear(); break; };
                    case "5": { ; Console.WriteLine("Нажмите любую клавишу"); Console.ReadKey(); Console.Clear(); break; };
                    case "6": { ; Console.WriteLine("Нажмите любую клавишу"); Console.ReadKey(); Console.Clear(); break; };
                    case "7": { ; Console.WriteLine("Нажмите любую клавишу"); Console.ReadKey(); Console.Clear(); break; };
                    case "0": { Stroka.stop = true; break; };
                    default: { Console.WriteLine("Неверная команда!"); break; };
                }
            } while (!Stroka.stop);
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.01.2022, 15:30
Ответы с готовыми решениями:

Описать базовый класс Строка и производную от Строка класс Десятичная_строка
Здравствуйте, уважаемые эксперты! Помогите, пожалуйста с заданием. Описать базовый класс Строка. Обязательные поля класса: • поле...

Описать базовый класс строка C#
Описать базовый класс CStr - строка. Обязательные поля класса CStr: поле для хранения символов строки, значение типа byte хранит длину...

Описать базовый класс Строка
Здравствуйте! Можете помочь написать программу : Описать базовый класс Строка. Обязательные поля класса: • поле для хранения...

2
643 / 338 / 139
Регистрация: 19.10.2013
Сообщений: 1,209
19.01.2022, 16:09
Реализовать класс Complex для работы с комплексными числами. Реализовать операции с ним вот тут решение
0
0 / 0 / 0
Регистрация: 19.01.2022
Сообщений: 13
19.01.2022, 16:26  [ТС]
В том-то и дело, что типа "double" не так уж и сложно...
А мне, к сожалению, нужно сделать как реальную часть, так и мнимую часть типом Stroka(мой тип строки).
Вот и думаю, надо по идее из строки по символьно в int переводить, но учитывать знаки (плюс или минус).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.01.2022, 16:26
Помогаю со студенческими работами здесь

Кто поможет описать Базовый класс Строка и производную от Строки класс Битовая Строка
Для Класса строка нужны ещё указатель pChar и Word типа Word где будет хранится длина строки в байтах. Нужно 3 конструктора: без...

базовый класс «комплексное число»
Создать базовый класс «комплексное число», такой, что: a) его экземпляр содержит действительную и мнимую часть - переменные с плавающей...

Описать базовый класс КСТР – строка.Описать производный от КСТР класс КССТр – шестнадцатеричная строка
Описать базовый класс CStr – строка. Обязательные поля класса CStr: поле для хранения символов строки, значение типа byte хранит длину...

Создать базовый класс «комплексное число», согласно условию
Создать базовый класс «комплексное число», такой, что: a) его экземпляр содержит действительную и мнимую часть - переменные с плавающей...

Описать базовый класс Строка
Описать базовый класс Строка. Объекты класса должны содержать следующие данные: указатель на сhar, что сохраняет адрес динамически...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru