МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное агентство по образованию
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Учебный Центр Информационных Технологий «Информатика»
Лабораторная работа №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);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.