Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

13 Лабораторная работа 31

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 24.11.2024

Лабораторная работа №3. Перегрузка операторов.

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

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

Варианты.

Тип данных

Операторы

1

Комплексное число

Умножение комплексного числа на вещественное число.

Сложение двух комплексных чисел.

Умножение двух комплексных чисел.

Длина комплексного числа (используйте для этого, например, операцию «приведение к double»  operator double (Complex&).

2

Квадрат на плоскости.

Задается координатой левого верхнего угла, стороной квадрата и углом, на который квадрат повернут относительно оси OX.

Равенство площадей квадратов (перегрузите операции ==, !=, <, >)

Умножение квадрата на вещественное число (увеличивает сторону квадрата).

Прибавление к квадрату вектора (смещение квадрата на указанный вектор).

3

Треугольник на плоскости (самостоятельно выбирайте необходимые данные).

Равенство площадей треугольников (перегрузите операции ==, !=, <, >) – для вычисления площади можете использовать, например, формулу Герона (зависит от тех данных, что используются для хранения треугольника).

Прибавление вектора (смещение треугольника на указанный вектор).

4

Матрица 3x3

Перемножение двух матриц.

Умножение матрицы на вещественное число.

Вычитание и сложение матриц.

Сравнение матриц (==, !=, >, <);

5

Стек целых чисел глубиной не более 100.

Добавление числа в стек (operator << ).

Изъятие числа из стека (operator >>).

Не забудьте написать простую функцию (не оператор) для вывода стека на экран – с ней будет удобнее производить отладку.

6

Массив целых чисел (длина не более 100).

Объединение двух массивов в один (operator+)

Сравнение длин массивов (==, >, < !=).

7

Подмножество множества целых чисел от нуля до девяти: { 0, 1, 2, … 9 }. (см. примечание ниже)

Объединение двух множеств (operator+).

Сравнение (== и !=).

Добавление числа в множество (operator+=).

Изъятие числа из множества (operator-=).

8

FIFO (очередь) целых чисел длиной не более 100.

Добавить целое число в очередь (operator<<)

Взять число из очереди (operator>>)


1

2

3

4

5

6

7

8

1

X

X

1

2

X

X

2

3

X

X

3

4

X

X

4

5

X

X

5

6

X

X

6

7

X

X

7

8

X

X

8

9

X

X

9

10

X

X

10

11

X

X

11

12

X

X

12

13

X

X

13

14

X

X

14

15

X

X

15

16

X

X

16

17

X

X

17

18

X

X

18

19

X

X

19

20

X

X

20

21

X

X

21

22

X

X

22

23

X

X

23

24

X

X

24

1

2

3

4

5

6

7

8

Для варианта 7.

Примеры подмножеств:

Пустое{}, {0, 9}, {3}, {2,4,7,8,9}, и т.д.

Думаю, что удобнее всего использовать массив mas[10] такой, что mas[ i ] равно 1 тогда и только тогда, когда i содержится в подмножестве.

// -------------- mystruct.h

#ifndef _COMPLEX_TYPES_H_

#define _COMPLEX_TYPES_H_

struct MyStruct { /* some fields here */ };

MyStruct operator+( MyStruct, MyStruct );

MyStruct operator+( MyStruct, double );

MyStruct& operator=( const MyStruct& );

/* etc… */

#endif

// --------------

// -------------- mystruct.cpp

#include “mystruct.h”

MyStruct operator+( MyStruct a, MyStruct b ) { /*…*/ }

MyStruct operator+( MyStruct a, double x ) { /*…*/ }

MyStruct& operator=( const MyStruct& a ) { /*…*/ }

// --------------

// -------------- main.cpp

#include “mystruct.h”

#include <cstdio>

int main() {

MyStruct a, b, c;

double x;

a = b + c;

a = operator+( b, c );

operator=( a, operator( b, c ) );

// etc…

return 0;

}

// --------------




1.  Общая характеристика организации 2
2. ТРЕМ ОСНОВАМ ВОИМЯ АЛЛАХА МИЛОСТИВОГО МИЛОСЕРДНОГО ВО ИМЯ Автор да помилует его Аллах начал свою кни
3. Реферат- Устройство, принцип действия системы зажигания
4. Правові проблеми банкрутства для студентів юридичного факультету денної форми навчання спеціально
5. Сущность, предмет, принципы менеджмента
6. тема; не разобрана
7. Реферат по географии.
8. Автоматика Автоматика отрасль науки и техники охватывающая теорию
9. Радиорелелі байланыс ж~не ~арышты радиобайланыс ~шін жиілік диапазоны
10. немецки вышло даже полное собрание его сочинений но его гораздо меньше знают чем Н
11. МАЗ А.В.
12. Существует мнение связанное с религиозными представлениями человека исходя из которого мы были сотворены.
13. Как римская республика стала самым развитым государством Средиземноморья Провозглашение Римской респ
14. Расплатись по мобильному
15. Загрязнение окружающей среды и его влияние на человека
16. ТАЛАНТ2014 15 февраля 2014 г
17. Реферат- Колонна сплошного сечения К7
18. .1 ВХОДНАЯ ЦЕПЬ С ЕМКОСТНОЙ СВЯЗЬЮ С АНТЕННОЙ4 1
19. варианты. Под ред.1
20. 30 реферат дисертації на здобуття наукового ступеня кандидата біологічних наук