Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск

Кто сейчас на форуме
Сейчас посетителей на форуме: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1

Нет

[ Посмотреть весь список ]


Больше всего посетителей (9) здесь было Вс Фев 11, 2018 12:54 pm
Самые активные пользователи за неделю
Ярослав
 


[П 32017] Домашние задания

Перейти вниз

[П 32017] Домашние задания

Сообщение автор Ярослав в Вс Апр 22, 2018 8:36 am

Д/з №01 (22 апреля 2018)
Классы
Срок: по 28 апреля

1. Написать класс числового счётчика. Примерами числовых счётчиков являются счётчики воды, электричества, счётчик пробега в автомобиле.

Счётчик инкапсулирует (скрывает) в себе две целочисленные переменные: текущее показание и максимальное возможное значение. Текущее показание может только увеличиваться. По достижении максимального значения счётчик автоматически переполняется и обнуляется.

Данные класса приватные, доступ к ним возможен только через следующие публичные методы:
• узнать текущее показание счётчика;
• узнать максимальное возможное значение счётчика;
• увеличить текущее показание счётчика на 1 (с автоматическим переполнением, если надо).

Какие здесь требуются конструкторы и деструкторы?

2. Написать класс Group, описывающий группу студентов. Он, в свою очередь, опирается на класс Student, описывающий одного студента.
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Апр 29, 2018 8:41 am

Д/з №02 (29 апреля 2018)
Классы. Конструктор копирования
Срок: по 12 апреля

1. Разработать класс Person, который содержит соответствующие члены для хранения:

• имени
• даты рождения
• пола
• телефонного номера
• адреса электронной почты

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

2. Написать класс стэка на основе динамического массива из целых чисел. Стэк должен поддерживать операции:

• добавить элемент на вершину стэка
• извлечь элемент с вершины стэка
• узнать число элементов
• конструктор копирования
• деструктор
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Май 13, 2018 8:41 am

Д/з №03 (13 мая 2018)
Перегрузка операторов. Константные методы
Срок: по 19 мая

1. Создайте класс Time (время), хранящий в себе момент времени в сутках: часы, минуты, секунды. Перегрузите следующие операторы:

• Оператор сложения: при сложении момента времени Time и int (целого числа секунд) получается новый экземпляр Time, смещённый относительно исходного момента времени. При этом может происходить переполнение, например, вместо 25 часов должно получиться 1.
• Оператор вычитания: при вычитании момента времени Time и int (целого числа секунд) получается новый экземпляр Time, смещённый назад. Обработать возможность переполнения вниз (не должно быть -1 часа)
• Оператор вычитания моментов времени: при вычитании из одного Time другого Time должно получаться int (целое число секунд) — разница между моментами времени в секундах

• Оператор преобразования типа: из Time в int. Момент времени внутри суток можно представить как одно большое целое число — сколько секунд прошло начиная с момента 0:00:00. Это делается по формуле hours * 3600 + minutes * 60 + seconds.
• Конструктор для обратного преобразования: из int в Time

• Оператор присваивания: выражение Time = Time означает команду скопировать состояние объекта справа в объект слева. Оператор присваивания возвращает ссылку на объект слева.

2. В этом же задании проследите, чтобы все методы, не изменяющие состояние объекта, были помечены ключевым словом const.

Объекты везде, где можно, нужно передавать по константной ссылке.
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Май 20, 2018 8:45 am

Д/з №04 (20 мая 2018)
Перегрузка операторов ++, --, []
Срок: по 26 мая

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

Перегрузить следующие операции:
• ++a: увеличивает на 1 все значения в массиве, возвращает ссылку на сам объект
• a++: увеличивает на 1 все значения в массиве, возвращает копию старого состояния массива
• --a: уменьшает на 1 все значения в массиве, возвращает ссылку на сам объект
• a--: уменьшает на 1 все значения в массиве, возвращает копию старого состояния массива

• int a[i]: позволяет прочитать значение из массива по индексу i
• int &a[i]: позволяет записать значение в массив по индексу i
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Май 27, 2018 8:41 am

Д/з №05 (27 мая 2018)
Дружественная перегрузка, ввод и вывод
Срок: по 2 июня

1. Создайте класс DateTime, хранящий в себе момент времени (дата + время).

Класс обязан предоставлять следующие перегруженные операторы:
• Сравнение двух моментов времени, какой из них раньше. Операторы < > <= >= == != (используйте глобальную перегрузку)

Во внутреннем устройстве класса используйте библиотеку <time.h>:
• Встроенные типы time_t, tm
• Функции localtime(), mktime(), strftime().
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Июн 03, 2018 8:37 am

Д/з №06 (03 июня 2018)
Оператор ->
Срок: по 9 июня

1. Напишите класс Book (Книга), описывающий данные об одной книге: название, автор, год выпуска.

Заведите глобальную переменную — статический массив Книг.

Напишите класс LimitedPointer (Ограниченный указатель), который будет скользящим указателем в пределах этого массива. Этот класс устроен так:

• Внутри скрывается указатель на позицию элемента в массиве
• Класс изо всех сил притворяется указателем, то есть переопределяет те же операции, что есть у обычного указателя
• Класс перегружает операции смещения в пределах массива: ++, --, +=, -= (смещение на 1 элемент вправо или влево, смещение на n элементов вправо или влево)
• Указатель не допускает выход за пределы массива. При попытке выйти за край массива программа аварийно завершает работу
• Класс перегружает операции доступа к элементу: *p, p->field, p[i]
• Операции смещения + и -, не модифицирующие this, а конструирующие новый указатель типа LimitedPointer.
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Июн 10, 2018 8:41 am

Д/з №07 (10 июня 2018)
Стэк и очередь
Срок: по 16 июня

1. Написать программу, вводящую последовательность символов и печатающую их в обратном порядке. Использовать стэк.

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

3. Во время некоторой игры игрок набирает сколько-то очков. Игра помнит топ 5 победителей — игроков, набравших наибольшее число очков. По окончании игры система предлагает добавить пользователя в топ-5, если он набрал достаточное число очков.

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

Пример:

Код:
Сколько очков вы набрали? 55
Введите ваше имя: Артём

Мария 100
Никита 90
Артём 55
Денис 25

Хотите сыграть ещё?
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Июн 17, 2018 8:43 am

Д/з №8 (17 июня 2018)
Односвязный и двусвязный списки. Шаблонные классы
Срок: по 24 июня

1. Добавить и реализовать в классе односвязного списка функции:

• Вставка нового элемента в произвольное место списка. Место задаётся порядковым номером элемента, перед которым надо вставить. (Например, 0 означает «вставить в начало».)
• Удаление произвольного элемента из списка. Элемент задаётся порядковым номером. (Например, 0 означает «удалить первый элемент».)
• Поиск элемента в списке. Задаётся значение, которые мы ищем. Функция возвращает указатель на найденный элемент или NULL, если такого в списке нет.

2. Реализовать ШАБЛОННЫЙ класс «Очередь» на основе двусвязного списка: полезная нагрузка, хранимая в каждом звене списка должна иметь произвольный тип данных T.
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Июн 24, 2018 8:46 am

Д/з №09 (24 июня 2017)
Бинарные деревья. Файлы
Срок: по 30 июня

1. Математическое множество (Set) — набор из нескольких не повторяющихся значений. Реализовать класс Set на основе бинарного дерева поиска, где ключ совпадает с хранимым значением. Предоставить следующие операции:

• contains (int) — Содержит ли множество элемент?
• add (int) — Добавляет элемент в текущее множество
• remove (int) — Удаляет элемент из текущего множества
Перегрузите операторы:
• Set | Set = Set. Объединение множеств: все элементы из первого или второго множества.
• Set & Set = Set. Пересечение множеств: только элементы, входящие в оба множества одновременно.
• Set - Set = Set. Вычитание множеств: только элементы из первого множества, которые отсутствуют во втором.
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Июл 01, 2018 3:09 pm

Д/з №10 (01 июля 2018)
Работа с файловой системой. Аргументы командной строки
Срок: по 7 июля

1. Необходимо создать набор программ:

• Программа для копирования каталогов (копируются все вложенные папки и файлы)
• Программа для перемещения каталогов (перемещаются все вложенные папки и файлы)
• Программа для удаления каталогов (удаляются все вложенные папки и файлы)

2. Обновить те же программы, чтобы они управлялись исключительно параметрами командной строки. Например:
• copy.exe c:\from d:\to
• move.exe c:\from d:\to
• delete.exe c:\from
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Июл 08, 2018 1:23 pm

Д/з №11 (08 июля 2018)
Работа с файлами средствами C++
Срок: по 14 июля

Изображение имеет размер 32 точки в ширину и 32 точки в высоту. Каждая точка имеет цвет, описываемый тремя числами: красный, зелёный и синий. Эти числа меняются в диапазоне от 0 до 255.

Создайте класс Color, описывающий цвет одной точки. Создайте класс Image, описывающий изображение. Операции с цветом помещайте в класс Color, а операции с изображением в целом — в класс Image.

Добавьте две операции сохранения Image в файл:

1. Операция saveText() сохраняет файл в текстовом формате. Содержимое файла:

Код:
32 32
255 255 255   0 0 0    ...
255   0   0   0 0 0    ...
... ... ...   .....    ...

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

2. Вторая операция, saveBinary(), сохраняет ту же информацию в двоичном виде.

3. Создайте объект-изображение и заполните его случайными числами. Сохраните его в два файла в разных форматах. Сравните размеры файлов.
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Июл 15, 2018 8:43 am

Д/з №12 (15 июля 2018)
Наследование
Срок: по 21 июля

1. Создайте базовый класс Fruit (фрукт) со следующими полями: вес, цена (числа) и название (строка). Поля должны быть закрытыми, с get- и set- функциями для доступа. Создайте 3 класса конкретных фруктов, унаследованных от Fruit:

• Apple (яблоко), с дополнительным полем: enum цвет (зелёный, жёлтый или красный).
• Banana (банан), с дополнительным полем: зрелый или нет
• Grape (виноград), без дополнительных полей.

Для новых полей заведите get- и set- методы.

2. Заведите массив фруктов. В массиве должны быть представлены все три вида фруктов. (Подсказка: массив должен содержать указатели; объекты фруктов надо выделять динамически с помощью слова new). Распечатайте информацию о хранящихся в массиве фруктах.
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Июл 22, 2018 8:35 am

Д/з №13 (22 июля 2018)
Виртуальные функции. Абстрактные классы. Интерфейсы
Срок: по 18 августа

1. Создайте абстрактный базовый класс Employee (сотрудник) с виртуальными функциями:

• const char *occupation () — должность
• const char *name () — имя
• int payment (int year, int month) — сколько зарабатывает за указанный месяц
• void work () — приказывает сотруднику работать

Функции могут быть как с телом, так и без (чисто виртуальными). Определите три конкретных класса, выведенных из Employee, и доопределите для них все функции.

2. Заведите массив разных сотрудников из первого задания. Используйте этот массив, чтобы:

• Распечатать перечень сотрудников
• Составить зарплатную ведомость за август 2018
• Заставить всех сотрудников трудиться

Обеспечьте своевременное удаление элементов массива!

3. Один из видов сотрудников — это директор сторонней компании, нанятой для выполнения определённых услуг.

• У директора в подчинении есть собственные сотрудники (которых он никому не показывает)
• Когда директор работает, он заставляет своих сотрудников работать.
• Когда требуется определить оплату работы компании, директор суммирует зарплаты своих работников, и не забывает свою зарплату
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Ярослав в Вс Авг 19, 2018 8:48 am

Д/з №14 (19 августа 2018)
Обработка ошибок с помощью исключений
Срок: по 25 августа

1. Создать класс Array, инкапсулирующий в себе массив фиксированного размера. Внутренний массив является приватным полем.

Перегрузить оператор [], дающий доступ к отдельным элементам по указанному целочисленному индексу. Доступ должен быть и для чтения, и для записи.

Добавить проверку выхода за пределы массива в операторе []. При попытке обратиться к некорректному элементу массива следует бросать исключение с текстом сообщения: такой-то индекс находится за пределами массива.

В main() проверить работу оператора []. Поймайте исключение и распечатайте его на экран.
avatar
Ярослав
Admin

Posts : 600
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 32017] Домашние задания

Сообщение автор Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения