Объектно-ориентированное программирование/Росдистант/Практические задания

Раздел
Программирование
Просмотров
50
Покупок
0
Антиплагиат
Не указан
Размещена
13 Июн в 21:10
ВУЗ
росдистант
Курс
Не указан
Стоимость
1 000 ₽
Демо-файлы   
1
docx
УМП_ООП (2)
37.6 Кбайт
Файлы работы   
1
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
docx
Практические задания
340.4 Кбайт 1 000 ₽
Описание

Объектно-ориентированное программирование/Росдистант/Практические задания

Вариант 4

Оглавление

учебно-методическое пособие

по изучению дисциплины

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


Введение


Цель учебного курса - изучение основных концепций и методов парадигмы объектно-ориентированного программирования, формирование навыков определения и использования классов наряду с основами объектно-ориентированного проектирования.

Задачи:

1.     Сформировать базовые знания в области теоретических основ объектно-ориентированной парадигмы.

2.     Сформировать практические навыки решения задач с помощью технологии объектно-ориентированного программирования для упрощения процесса проектирования и реализации.

Изучив дисциплину, студент должен

знать:

·       современные технологии разработки и адаптации прикладного программного обеспечения, их достоинства и недостатки;

·       компоненты прикладного программного обеспечения;

·       технологии разработки программного обеспечения на современных языках программирования, методы адаптации прикладного программного обеспечения;

·       основные концептуальные положения объектно-ориентированного программирования;

·       объектно-ориентированные возможности языка программирования С++;

уметь:

·       применять современные технологии разработки и адаптации прикладного программного обеспечения;

·       разрабатывать, адаптировать компоненты прикладного программного обеспечения;

·       разрабатывать программное обеспечение на современных языках программирования, применять методы адаптации прикладного программного обеспечения;

·       проводить объектную декомпозицию предметной области;

·       программировать и создавать приложения для решения прикладных задач;

владеть навыками:

·       применения современных технологий разработки и адаптации прикладного программного обеспечения;

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

·       навыками разработки программного обеспечения на современных языках программирования и методами его адаптации;

·       применения на практике методов и средств объектно-ориентированной декомпозиции предметной области;

·       применения на практике методов и средств объектно-ориентированного программирования.


 

Модуль 1. Теоретические основы объектно-ориентированного программирования

Учебные вопросы

Тема 1.1. Ключевые понятия объектно-ориентированного программирования

Тема 1.2. Принципы объектно-ориентированного программирования


Методические рекомендации по изучению лекционного материала

Изучение дисциплины требует систематического и последовательного накопления знаний. В ходе изучения лекционного материала рекомендуется конспектировать учебный материал, обращая внимание на категории, формулировки, раскрывающие содержание тех или иных явлений и процессов, научные выводы и практические рекомендации.

В ходе подготовки к лекциям изучить основную литературу, ознакомиться с дополнительной литературой, публикациями в Интернет-источниках, периодических изданиях. При этом учесть рекомендации преподавателя и требования учебной программы. Дорабатывать свой конспект лекции, делая в нем соответствующие записи из литературы, рекомендованной преподавателем и предусмотренной учебной программой.

В рамках тем 1.1 и 1.2 первого модуля нужно изучить ключевые понятия и принципы, необходимые для успешного создания и использования объектно-ориентированных систем. Знания, полученные в ходе изучения тем первого модуля, позволят вам разрабатывать приложения и системы с использованием соответствующих концепций и принципов.

Методические указания по выполнению самостоятельной работы студентов

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

Задание 1

·       Перечислите несколько однотипных объектов и конкретные значения их свойств.

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

Требования:

·       Не менее 5 классов

·       Не менее 7 объектов каждого класса.

·       Не менее 3 свойств для каждого класса.

·       Не менее 3 операций для каждого класса.

·       Имена классов – существительные.

Предметная область

Вариант 1. Здравоохранение.

Вариант 2. Защита человека от воздействия окружающей среды. Безопасность.

Вариант 3. Метрология и измерения.

Вариант 4. Машиностроение.

Вариант 5. Электроника.

Вариант 6. Телекоммуникации. Аудио- и видеотехника.

Вариант 7. Информационные технологии.

Вариант 8. Офисное оборудование.

Вариант 9. Технология получения изображений.

Вариант 10. Дорожно-транспортная техника.

Методические рекомендации по выполнению практических работ

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


Модуль 2. Основные средства объектно-ориентированного программирования в С++

Учебные вопросы

Тема 2.1. Классы и объекты. Часть 1

Тема 2.2. Классы и объекты. Часть 2

Тема 2.3. Классы и объекты. Часть 3

Тема 2.4. Отношения между классами

Тема 2.5. Обработка исключений

Тема 2.6. Тестирование

Тема 2.7. Иерархии классов

Методические рекомендации по изучению лекционного материала

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

В ходе подготовки к лекциям изучить основную литературу, ознакомиться с дополнительной литературой, публикациями в Интернет-источниках, периодических изданиях. При этом учесть рекомендации преподавателя и требования учебной программы. Дорабатывать свой конспект лекции, делая в нем соответствующие записи из литературы, рекомендованной преподавателем и предусмотренной учебной программой.

В рамках тем второго модуля необходимо обратить внимание на следующие аспекты:

·       Понимание концепций объектно-ориентированного программирования: объекты, свойства, методы, классы и интерфейсы.

·       Изучение принципов инкапсуляции, наследования и полиморфизма и их применение в разработке классов и объектов.

·       Анализ различных отношений между классами, таких как агрегация, композиция и ассоциация, и выбор наиболее подходящего для конкретной задачи.

·       Использование абстрактных классов и интерфейсов для обеспечения гибкости и расширяемости системы.

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

Вы научитесь создавать объекты, определять их свойства и поведение, наследовать классы, использовать полиморфизм для обработки различных типов данных

Методические рекомендации по выполнению практических работ

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

Задание 2

·       Реализовать пользовательский класс в соответствии с вариантом задания.

·       При реализации классов поля должны быть скрытыми.

·       Определить метод установки свойств (при недопустимых аргументах функции возвращать «false» и выдавать текст ошибки на экран).

·       Определить метод чтения свойств.

·       Написать демонстрационную программу, в которой показать использование объектов созданного класса.

Вариант 1

Класс Треугольник

Свойства: три стороны

Операции:

- увеличение/уменьшение размера сторон в заданное количество раз;

- вычисление периметра;

- вычисление площади;

- определение значений углов.


Вариант 2.

Класс Треугольник

Свойства: три стороны

Операции:

- увеличение/уменьшение размера сторон на заданное количество процентов;

- вычисление средней линии для любой из сторон;

- определение вида треугольника по величине углов (Остроугольный, Тупоугольный, Прямоугольный);

- определение значений углов.


Вариант 3.

Класс Треугольник

Свойства: две стороны и угол между ними

Операции:

- увеличение/уменьшение размера угла на заданное количество процентов;

- определение вида треугольника по числу равных сторон (Разносторонний, Равнобедренный, Равносторонний);

- определение расстояния между центрами вписанной и описанной окружностей.

- определение значений углов.


Вариант 4.

Класс Треугольник

Свойства: две стороны и угол между ними

Операции:

- уменьшение/увеличение размера угла (из свойств) в заданное количество раз;

- вычисление длины биссектрисы принадлежащей любому углу;

- вычисление длин отрезков, на которые биссектриса делит любую сторону;

- определение значений углов.


Вариант 5.

Класс Треугольник

Свойства: сторона и два прилежащих к ней угла

Операции:

- уменьшение/увеличение размера стороны (из свойств) в заданное количество раз;

- вычисление длины медианы, принадлежащей любой стороне;

- определение подобен ли другой треугольник данному (указанному по индексу массива);

- определение значений сторон.


Вариант 6.

Класс Треугольник

Свойства: сторона и два прилежащих к ней угла

Операции:

- увеличение/уменьшение значения любого угла (из свойств) на заданное количество процентов;

- вычисление длины высот, принадлежащей любой стороне;

- определение значений сторон.


Вариант 7.

Класс Прямоугольный треугольник

Свойства: две стороны

Операции:

- увеличение/уменьшение размера любой стороны (из свойств) на заданное количество процентов;

- вычисление радиуса описанной окружности;

- вычисление полупериметра;

- определение значений углов.


Вариант 8.

Класс Прямоугольный треугольник

Свойства: сторона и угол

Операции:

- уменьшение/увеличение размера любой стороны (из свойств) на заданный процент;

- вычисление радиуса вписанной окружности;

- определение расстояния между центрами вписанной и описанной окружностей;

- вычисление квадратного корня из площади;

- определение значений сторон.


Вариант 9.

Класс Равнобедренный треугольник

Свойства: основание и боковая сторона

Операции:

- увеличение/уменьшение размера на определенный процент;

- вычисление длины медианы, принадлежащей любой стороне;

- вычисление периметра и площади;

- определение значений углов.


Вариант 10.

Класс Равнобедренный треугольник

Свойства: боковая сторона и угол при основании

Операции:

- увеличение/уменьшение размера в заданное количество раз;

- вычисление длины биссектрисы принадлежащей любому углу;

- вычисление длины высот, принадлежащей любой стороне;

- определение значений сторон.


Задание 3

Пользовательский класс MyString должен содержать необходимые элементы-данные, которые создаются в динамической области памяти.

·           Конструкторы (без параметров, с параметрами, копирования) для создания строк: MyString (…);

·           Деструктор: ~MyString();

·           Метод ввода исходной строки: set();

·           Метод изменения исходной строки согласно варианту (исходная и измененная строка должны сохраняться в файле): update() ;

·           Метод вывода на экран: print(…);

·           Каждый вызов методов (в том числе конструкторов и деструктора) сопровождается выдачей соответствующего сообщения;

Код методов – вне пространства определения класса.

Написать демонстрационную программу, в которой показать использование объектов созданного класса

Варианты:

1. Длина L нечетная, то удаляется символ, стоящий посередине строки;

2. Длина L четная, то удаляются 2 первых и 2 последних символа;

3. Длина L кратна 2-м, то удаляются все цифры, которые делятся на 2;

4. Длина L кратна 3-м, то удаляются все цифры, делящиеся на 3;

5. Длина L >10, то удаляются все цифры;

6. Длина L >15, то удаляются все a..z;

7. Длина L=10, то удаляются все A..Z;

8. Длина L кратна 4-м, то первая часть строки меняется местами со второй;

9. Длина L кратна 5-и, то подсчитывается количество скобок всех видов;

10. Длина L >5-и, то выделяется подстрока до первого пробела;


Задание 4

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

Варианты:

1.       Создать класс ПРЯМОУГОЛЬНИК со сторонами параллельными осям координат (прямоугольная система координат ОXY). Реализовать метод вывода на экран информации о прямоугольнике. Перегрузить бинарный оператор несимметрической разности двух прямоугольников (-); унарный оператор (-): симметричное отображение прямоугольника относительно оси координат ОХ и ОУ. Следует учесть, что результатом выполнения оператора может быть пустой прямоугольник.

2.       Создать класс, описывающий тип ВРЕМЯ. Класс должен включать в себя атрибуты, описывающие часы, минуты, секунды и миллисекунды и иметь метод для вывода времени на экран. Для данного класса перегрузить следующие бинарные операторы: суммы(+), разности (-).

3.       Создать класс МНОГОЧЛЕН степени n от одной переменной x, задаваемый массивом своих коэффициентов (массив должен храниться в динамической памяти и задаваться внутри конструктора, используя датчик случайных чисел). Класс должен включать конструктор, которому в качестве параметра передается степень многочлена; деструктор; конструктор копирования, метод, который печатает уравнение на экран. Для данного класса перегрузить следующие бинарные операторы: суммы двух многочленов (+), разности двух многочленов (-), операцию присваивания (=).

4.       Для пространства R3 (выбрана правая система декартовых прямоугольных координат {0, i, j, k}) создать класс ВЕКТОР, предусмотрев для него несколько видов конструкторов, метод для вывода на экран его координат. Для данного класса перегрузить следующие бинарные операторы: суммы(+), разности (-),“векторное произведение” (*).

5.       Создать класс ОТРЕЗОК ЧИСЛОВОЙ ПРЯМОЙ (сегмент). Предусмотреть несколько конструкторов для создания объектов класса, реализовать метод вывода отрезка на экран. Перегрузить следующие бинарные операторы: дополнение одного сегмента другим (+), пересечение двух сегментов (*), несимметрическая разность сегментов (-) {[1,5]-[3,6]=[1,3]}. Следует учесть, что результатом выполнения оператора может быть пустой сегмент, в этом случае следует вернуть отрезок нулевой длины [0,0].

6.       Создать класс КВАДРАТНАЯ МАТРИЦА 3X3. Элементы матрицы следует хранить в динамической памяти и задавать внутри конструктора, используя датчик случайных чисел. Класс должен включать конструктор; деструктор; конструктор копирования; метод для вывода матрицы на экран. Перегрузить следующие бинарные операторы: сумма матриц (+), произведение матриц (*).

7.       Создать класс ПРЯМОУГОЛЬНИК со сторонами параллельными осям координат (прямоугольная система координат ОXY). Реализовать метод вывода на экран информации о прямоугольнике. Перегрузить следующие бинарные операторы: пересечение двух прямоугольников (*), объединение двух прямоугольников (+). Следует учесть, что результатом выполнения оператора может быть пустой прямоугольник.

8.       Создать класс ОКРУЖНОСТЬ в прямоугольной системе координат OXY. Реализовать метод вывода на экран информации об окружности. Перегрузить бинарный оператор несимметрической разности двух окружностей (-); унарный оператор (-): симметричное отображение окружности относительно оси координат ОХ и ОУ. Следует учесть, что результатом выполнения оператора может быть окружность нулевого радиуса.

9.       *Создать класс СТРОКА. Объект класса должен характеризоваться следующими свойствами: длина строки, динамически выделяемый массив символов, заканчивающийся символом ‘\n’, для хранения элементов строки. Предусмотреть несколько конструкторов для создания объектов класса, в том числе и конструктор с параметром, который задает длину будущей строки. Для данного класса реализовать метод вывода строки на экран, перегрузить следующие бинарные операторы: сцепление строк (+), удаление подстроки из строки (-) {“qwert”-“we”=qrt”, {“qwerty”-“tu”=“qwerty”, “qwert”-“qwert”=”” }. Учесть тот случай, когда результатом операции может быть пустая строка (строка нулевой длины).

10.  Создать класс СЕКТОР ЕДИНИЧНОГО КРУГА в прямоугольной системе координат OXY с центром в точке O(0,0), который определяется двумя различными точкам на окружности единичного радиуса. Реализовать несколько конструкторов, метод вывода на экран информации о секторе. Перегрузить бинарные операторы: пересечение двух секторов (*), объединение двух секторов (+), несимметрическая разность двух секторов (-). Следует учесть все специальные случаи.


Задание 5

Выполнить задание согласно варианту, используя одиночное (простое) наследование.

1. Создать класс квадрат, члены класса – длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – диагональ, периметр, площадь. Создать производный класс – правильная квадратная призма с высотой H, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре. Написать программу, демонстрирующую работу с этими классами: дано N квадратов и M призм, найти квадрат с максимальной площадью и призму с максимальной диагональю.

2. Создать класс треугольник, члены класса – длины 3-х сторон. Предусмотреть в классе методы проверки существования треугольника, вычисления и вывода сведений о фигуре – длины сторон, углы, периметр, площадь. Создать производный класс – равносторонний треугольник, перегрузить в классе проверку, является ли треугольник равносторонним и метод вывода сведений о фигуре. Написать программу, демонстрирующую работу с классом: дано K треугольников и L равносторонних треугольников, найти среднюю площадь для K треугольников и наибольший равносторонний треугольник.

3. Создать класс окружность, член класса – радиус R. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – площади, длины окружности. Создать производный класс – круглый прямой цилиндр с высотой h, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре. Написать программу, демонстрирующую работу с классом: дано N окружностей и M цилиндров, найти окружность максимальной площади и средний объем цилиндров.

4. Создать класс квадрат, члены класса – длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – диагоналей, периметр, площадь. Создать производный класс – правильная пирамида с апофемой h, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре. Написать программу, демонстрирующую работу с классом: дано N квадратов и M пирамид, найти квадрат с минимальной площадью и количество пирамид с высотой более числа a (a вводить).

5. Создать класс четырехугольник, члены класса – координаты 4-х точек. Предусмотреть в классе методы проверки существования четырехугольника вычисления и вывода сведений о фигуре – длины сторон, диагоналей, периметр, площадь. Создать производный класс – параллелограмм, предусмотреть в классе проверку, является ли фигура параллелограммом. Написать программу, демонстрирующую работу с классом: дано N четырехугольников и M параллелограммов, найти среднюю площадь N четырехугольников и параллелограммы наименьшей и наибольшей площади.

6. Создать класс треугольник, члены класса – координаты 3-х точек. Предусмотреть в классе методы проверки существования треугольника, вычисления и вывода сведений о фигуре – длины сторон, углы, периметр, площадь. Создать производный класс – равносторонний треугольник, предусмотреть в классе проверку, является ли треугольник равносторонним. Написать программу, демонстрирующую работу с классом: дано N треугольников и M равносторонних треугольников, вывести номера одинаковых треугольников и равносторонний треугольник с наименьшей медианой.

7. Создать класс прямоугольник, члены класса – длины сторон a и b. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – длины сторон, диагоналей, периметр, площадь. Создать производный класс – параллелепипед с высотой с, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре. Написать программу, демонстрирующую работу  с классом: дано N прямоугольников и M параллелепипедов, найти количество прямоугольников, у которых площадь больше средней площади прямоугольников и количество кубов (все ребра равны).

8. Создать класс окружность, член класса – радиус R. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – площади, длины окружности. Создать производный класс – конус с высотой h, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре. Написать программу, демонстрирующую работу с классом: дано N окружностей и M конусов, найти количество окружностей, у которых площадь меньше средней площади всех окружностей, и наибольший по объему конус.

9. Создать класс четырехугольник, члены класса – координаты 4-х точек. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – длины сторон, диагоналей, периметр, площадь. Создать производный класс – равнобочная трапеция, предусмотреть в классе проверку, является ли фигура равнобочной трапецией. Написать программу, демонстрирующую работу с классом: дано N четырехугольников и M трапеций, найти максимальную площадь четырехугольников и количество четырехугольников, имеющих максимальную  площадь, и трапецию с наименьшей диагональю.

10. Создать класс равносторонний треугольник, член класса – длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – периметр, площадь. Создать производный класс – правильная треугольная призма с высотой H, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре. Написать программу, демонстрирующую работу с классом: дано N треугольников и M призм. Найти количество треугольников, у которых площадь меньше средней площади треугольников, и призму с наибольшим объемом.

Задание 6

Выполнить задание согласно варианту, используя множественное наследование.

1. Используя родительский класс «ТРАНСПОРТ» породить производный класс «АВТОМОБИЛЬ». Используя классы «ВОДИТЕЛЬ» и «АВТОМОБИЛЬ», описать класс «ВОДИТЕЛЬ АВТОМОБИЛЯ». Расширить класс «ВОДИТЕЛЬ АВТОМОБИЛЯ» создав два производных класса «ВОДИТЕЛЬ СЛУЖЕБНОГО АВТОМОБИЛЯ» и «ВОДИТЕЛЬ ТАКСИ». Продумать для данной иерархии классов поля и методы (обязательно: вывод информации о водителе, автомобиле)

2. Используя родительский класс «СЛУЖАЩИЙ» породить производный класс «ДИРЕКТОР». Используя классы «ФИРМА» и «ДИРЕКТОР», описать класс «РУКОВОДИТЕЛЬ ФИРМЫ». Расширить класс «РУКОВОДИТЕЛЬ ФИРМЫ» создав два производных класса «РУКОВОДИТЕЛЬ ГОС.УЧ.» и «РУКОВОДИТЕЛЬ ООО». Продумать для данной иерархии классов поля и методы (обязательно: вывод информации о фирме и руководителе)

3. Используя родительский класс «НЕДВИЖИМОСТЬ» породить производный класс «ЗДАНИЕ». Используя классы «ЗДАНИЕ» и «ВЛАДЕЛЕЦ», описать класс «ВЛАДЕЛЕЦ ЗДАНИЯ». Расширить класс «ВЛАДЕЛЕЦ ЗДАНИЯ» создав два производных класса «ВЛАДЕЛЕЦ ЧАСТНОГО ДОМА» и «ВЛАДЕЛЕЦ ОТЕЛЯ ». Продумать для данной иерархии классов поля и методы (обязательно: вывод информации о владельце и здании)

4. Используя родительский класс «ТРАНСПОРТ» породить производный класс «САМОЛЕТ». Используя классы «ПИЛОТ» и «САМОЛЕТ», описать класс «ПИЛОТ САМОЛЕТА». Расширить класс «ПИЛОТ САМОЛЕТА» создав два производных класса «ПИЛОТ ГРАЖДАНСКОГО САМОЛЕТА» и «ПИЛОТ ВОЕННОГО САМОЛЕТА». Продумать для данной иерархии классов поля и методы (обязательно: вывод информации о пилоте, самолете)

5. Используя родительский класс «РАБОТНИК» породить производный класс «РЕЖИССЕР». Используя классы «ФИЛЬМ» и «РЕЖИССЕР», описать класс «РЕЖИССЕР ФИЛЬМА». Расширить класс «РЕЖИССЕР ФИЛЬМА» создав два производных класса «РЕЖИССЕР ХУДОЖЕСТВЕННОГО ФИЛЬМА» и «РЕЖИССЕР ДОКУМЕНТАЛЬНОГО ФИЛЬМА». Продумать для данной иерархии классов поля и методы (обязательно: вывод информации о фирме и руководителе)

Задание 7

1. Реализовать класс, перегрузить для него операции, указанные в варианте.

2. Определить исключительные ситуации.

3. Предусмотреть генерацию исключительных ситуаций.

Исключительные ситуации генерируются:

1 - в конструкторе с параметром при попытке создать вектор больше максимального размера;

2, 3 - в операции [] - при попытке обратиться к элементу с номером меньше 0 или больше текущего размера вектора;

4  - в операции + - при попытке добавить элемент с номером больше максимального размера;

5  - в операции - при попытке удалить элемент из пустого вектора.

Вариант 1. Класс- контейнер ВЕКТОР с элементами типа int.

Реализовать операции:

[] - доступа по индексу;

() - определение размера вектора;

+ число - добавляет константу ко всем элементам вектора;

- n- удаляет n элементов из конца вектора.

Вариант 2. Класс- контейнер ВЕКТОР с элементами типа int.

Реализовать операции:

[]- доступа по индексу;

int() - определение размера вектора;

- n - удаляет n элементов из конца вектора;

+ n - добавляет n элементов в конец вектора.

Вариант 3. Класс- контейнер ВЕКТОР с элементами типа int.

Реализовать операции:

[] - доступа по индексу;

+ +- добавляет элемент в вектор (постфиксная операция добавляет элемент в конец, префиксная в начало)

Вариант 4. Класс- контейнер ВЕКТОР с элементами типа int. Реализовать операции:

[] - доступа по индексу;

() - определение размера вектора;

--удаляет элемент из вектора (постфиксная операция удаляет элемент из конца вектора, префиксная - из начала)

Вариант 5. Класс- контейнер ВЕКТОР с элементами типа int.

Реализовать операции:

[] - доступа по индексу;

int() - определение размера вектора;

* вектор - умножение элементов векторов a[i]*b[i];

+ n - переход вправо к элементу с номером n .

Вариант 6. Класс- контейнер МНОЖЕСТВО с элементами типа int. Реализовать операции:

[] - доступа по индексу;

() - определение размера множества;

+ - объединение множеств;

++ - добавление элемента в множество .

Вариант 7. Класс- контейнер МНОЖЕСТВО с элементами типа int. Реализовать операции:

[] - доступа по индексу;

int() - определение размера вектора;

* - пересечение множеств;

-- - удаление элемента из множества.

Вариант 8. Класс- контейнер МНОЖЕСТВО с элементами типа int. Реализовать операции:

[] - доступа по индексу;

= - проверка на равенство;

> число - принадлежность числа множеству;

- n - переход влево к элементу с номером n.


Модуль 3. Стандартная библиотека С++

Учебные вопросы

Тема 3.1. Обобщенное программирование

Тема 3.2. Обработка строк

Методические рекомендации по изучению лекционного материала

В ходе подготовки к лекциям изучить основную литературу, ознакомиться с дополнительной литературой, публикациями в Интернет-источниках, периодических изданиях. При этом учесть рекомендации преподавателя и требования учебной программы. Дорабатывать свой конспект лекции, делая в нем соответствующие записи из литературы, рекомендованной преподавателем и предусмотренной учебной программой.

В рамках темы 3.1 нужно изучить понятие шаблонов и зачем они используются, различные виды шаблонов, такие как шаблоны функций, шаблоны классов. Изучить особенности применения шаблонов в языке программирования С++. Обратить внимание на преимущества и недостатки шаблонов, а также потенциальные проблемы, которые могут возникнуть при их использовании.

При изучении темы 3.2 «Обработка строк» стоит обратить внимание на следующее:


– Основные операции со строками: создание, изменение, копирование, сравнение, конкатенация и т.д.

– Регулярные выражения: их синтаксис, основные операции и применение в обработке строк.

– Строковые литералы: особенности их использования в языке программирования С++.

– Основные методы обработки строк на С++.

Методические указания по выполнению самостоятельной работы студентов

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

Задание 1

Составить программу решения задания для своего варианта, используя функции обработки строк.

Вариант 1. Дана строка слов, разделенных пробелами. Сформируйте новую строку, вставив перед каждым вхождением слова "and" запятую. Определите, сколько в строке симметричных слов.

Вариант 2. Дана строка слов, разделенных пробелами. Сформируйте новую строку, вставив перед каждым вхождением слова "no" запятую. Подсчитайте количество подстрок между запятыми. Определите, сколько в этой строке слов, у которых первая буква содержится в слове более одного раза.

Вариант 3. Дана строка слов. Сформируйте новую строку, удалив пробелы, с которых может начинаться строка, а каждую внутреннюю группу пробелов замените одним пробелом. Подсчитайте количество слов в данной строке и количество слов, у которых первая и последняя буквы совпадают.

Вариант 4. Дана строка слов, разделенных пробелами. Определите количество слов, которые встречаются более одного раза. Сформируйте строку из неповторяющихся слов.

Вариант 5. Дана строка слов, разделенных пробелами. Сформируйте строку из неповторяющихся слов, расположив их в алфавитном порядке.

Вариант 6. Дана строка слов, разделенных пробелами, запятыми, точками. Сформируйте новую строку из пяти самых длинных слов. Определите количество слов, начинающихся первой буквой алфавита (русского или латинского).

Вариант 7. Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym пробел. Подсчитайте количество различных слов в образовавшейся строке.

Вариант 8. Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym запятую. Определите самое длинное слово в строке.

Вариант 9. Дана строка слов, разделенных пробелами и запятыми. Подсчитайте количество подстрок (заключенных между запятыми) в строке. Определите длину самого короткого слова.

Вариант 10. Дана строка слов, разделенных пробелами и запятыми. Подсчитайте количество слов в строке и сформируйте новую строку из самых длинных подстрок (заключенных между запятыми).

Методические рекомендации по выполнению практических работ

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


Методические рекомендации для самостоятельной работы

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

Подготовка к экзамену способствует закреплению, углублению и обобщению знаний, получаемых, в процессе обучения, а также применению их к решению практических задач. Готовясь к экзамену, студент ликвидирует имеющиеся пробелы в знаниях, углубляет, систематизирует и упорядочивает свои знания. На экзамене студент демонстрирует то, что он приобрел в процессе обучения по учебной дисциплине.


 

Заключение

После освоения учебной дисциплины, студенты смогут:

·       Понимать основные принципы ООП: инкапсуляция, наследование и полиморфизм.

·       Создавать собственные классы и объекты, а также манипулировать ими.

·       Использовать конструкторы, деструкторы, геттеры и сеттеры для работы с классами.

·       Работать с наследованием: использовать одиночное, множественное и виртуальное наследование, а также переопределение методов.

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

·       Реализовывать шаблоны классов и функций для создания обобщенного кода.

·       Работать с исключениями (exceptions) для обработки ошибок во время выполнения программы.

·       Работать со строками с помощью стандартных библиотечных функций, манипулировать символами в строках, выполнять операции сравнения и многое другое.


Библиографический список

1. Васильев А. Н. Самоучитель С++ с примерами и задачами [Электронный ресурс]/ Васильев А.Н.— Электрон. текстовые данные.— СПб.: Наука и Техника, 2016.

2. Васильев, А. Н. Объектно-ориентированное программирование на С++ / А. Н. Васильев. — Санкт-Петербург : Наука и Техника, 2016. 

3. Новиков, П. В. Объектно-ориентированное программирование : учебно-методическое пособие к лабораторным работам / П. В. Новиков. — Саратов : Вузовское образование, 2017. — 124 c.

4. Букунов, С. В. Основы объектно-ориентированного программирования : учебное пособие / С. В. Букунов, О. В. Букунова. — Санкт-Петербург : Санкт-Петербургский государственный архитектурно-строительный университет, ЭБС АСВ, 2017. — 196 c.

5. Липпман, С. Язык программирования С++. Полное руководство / С. Липпман, Ж. Лажойе ; перевод А. Слинкин. — 2-е изд. — Саратов : Профобразование, 2019. — 1104 c. — ISBN 978-5-4488-0136-5

6. Professional C++, 3rd Edition. Marc Gregoire. ISBN: 978-1-118-85805-9. Paperback 984 pages. September 2014


Вам подходит эта работа?
Похожие работы
Другие работы автора
История
Контрольная работа Контрольная
5 Окт в 20:27
8 +1
0 покупок
История
Контрольная работа Контрольная
5 Окт в 20:20
10 +2
0 покупок
История
Контрольная работа Контрольная
5 Окт в 20:15
10 +2
0 покупок
История
Контрольная работа Контрольная
5 Окт в 20:01
13 +1
1 покупка
История России
Контрольная работа Контрольная
5 Окт в 13:40
11 +1
0 покупок
Русский язык и культура речи
Контрольная работа Контрольная
5 Окт в 13:28
13 +1
0 покупок
Административное право
Контрольная работа Контрольная
5 Окт в 11:53
10 +2
0 покупок
Криминалистика
Лабораторная работа Лабораторная
5 Окт в 11:49
11 +1
0 покупок
Железобетонные конструкции
Контрольная работа Контрольная
5 Окт в 11:30
13 +1
0 покупок
Технологические процессы в строительстве
Контрольная работа Контрольная
5 Окт в 11:14
14 +1
0 покупок
Металлические конструкции
Контрольная работа Контрольная
5 Окт в 11:09
14 +1
0 покупок
Техносферная безопасность
Отчет по практике Практика
5 Окт в 10:05
8 +2
0 покупок
Техносферная безопасность
Дипломная работа Дипломная
3 Окт в 19:29
14 +3
0 покупок
Техносферная безопасность
Курсовая работа Курсовая
3 Окт в 19:00
9 +1
0 покупок
Материаловедение
Лабораторная работа Лабораторная
3 Окт в 15:18
17 +1
0 покупок
Промышленное и гражданское строительство
Контрольная работа Контрольная
2 Окт в 20:18
15 +1
0 покупок
Темы журнала
Показать ещё
Прямой эфир