Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Задания к лабораторной работе 2






1. Создайте класс, который хранил бы информацию о книге: название, автор, дата издания. Создать несколько объектов. Если в конструктор передан сим­вольный параметр, например «а», то контролировать, начинается ли имя авто­ра с данной буквы. Если нет, то выводить сообщение об ошибке. Если пара­метр не задан, то контролировать не надо.

2. Определите класс t_end_d, которому при его создании передается текущее системное время и дата в виде параметров конструктора. Этот класс должен включать функцию-член, выводящую время и дату на экран. (Для нахождения и вывода на экран этих данных воспользуйтесь стандартной библиотечной функцией.)

3. Создайте класс box, конструктору которого передаются три величины типа double, представляющие длины сторон параллелепипеда. Класс box должен под­счи-тывать его объем и хранить результат типа double. Включите функцию­-член voi (), которая выводит на экран объем каждого объекта класса box.

4. Создайте класс stopwatch для имитации работы секундомера. Используйте конст­руктор для начальной установки секундомера в нуль. Образуйте две функции-члена класса start() и stop() соответственно для запуска и остановки секундомера. Вклю­чите в класс и функцию-член show() для вывода на экран величины истекшего про­межутка времени (время привести в секундах). Также используйте деструктор для автоматического вывода на экран времени, прошедшего с момента создания объек­та класса stopwatch до его удаления.

5. Одномерный массив в С – полезный и эффективный тип. Однако исполь-зование его может приводить к возникновению оши­бок. Частой ошибкой является попытка обращения к элементам, которые находятся за пределами массива. С++ справляется с этой проблемой с помощью определения типа, аналогичного массиву, в котором пределы могут быть проверены.

Напишите конструктор по умолчанию, динамически распределяющий 10 элементов массива; конструктор, принимающий в качестве параметра коли­чество размещаемых элементов. Также необходим деструктор удаляющий все распределенные элементы массива. Реализуйте следующие функции:

int& element(int i) – возвращения i -го элемента массива;

int ub() – для возвращения текущей верхней границы массива.

6. Определите класс cyl для хранения информации о цилиндре. Класс должен содержать конструктор задающий радиус и высоту цилиндра и функции вычисляю­щие объем и полную площадь цилиндра.

7. Создайте класс strtype, который динамически выделяет память под строку. Сама строка задается как параметр конструктора. Для выделения памяти используй­те операторы new и delete.

8. Напишите программу, которая создает безопасный двумерный массив целых чисел и перемножает матрицы A, B размерностью n*m. Размеры массива задать в виде параметров конструктора. Все матрицы размещаются в оперативной памяти динамически с помощью операции new, а значения n и m вводится по запросу с клавиатуры. В конце работы программы освободить выделенную память. Вывести исходные и результирующую матрицы.

9. Создайте класс prompt. Введите в него конструктор, который выводит на экран приглашение (строку) и затем позволяет ввести целые числа. Класс должен выделить память под строки с длинами, равными введенным це­лым числам, и случайным образом заполнить их. Функция-член op() должна сформировать новую строку и заполнить ее поочередно символами первой и второй строк.

10. Создайте класс strtype, который получает в качестве параметра длину строки (через конструктор) и выделяет под строку память. Функция full должна заполнить эту строку случайным образом. Сделайте так, чтобы при отсутствии параметров создавалась бы строка длиной 10 символов (память освободить дес­труктором).

11. Перегрузите конструктор из варианта 6, так чтобы при отсутствии пара­метров вычислялся объем цилиндра с высотой 9 и радиусом 5.

12. Создайте класс, содержащий поля: фамилия, имя, отчество, год рождения.

Добавьте конструктор по умолчанию, который бы динамически выделял память для каждого из полей. Добавьте деструктор для освобождения выде­ленной памяти при разрушении класса.

 

Прототип класса:

class record

{ public:

record(){};

char* surname;

char* name;

int* year;

~record() {};

};

13. Определите класс, содержащий информацию о комплексном числе. Класс должен содержать конструктор, который определяет комплексное число (действитель­ную и комплексную составляющие), если параметров нет, то комплексное чис­ло установить равным 3+3i. Класс должен содержать функцию, выводящую комп­лексное число, ее параметром должен быть объект. Создать функцию, перемножа­ющую два комплексных числа (в виде объектов) и возвращающую объект.

14. Создайте класс SEMI содержащий информацию о грузовике (скорость и масса), содержащий конструктор с двумя параметрами. В основной программе соз­дать массив объектов состоящий из 10 элементов и инициализировать их целы­ми числами. Напишите демонстрационную программу.

15. Определите класс strtype_a, в состав которого входит функция-член invert, инвертирующая строку и конструктор, параметрами его являются номер сим­вола, до которого будет произведено инвертирование и сама строка. По умол­чанию произвести инвертирование всей строки.

16. Создайте класс stack (стек) так, чтобы для стека память выделялась динамически. При этом длина стека должна задаваться параметром конструктора. (Не забудьте освободить эту память с помощью деструктора).

17. Определите класс CYL, который имеет конструктор с двумя параметрами (вы­сота и радиус). Создать функцию-член, вычисляющую объем цилиндра. Если в конструктор не передаются параметры, то вычислить объем куба со стороной 5.

18. Создайте класс strtype, который динамически выделяет память под нес­колько строк (их число и длину задать в конструкторе). Определите функцию, кото­рая возвращает ту строку, в которой наибольшее число букв 'a'. Память освобо­дить деструктором.

19. Создайте класс strtype, который получает в качестве параметра строку и число (через конструктор) и выделяет под нее память. Функция drob должна раз­делить эту строку на число строк, заданное в параметре конструктора. Сделайте так, чтобы при отсутствии параметров создавалась строка длиной 10 символов (память освободить деструктором).

20. Создать класс strtype, в состав которого входит функция-член invert, инвертирующая строку и конструктор, параметрами которого является сама строка. По умолчанию произвести инвертирование заданной по умолчанию строки.

21. Создайте класс stack (стек) так, чтобы для стека память выделялась динами-чески. При этом, длина и имя стека должны задаваться параметрами конст­руктора. Если параметров нет, то длину установить равной 20, а имя - " default". Память освободить деструктором.

22. Создайте класс queue (очередь). Для инициализации очереди используете конструктор. Составьте программу для демонстрации этого класса.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.