Автор24

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

Подробнее о работе

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

Преимущества объектно-ориентированного подхода при проектировании алгоритмов обработки массивов на примере конкретной задачи

  • 31 страниц
  • 2018 год
  • 45 просмотров
  • 0 покупок
Автор работы

parisville

Специализируюсь на программировании, машинном обучении и нейронных сетях

500 ₽

Работа будет доступна в твоём личном кабинете после покупки

Гарантия сервиса Автор24

Уникальность не ниже 50%

Фрагменты работ

Введение 3
Теоретические сведения 3
Объектно-ориентированная парадигма программирования и ее отличия от процедурной парадигмы 3
Классы и объекты в языке C++ 7
Инкапсуляция и наследование 9
Условие задачи 11
Раздел 1. Решение задачи с использованием функций 11
Выбор функций, назначение функций 11
Шаблоны функций 11
Состав данных функции main 12
Блок-схема алгоритма функции main 12
Описание данных функции обработки 13
Блок-схема алгоритма функции average 14
Код консольного приложения с подпрограммами 16
Раздел 2. Консольная программа с использованием класса 18
Описание класса и методов 18
Код консольного приложения с использованием класса 18
Раздел 3. Определение класса-наследника 21
Описание классов и методов 21
Код консольного приложения с использованием класса-наследника 21
Тесты 25
Заключение 31
Список литературы 31

Инкапсуляция и наследование

Инкапсуляция – такое объединение внутри класса полей и методов, при котором доступ к полю возможен только путем вызова соответствующего метода.
При идеальном выполнении принципа инкапсуляции поля класса могут быть только личными (private).
Ниже перечислены уровни инкапсуляции, т. е. уровни доступа к элементам класса:
• private (личный). Этот уровень накладывает самые жесткие ограничения на доступ к элементам класса. Именно эти элементы могут быть использованы только методами данного класса. Как правило, поля класса объявляются private.
• public (общий). Элементы класса данного уровня доступны из любой точки программы (самый «широкий» доступ).
• protected (защищенный). Элементы класса данного класса доступны методам данного класса и его наследников.
...

Выбор функций, назначение функций

Алгоритм вычисления среднего арифметического значения удовлетворяющих определенному условию элементов для каждой из строк матрицы одинаков (с точностью до обозначений и констант) для матриц A, B. Поэтому вычисление этих значений следует оформить как функцию (с названием average), а затем применить ее два раза к конкретным (фактическим) матрицам A, B с разными параметрами, в зависимости от свойства элементов быть положительными либо большими единицы. Алгоритм ввода одинаков для всех матриц, поэтому ввод также будет оформлен как функция (с названием input). Аналогично вывод матриц будет осуществлять функция output. Для вывода результатов функции average на экран создана функция printAverage.
...

Описание данных функции обработки

Описание данных функции average представлено в таблице 3.

Таблица 3. Описание данных функции average
Имя
Смысл
Тип
Структура
Входные данные
mat
заданная матрица
float (вещественный)
двумерный массив с 7 столбцами
n
количество строк
int (целый)
простая переменная
m
количество столбцов
int (целый)
простая переменная
x
значение, задаваемое для выбора элементов для подсчета среднего арифметического значения каждой из строк матрицы
int (целый)
простая переменная
Промежуточные данные
sum
сумма элементов строки, больших x
float (вещественный)
простая переменная
avg
ср. арифм. элементов строки, больших x
float (вещественный)
простая переменная
count
кол.-во элементов строки, больших x
int (целый)
простая переменная
i
индекс строки (текущий)
int (целый)
простая переменная
j
индекс столбца (текущий)
int (целый)
простая переменная
Выходные данные
data
ср. арифм.
...

Код консольного приложения с подпрограммами

#include
#include ...

Описание класса и методов

Объявление класса начинается с зарезервированного ключевого слова class, после которого написано имя этого класса – maker. Далее объявлен спецификатор доступа private, дающий доступ к полям класса только методам текущего класса. Для методов класса объявлен спецификатор доступа public, то есть методы можно использовать в любой точке программы, где доступно описание класса. Конструктор maker (имя конструктора такое же, как и имя класса) – специальный метод класса, предназначенный для инициализации элементов класса и распределения памяти под поля класса. Деструктор ~maker - специальный метод класса, который служит для уничтожения класса.
...

Код консольного приложения с использованием класса

#include
#include
#include
#include
using namespace std;

class maker
{
private:
float **mat;
int n, m;
char c;
float* avg;
public:
maker(int n, int m, char c);
~maker();
void input();
void output();
void printAverage();
void average(int x);
};

/*Конструктор с выделением памяти под массив*/
maker::maker(int n, int m, char c)
{
this->n = n;
this->m = m;
this->c = c;
mat = new float*[n];
for (int i = 0; i < n; i++)
{
mat[i] = new float[m];
}
avg = new float[n];
}

/*Функция ввода элементов матрицы*/
void maker::input()
{
int i, j;
cout << "Ввод матрицы " << c << ".
...

Код консольного приложения с использованием класса-наследника

#include
#include
#include
#include
using namespace std;

class maker
{
protected:
float **mat;
int n, m;
char c;
float* avg;
public:
maker(int n, int m, char c);
~maker();
void input();
void output();
void printAverage();
void average(int x);
};

/*Конструктор с выделением памяти под массив*/
maker::maker(int n, int m, char c)
{
this->n = n;
this->m = m;
this->c = c;
mat = new float*[n];
for (int i = 0; i < n; i++)
{
mat[i] = new float[m];
}
avg = new float[n];
}

/*Функция ввода элементов матрицы*/
void maker::input()
{
int i, j;
cout << "Ввод матрицы " << c << ".
...

Б. Страуструп. Язык программирования С++. — Издательство: Бином, 2011. – 1136 с.

Форма заказа новой работы

Не подошла эта работа?

Закажи новую работу, сделанную по твоим требованиям

Оставляя свои контактные данные и нажимая «Заказать Курсовую работу», я соглашаюсь пройти процедуру регистрации на Платформе, принимаю условия Пользовательского соглашения и Политики конфиденциальности в целях заключения соглашения.

Фрагменты работ

Введение 3
Теоретические сведения 3
Объектно-ориентированная парадигма программирования и ее отличия от процедурной парадигмы 3
Классы и объекты в языке C++ 7
Инкапсуляция и наследование 9
Условие задачи 11
Раздел 1. Решение задачи с использованием функций 11
Выбор функций, назначение функций 11
Шаблоны функций 11
Состав данных функции main 12
Блок-схема алгоритма функции main 12
Описание данных функции обработки 13
Блок-схема алгоритма функции average 14
Код консольного приложения с подпрограммами 16
Раздел 2. Консольная программа с использованием класса 18
Описание класса и методов 18
Код консольного приложения с использованием класса 18
Раздел 3. Определение класса-наследника 21
Описание классов и методов 21
Код консольного приложения с использованием класса-наследника 21
Тесты 25
Заключение 31
Список литературы 31

Инкапсуляция и наследование

Инкапсуляция – такое объединение внутри класса полей и методов, при котором доступ к полю возможен только путем вызова соответствующего метода.
При идеальном выполнении принципа инкапсуляции поля класса могут быть только личными (private).
Ниже перечислены уровни инкапсуляции, т. е. уровни доступа к элементам класса:
• private (личный). Этот уровень накладывает самые жесткие ограничения на доступ к элементам класса. Именно эти элементы могут быть использованы только методами данного класса. Как правило, поля класса объявляются private.
• public (общий). Элементы класса данного уровня доступны из любой точки программы (самый «широкий» доступ).
• protected (защищенный). Элементы класса данного класса доступны методам данного класса и его наследников.
...

Выбор функций, назначение функций

Алгоритм вычисления среднего арифметического значения удовлетворяющих определенному условию элементов для каждой из строк матрицы одинаков (с точностью до обозначений и констант) для матриц A, B. Поэтому вычисление этих значений следует оформить как функцию (с названием average), а затем применить ее два раза к конкретным (фактическим) матрицам A, B с разными параметрами, в зависимости от свойства элементов быть положительными либо большими единицы. Алгоритм ввода одинаков для всех матриц, поэтому ввод также будет оформлен как функция (с названием input). Аналогично вывод матриц будет осуществлять функция output. Для вывода результатов функции average на экран создана функция printAverage.
...

Описание данных функции обработки

Описание данных функции average представлено в таблице 3.

Таблица 3. Описание данных функции average
Имя
Смысл
Тип
Структура
Входные данные
mat
заданная матрица
float (вещественный)
двумерный массив с 7 столбцами
n
количество строк
int (целый)
простая переменная
m
количество столбцов
int (целый)
простая переменная
x
значение, задаваемое для выбора элементов для подсчета среднего арифметического значения каждой из строк матрицы
int (целый)
простая переменная
Промежуточные данные
sum
сумма элементов строки, больших x
float (вещественный)
простая переменная
avg
ср. арифм. элементов строки, больших x
float (вещественный)
простая переменная
count
кол.-во элементов строки, больших x
int (целый)
простая переменная
i
индекс строки (текущий)
int (целый)
простая переменная
j
индекс столбца (текущий)
int (целый)
простая переменная
Выходные данные
data
ср. арифм.
...

Код консольного приложения с подпрограммами

#include
#include ...

Описание класса и методов

Объявление класса начинается с зарезервированного ключевого слова class, после которого написано имя этого класса – maker. Далее объявлен спецификатор доступа private, дающий доступ к полям класса только методам текущего класса. Для методов класса объявлен спецификатор доступа public, то есть методы можно использовать в любой точке программы, где доступно описание класса. Конструктор maker (имя конструктора такое же, как и имя класса) – специальный метод класса, предназначенный для инициализации элементов класса и распределения памяти под поля класса. Деструктор ~maker - специальный метод класса, который служит для уничтожения класса.
...

Код консольного приложения с использованием класса

#include
#include
#include
#include
using namespace std;

class maker
{
private:
float **mat;
int n, m;
char c;
float* avg;
public:
maker(int n, int m, char c);
~maker();
void input();
void output();
void printAverage();
void average(int x);
};

/*Конструктор с выделением памяти под массив*/
maker::maker(int n, int m, char c)
{
this->n = n;
this->m = m;
this->c = c;
mat = new float*[n];
for (int i = 0; i < n; i++)
{
mat[i] = new float[m];
}
avg = new float[n];
}

/*Функция ввода элементов матрицы*/
void maker::input()
{
int i, j;
cout << "Ввод матрицы " << c << ".
...

Код консольного приложения с использованием класса-наследника

#include
#include
#include
#include
using namespace std;

class maker
{
protected:
float **mat;
int n, m;
char c;
float* avg;
public:
maker(int n, int m, char c);
~maker();
void input();
void output();
void printAverage();
void average(int x);
};

/*Конструктор с выделением памяти под массив*/
maker::maker(int n, int m, char c)
{
this->n = n;
this->m = m;
this->c = c;
mat = new float*[n];
for (int i = 0; i < n; i++)
{
mat[i] = new float[m];
}
avg = new float[n];
}

/*Функция ввода элементов матрицы*/
void maker::input()
{
int i, j;
cout << "Ввод матрицы " << c << ".
...

Б. Страуструп. Язык программирования С++. — Издательство: Бином, 2011. – 1136 с.

Купить эту работу

Преимущества объектно-ориентированного подхода при проектировании алгоритмов обработки массивов на примере конкретной задачи

500 ₽

или заказать новую

Лучшие эксперты сервиса ждут твоего задания

от 500 ₽

Гарантии Автор24

Изображения работ

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

Понравилась эта работа?

или

11 января 2019 заказчик разместил работу

Выбранный эксперт:

Автор работы
parisville
5
Специализируюсь на программировании, машинном обучении и нейронных сетях
Купить эту работу vs Заказать новую
0 раз Куплено Выполняется индивидуально
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что уровень оригинальности работы составляет не менее 40%
Уникальность Выполняется индивидуально
Сразу в личном кабинете Доступность Срок 1—6 дней
500 ₽ Цена от 500 ₽

5 Похожих работ

Курсовая работа

Создание базы данных для автоматизации процесса управления кадрами на предприятии

Уникальность: от 40%
Доступность: сразу
1000 ₽
Курсовая работа

Оптимизация сайта при помощи методов ИИ для увеличения конверсионного действия

Уникальность: от 40%
Доступность: сразу
300 ₽
Курсовая работа

Сравнение операционных систем Linux, Windows и MacOS

Уникальность: от 40%
Доступность: сразу
400 ₽
Курсовая работа

Разработка программы обработки списка смартфонов

Уникальность: от 40%
Доступность: сразу
350 ₽
Курсовая работа

Решение задач многомерной оптимизации. Методы безусловной оптимизации. Поиск условного экстремума, используя квадратичный штраф. (MathCad, Python).

Уникальность: от 40%
Доступность: сразу
1000 ₽

Отзывы студентов

Отзыв Далиас об авторе parisville 2018-05-11
Курсовая работа

Очень доброжелательный и компетентный автор. Всегда был на связи, все разъяснил, предоставил несколько вариантов программы. Рекомендую.

Общая оценка 5
Отзыв pocya об авторе parisville 2016-04-07
Курсовая работа

Спасибо за работу!

Общая оценка 5
Отзыв Марина [email protected] об авторе parisville 2015-08-25
Курсовая работа

все отлично, спасибо!

Общая оценка 5
Отзыв Татьяна_5085 об авторе parisville 2016-09-15
Курсовая работа

Все ОК

Общая оценка 5

другие учебные работы по предмету

Готовая работа

Инженер по тестированию (яндекс практикум) диплом + багрепорты windows

Уникальность: от 40%
Доступность: сразу
2500 ₽
Готовая работа

Разработка IP-сервера для обеспечения IP-телефонии во внутренних сетях связи

Уникальность: от 40%
Доступность: сразу
2240 ₽
Готовая работа

Обработка и визуализация данных при моделировании электрических машин с использованием программного комплекса «Моделирование в технических устройствах

Уникальность: от 40%
Доступность: сразу
1000 ₽
Готовая работа

Проектирование программы анализа финансового состояния предприятия

Уникальность: от 40%
Доступность: сразу
1000 ₽
Готовая работа

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

Уникальность: от 40%
Доступность: сразу
2240 ₽
Готовая работа

Разработка информационной системы поддержки научно-исследовательской деятельности на основе метода Zettelkasten

Уникальность: от 40%
Доступность: сразу
1799 ₽
Готовая работа

Разработка информационной системы учета приёма и оплаты заказов посетителей с использованием СУБД SQL Server и языка программирования С#

Уникальность: от 40%
Доступность: сразу
2200 ₽
Готовая работа

Разработка объектно-ориентированной модели программ для работы с тригонометрическими рядами

Уникальность: от 40%
Доступность: сразу
1000 ₽
Готовая работа

WEB-приложение оформления заказов в кондитерской. Предметом исследования является учет заказов кондитерских изделий в кондитерской.

Уникальность: от 40%
Доступность: сразу
4000 ₽
Готовая работа

WEB-приложение для салона красоты. Предмет исследования – процесс учёта заказов в салон красоты.

Уникальность: от 40%
Доступность: сразу
4000 ₽
Готовая работа

Автоматизация учета и анализа клиентского оборудования для интернет провайдера

Уникальность: от 40%
Доступность: сразу
2800 ₽
Готовая работа

Сравнительный анализ клиентских реализаций импорта пакетов и модулей в экосистеме JavaScript

Уникальность: от 40%
Доступность: сразу
2240 ₽