2 Задачи C++

Отменен
Заказ
4570113
Раздел
Программирование
Предмет
Visual C++
Тип работы
Антиплагиат
Не указан
Срок сдачи
6 Фев 2022 в 00:55
Цена
500 ₽
Блокировка
10 дней
Размещен
3 Фев 2022 в 00:22
Просмотров
115
Описание работы

2 задачи на C++ visual studio

Нужен только код без комментариевЗавдання 1

Розробити класи Complex та ArrayComplex

Розробити клас Complex, який визначає комплексне число. У класі реалізувати наступні складові

– внутрішні поля re, im типу double. Ці поля визначають дійсну та уявну частини комплексного числа

– конструктор з 2 параметрами Complex(double, double). Призначений для ініціалізації внутрішніх полів re, im

– конструктор без параметрів Complex(), який ініціалізує одиничними (1.0) значеннями внутрішні поля

– метод Get(double&, double&), що здійснює доступ до внутрішніх полів з допомогою посилань

– метод Set(double, double), який ініціалізує внутрішні поля зовнішніми значеннями

– метод Abs(), який повертає модуль комплексного числа

– операторна функція operator+(Complex&), яка перевантажує оператор + (плюс) і реалізує додавання комплексних чисел

– операторна функція operator-(Complex&), яка перевантажує оператор – (мінус) і реалізує віднімання комплексних чисел

– операторна функція operator*(Complex&), яка перевантажує оператор * (множення) і реалізує добуток комплексних чисел

– операторна функція operator/(Complex/), яка перевантажує оператор / (ділення) і реалізує ділення комплексних чисел

– операторна функція operator+(), яка перевантажує унарний оператор + і повертає модуль комплексного числа

– метод Print(string), який призначений для виведення поточних значень внутрішніх полів (внутрішнього стану) класу


На основі класу Complex розробити клас ComplexArray, який реалізує динамічний масив комплексних чисе

Клас ComplexArray містить наступні складові

– внутрішнє поле AC, що є покажчиком на тип Complex

– внутрішнє поле count, що визначає кількість елементів у масиві AC

– конструктор ComplexArray(ComplexArray&), який отримує вхідним параметром екземпляр іншого класу Complex

– конструктор ComplexArray(Complex[], int), який отримує вхідним параметром масив екземплярів типу Complex та кількість елементів у цьому масиві

– конструктор без параметрів ComplexArray(), який делегує свої повноваження конструктору з 2 параметрами та заповнює внутрішні поля нульовими значеннями

– деструктор ~ComplexArray(), який звільняє пам’ять, виділену для масиву AC

– конструктор копіювання ComplexArray(const ComplexArray&)

– оператор копіювання operator=(const ComplexArray&)

– перевантажений оператор індексування елементів масиву operator[](int). Реалізувати використання оператора індексування [] як у правій, так і в лівій частині оператора присвоєння

– метод Print(), що виводить внутрішній стан масиву (значення внутрішніх полів)

– метод SetArray(Complex[], int), що встановлює новий масив даних. У методі передбачити коректний перерозподіл пам’ят


У функції main() продемонструвати використання базових операцій (методів) над класами Complex та ComplexArray

Додатково реалізувати підрахунок кількості створених об’єктів класів Complex та ComplexArray.

2. У конструкторі та методах класу передбачити врахування можливих некоректних ситуацій на кшталт


0/0, 1/0, 0/


Всі некоректні випадки повинні бути приведені до значенн


1


тобто nom = 1, denom =


3. У функції main() протестувати роботу класу Fraction для різних випадків1./1я 1 : ()

 Завдання 2

1. Створити клас Fraction (Дріб) в якому реалізувати наступні складові елементи:

– внутрішні поля nom, denom цілого типу, які відповідно визначають чисельник та знаменник дробу;

– конструктор з 2 параметрами Fraction(int, int) (параметризований конструктор), який ініціалізує внутрішні поля значеннями;

– конструктор без параметрів Fraction();

– внутрішній метод Normal(), який приводить дріб до нормального виду: 8/12 => 2/3;

– методи доступу до внутрішніх полів GetNom(), GetDenom(), SetNom(int), SetDenom(int);

– метод Add(Fraction), що реалізує додавання дробу поточного екземпляру з вхідним параметром типу Fraction;

– метод Sub(Fraction), що реалізує віднімання поточного дробу від вхідного екземпляру;

– метод Mult(Fraction), що реалізує добуток поточного дробу з вхідним екземпляром;

– метод Div(Fraction), що реалізує ділення поточного дробу на вхідний екземпляр;

– перевантажений оператор operator+(Fraction&), який реалізує додавання поточного екземпляру з вхідним екземпляром;

– перевантажений оператор operator-(Fraction&), який реалізує операцію віднімання дробів;

– перевантажений оператор operator*(Fraction&), який реалізує операцію множення дробів;

– перевантажений оператор operator/(Fraction&), який реалізує операцію ділення дробів;

– метод Print(), що виводить поточне значення дробу.

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.54
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Следующий заказ
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир