Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_2_2 Конструирование классов.doc
Скачиваний:
0
Добавлен:
17.11.2019
Размер:
163.33 Кб
Скачать

Лабораторная работа 2.2. Конструирование классов

ВНИМАНИЕ! Такие же задания выносятся на контрольную работу по первому модулю и на экзамен.

Цель: приобрести умения и навыки по созданию простых классов, без наследования.

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

1.1. Задания

  1. Создать класс «четное число», такой, что:

    1. его экземпляр может содержать только положительное четное число в диапазоне 2..200.

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

    3. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    4. его функция print() выводит на экран значение экземпляра, заключенное в двойные кавычки.

    5. его операция «+» перегружена: для двух четных чисел вычисляет их полусумму и возвращает четное число; при операции с обычным числом вычисляет сумму и возвращает целое число.

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

  1. Создать класс «нечетное число», такой, что:

    1. его экземпляр может содержать только положительное нечетное число в диапазоне 1..201.

    2. его конструктор без параметра создает экземпляр со значением 1, а конструктор с параметром при создании экземпляра округляет значение параметра до ближайшего нечетного числа в указанном диапазоне.

    3. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    4. функция print() выводит на экран значение экземпляра, заключенное в одинарные кавычки.

    5. операция «–» перегружена: для двух нечетных чисел вычисляет их разность и возвращает нечетное число, при операции с обычным числом вычисляет разность и возвращает действительное число.

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

  1. Создать класс «бухгалтерское число», такой, что:

    1. его экземпляр может содержать денежное выражение в диапазоне от ‑1 000 000.00грн до +1 000 000.00грн.

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

    3. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    4. функция print() выводит на экран значение экземпляра с пробелами перед каждой триадой цифр и круглыми скобками вокруг отрицательного значения, вместо знака «-».

    5. операция «+» перегружена для бухгалтерских и обычных чисел, вычисляет сумму, выводя предупреждение в случае выхода за диапазон.

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

  1. Создать базовый класс «комплексное число», такой, что:

    1. его экземпляр содержит действительную и мнимую часть ­– переменные с плавающей точкой.

    2. его конструктор без параметра создает экземпляр со значением 0.0+i0.0, а конструктор с параметрами создает экземпляр с соответствующей действительной и мнимой частью.

    3. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    4. функция print() выводит на экран значение экземпляра в виде (0.00±i0.00).

    5. операция «+» перегружена: для двух комплексных чисел вычисляет сумму, складывая отдельно действительные части и отдельно – мнимые части; при сложении с действительным числом увеличивается только действительная часть.

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

  1. Создать класс «вектор», такой, что:

    1. его экземпляр содержит три координаты – переменные с плавающей точкой. Особенность значений координат: знак третьей координаты автоматически становится таким, что их произведение всегда положительно.

    2. его конструктор без параметра создает экземпляр со значением 0.0 0.0 0.0, а конструктор с параметрами создает экземпляр с соответствующими значениями координат.

    3. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    4. функция print() выводит на экран значение экземпляра в <0.0 0.0 0.0>.

    5. операция «+» перегружена: для векторов вычисляет сумму, складывая попарно значения каждой координаты, а при сложении со скаляром увеличивает каждую координату на величину скаляра.

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

  1. Создать класс «точка», такой, что:

    1. его экземпляр содержит две координаты – положительные целые числа.

    2. его конструктор без параметра создает экземпляр со значением 0 0, а конструктор с параметрами создает экземпляр с соответствующими значениями координат.

    3. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    4. функция print() выводит на экран значение координат в формате <0:0>.

    5. его операция «+» перегружена: для двух точек создает новую точку, расположенную на середине отрезка, соединяющего эти две точки; при сложении с числом изменяет значение обеих своих координат на это число и возвращает свой адрес.

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

  1. Создать базовый класс «квадрат», такой, что:

    1. его экземпляр содержит размер стороны квадрата.

    2. его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением стороны.

    3. его методы позволяют получать и присваивать значения стороны и площади, выполняя при этом соответствующие преобразования.

    4. функция print_sqr() выводит на экран значение его площади.

    5. операция «+»перегружена: для двух квадратов создает новый квадрат суммарной площади, а при сложении с числом изменяет свою площадь на эту величину и возвращает новое значение площади.

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

  1. Создать базовый класс «нормированный вектор», такой, что:

    1. его экземпляр содержит две координаты – действительные числа. Модуль вектора всегда равен 1.0.

    2. его конструктор без параметра создает экземпляр со значением 1.0 0.0, а конструктор с параметрами создает экземпляр с соответствующими значениями координат. Если при этом модуль отличен от 0, вектор нормируется.

    3. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    4. функция print() выводит на экран значение координат в формате Х=0.0, Y=0.0.

    5. операция «*» перегружена: вычисляет скалярное произведение двух векторов, и создает новый вектор при умножении вектора и скаляра.

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

  1. Создать базовый класс «буква», такой, что:

    1. он содержит перечислимый тип, обозначающий 4 цвета.

    2. его экземпляр содержит код буквы латинского алфавита и цвет этой буквы.

    3. его конструктор без параметра создает экземпляр со значением «пробел», цвет белый, а конструктор с параметрами создает экземпляр с соответствующими значениями буквы и цвета.

    4. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    5. функция print() выводит на экран букву и ее цвет.

    6. операция «+» перегружена: для букв возвращает букву со значением левого операнда и с цветом правого операнда, при сложении буквы с целым числом увеличивает значение цвета на величину числа «по кругу» и возвращает целое число, соответствующее новому цвету.

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

  1. Создать базовый класс «правильный многоугольник», такой, что:

    1. его экземпляр содержит количество вершин (не менее 3) и радиус описанной окружности (не менее 1.0).

    2. его конструктор без параметра создает треугольник с минимальным значением радиуса, а конструктор с параметрами создает экземпляр с соответствующим количеством вершин и радиусом.

    3. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    4. функция print() выводит на экран сообщение о количестве вершин, радиусе и площади многоугольника.

    5. операция «+» перегружена: для многоугольников возвращает многоугольник с суммарным количеством вершин и суммарной площадью, при сложении многоугольника с целым числом увеличивается значение площади.

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