Изучение использования перегрузки операторов (Лабораторная работа № 2)

Страницы работы

Содержание работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное агентство по образованию 

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ

 ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Учебный Центр Информационных Технологий «Информатика»

Лабораторная работа №2

по дисциплине «Объектно-ориентированное программирование»

Направление подготовки: 230105 - «Программное обеспечение вычислительной техники и автоматизированных систем»

Выполнил слушатель:

Вариант: 9

Дата сдачи: __/__/____

Преподаватель:

Новосибирск, 2016г.


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

1.  Цель работы: изучить использование перегрузки операторов.

2.  Вариант № 9.  Комплексные числа.

Объект класса хранит действительную и мнимую часть комплексного числа.

3.  Описание программной реализации.

Проект скомпилирован в среде Microsoft VS и содержит три файла: интерфейс класса Complex.h, реализация методов класса Complex.cpp, и файл main.cpp.

Используемые функции:

—  int menu() — функция программы, содержащая интерфейс и меню пользователя, выполняет вызовы всех остальных функций, в соответствии с выбором пользователя.

—  voidgotoxy(intx, inty) —функция, осуществляющая управление курсором. Помещает курсор в координаты, указанные в параметрах.

—  voidadd(Complex** arr, intnum)– сложение элементов исходного массива с эталонным объектом и помещение результата в результирующий массив.

—  voidsub(Complex** arr, intnum) — вычитание из элементов исходного массива эталонного объекта и помещение результата в результирующий массив.

—  void showTable(int x, int y, Complex** &arr) — вывод содержимого выбранного массива в виде таблицы по указанным координатам.

—  void inc(Complex** arr, int num) — инкремент выбранного элемента массива.

—  voiddec(Complex** arr, intnum) —декремент выбранного элемента массива.

—  void deleteArr(Complex** &arr, int size) — удаление динамического массива и всех созданных объектов класса.

Методы класса Complex:

—  Complex() конструктор по умолчанию.

—  Complex(double, double) — конструктор с параметрами.

—  Complex(const Complex &) – конструктор копий.

—  ~Complex() — деструктор.

—  staticint getCounter() — возвращает значение счётчика объектов.

—  void edit() — редактирование объекта.

—  staticvoiddel(Complex* &) — удаление выбранного объекта.   

—  voidshowObject() — вывод объекта.

—  doublemod() — модуль комплексного числа.

—  doublearg() — аргумент комплексного числа.

Перегруженные операторы:

—    Complex & operator ++ () — префиксный инкремент;

—    Complex operator ++ (int) — постфиксный инкремент;

—    Complex & operator -- ()— префиксный декремент;

—    Complex operator -- (int) — постфиксный декремент;

—    Complex operator + (Complex&) — оператор сложения;

—    Complex operator - (Complex&) — оператор вычитания;

—    Complexoperator + (constComplex&) — оператор сложения для константного операнда;

—    Complexoperator - (constComplex&) — оператор вычитания для константного операнда;

—    Complex operator - () — унарный минус;

—    Complex & operator = (Complex) — оператор присваивания;

—    bool operator == (Complex) — префиксный инкремент;

—    bool operator != (Complex) — префиксный инкремент;

—    bool operator < (Complex &) — оператор меньше;

—    booloperator < (constComplex &) — оператор меньше для константного операнда;

—    bool operator > (Complex &) — оператор больше;

—    operatorint() — оператор приведения к типу INT;

—    friend ostream & operator << (ostream &out, Complex &obj) — оператор вывода из потока;

—    friend istream & operator >> (istream &in, Complex &obj) — оператор ввода в поток;

—    friend ostream & operator << (ostream &out, const Complex &obj) — оператор вывода из потока для константного операнда.

4.  Вывод

В ходе выполнения лабораторной работы я освоил перегрузку операторов.

5.  Пример работы программы.

При запуске пользователю предлагается заполнить исходную таблицу комплексных чисел.

После заполнении элементов таблицы на экран выводится несколько полей:

1) заполненная исходная таблица;

2) константный объект класса;

3) колонка результатов сравнения исходных элементов с константным объектом;

4) колонка результатов вычисления;

5) колонка результатов приведения к типу INT.

6) перечень доступных операций.

При выходе из программы происходит удаление всех элементов динамических массивов и освобождается память.

6.  Приложение. Текст программы

Complex.h:

#pragma once

#include <iostream>

#include <conio.h>

#include <math.h>

#include <Windows.h>

using namespace std;

class Complex

{

static double const pi;

static int counter;

double real, image;

public:

Complex();

Complex(double, double);

Complex(const Complex &);

~Complex();

double mod();

double arg();

void showObject();

static int getCounter();

static void del(Complex* &);

void edit();

Complex & operator ++ ();

Complex operator ++ (int);

Complex & operator -- ();

Complex operator -- (int);

Похожие материалы

Информация о работе