
2 семестр ФИБС / Информатика / Практика 3 / ПР3
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра ИИСТ
отчет
по практической работе №3
по дисциплине «Информационные технологии»
Тема: Друзья класса. Статические элементы класса
Студентка гр. номер |
|
ФИО |
Преподаватель |
|
Куракина Н.И |
Санкт-Петербург
20__
Цели работы.
Написать программу установки и вывода даты, используя понятие класса на языке С++.
Задание.
По введенной дате определите время года и номер декады месяца.
Предусмотреть:
возможность ввода даты
- 3 числами (день, месяц, год),
- одним числом (вводим день, месяц – 3, год - 2022),
- без параметров (дата 01.01.2000)
при помощи перегруженного конструктора;
определение времени года и декады месяца осуществить в виде отдельных функций-членов.
Создать как минимум три объекта класса при помощи разных конструкторов. Один объект – с датой вашего рождения. Применить ко всем объектам функции определения времени года и декады месяца.
Основные теоретические положения.
Что такое перегруженный конструктор?
Чтобы при создании экземпляра класса присвоить начальные значения полям, необходимо создать метод, имеющий такое же имя, что и название класса. Тип возвращаемого значения не указывается. Такой метод называется конструктором. Конструктор всегда автоматически вызывается при создании объекта. Во многих случаях перегрузка конструкторов позволяет добиться определенных преимуществ. Основной смысл в том, чтобы дать возможность программисту выбрать наиболее подходящий способ инициализации объекта. Например, один из конструкторов не принимает параметры, второй принимает два параметра, третий принимает три параметра. Позже, во время создания объекта, параметры передаются в качестве аргументов. Так компилятор сможет определить, какой из объявленных конструкторов применить при создании объекта.
Как создать перегруженный конструктор?
Перегрузка конструкторов очень схожа с перегрузкой функций (перегруженные функции – это функции, которые имеют одинаковое имя, но отличаются количеством или типами принимаемых параметров, либо – и тем и другим). Конструкторов в определяемом классе может быть несколько – по мере необходимости. Они должны иметь одинаковое имя, идентичное имени класса и обязательно должны отличаться сигнатурой.
Как определить время года по введённому месяцу?
Для этого нужно использовать оператор if(), который будет определять номер месяца и выводить соответствующее время года для этого номера (например, 4 месяц – апрель, значит, время года – весна) и логическую операцию или (||) , так как каждому времени года принадлежит три месяца.
Как определяется декада?
Декада – это одна из трёх частей месяца. Если числа месяца с 1 по 10 – это первая декада. С 11 по 20 – вторая. С 21 по 30 или 31 – третья. Для определения используется оператор if().
Результаты работы.
Общий вид программы:
Запускаем программу на выполнение.
При запуске программа просит ввести желаемую дату. Вводим 02.04.2022 через пробел:
Программа определила время года и декаду:
Далее программа предлагает ввести день, при этом месяц и год уже определены. Вводим 13 день. Программа определила время года и декаду – всё верно.
Далее программа просит ввести свою дату рождения. Вводим 21.01.2004 также через пробел. Программа определяет время года и декаду введённой даты – верно:
Далее программа использует уже заранее установленную дату (01.01.2000) и определяет ее время года и декаду - верно:
Выводы.
В результате выполнения практической работы была написана программа, определяющая время года и декаду для введённой даты с применением различных объектов класса и конструкторов. Получен навык работы с перегруженным конструктором. Использованы несколько способов ввода даты. Проверена правильность работы программы – программа работает корректно.