Цель работы: Ознакомиться со структурой класса, его созданием и использованием, описанием членов-данных класса и методов доступа к ним, возможностью инициализации объектов класса с помощью конструкторов и уничтожением их с помощью деструкторов.
1. Порядок выполнения работы
1. Ознакомьтесь с теоретическими сведениями?
2. Разберите работу программы 1.
Выясните следующие вопросы:
— Что если метод SetField поместить в открытую часть класса, чтобы иметь возможность модификации поля field1?
— Что если в конструктор с двумя параметрами добавить значение по умолчанию для поля field2?
— Что если в класс First добавить третий конструктор, который принимает в качестве параметра значение поля field3 и устанавливает по умолчанию значение поля field2?
— Что если необходимо указывать входной параметр для field3, а field2 инициализировать некоторым значением по умолчанию?
3. Выполните индивидуальное задание?
2? Индивидуальные задания
1. Создать класс, который выполняет вычисления с двумя операндами, которые вводятся с командной строки. Знак операции тоже задается в командной строке. Обеспечьте вывод результата на экран.
2. Создать класс, который по заданным координатам вычерчивает многоугольник на экране компьютера. Координаты задаются как параметры конструктора. Если координата равна 0, то угол отсутствует.
3. Определите класс histogram (гистограмма), в котором ведется подсчет чисел в определенных интервалах, которые задаются как параметры конструктора histogram. Данные для гистограммы даны в текстовом файле. Обеспечьте функцию вывода гистограммы на экран.
4. Определите класс, генерирующий случайные числа с нормальным распределением. Класс имеет конструктор, задающий параметры распределения, и функцию, которая печатает таблицу данных на экран и в файл.
5. Определите класс Time, реализующий понятие времени. Также напишите программу, использующую созданный класс для вычисления предыдущего и последующего времени, выводящую его на экран. Текущее время задается с клавиатуры или считывается с системного времени компьютера.
6. Определите класс Date, реализующий понятие даты. Также напишите программу, использующую созданный класс. Она должна вычислять предыдущий или последующий день. Устанавливать и распечатывать текущий день, используя введенную дату с клавиатуры или взяв системную дату.
7. Определите класс MeсяцГода, реализующий понятие месяца в году. Также напишите программу, использующую созданный класс. Она должна вычислять предыдущий или последующий месяц. Устанавливать и распечатывать текущий месяц, используя введенную дату с клавиатуры или взяв системную дату.
8. У шейха есть самолеты. Напишите программу, выдающую по вводу идентификатора информацию по каждому самолету. В качестве этой информации используйте 3-4 из наиболее важных, с вашей точки зрения, свойства.
Пример работы:
Имя? Боинг 4HG23
Это самолет. Скорость: 1223
Макс.высота: 234
пассажиров: 121
статус: вчера разбился
9. Напишите свой класс СтрокаВвода и программу, использующую этот класс. Определите различные функции, работающие со строками.
10. Определите свой класс File, осуществляющий работу с файлами. Класс File должен иметь возможность взаимодействовать со стандартными функциями С для работы с файлами.
11. В записной книжке хранится следующая информация:
Страница: знакомый; номер телефона
Знакомый: фамилия, имя, отчество
Количество записей на странице — 1…20
Количество страниц от А…Я
Данные в записную книжку заносятся с клавиатуры.
Напишите программу, которая будет определять, есть ли сведения о знакомом с заданной фамилией или по заданному номеру телефона определять хозяина телефона.
12. Имеется база данных жителей города:
Житель: фамилия, город
Адрес: улица, дом, квартира
Данные в базу считываются из файла.
Напишите программу, которая печатает фамилии двух жителей, живущих в разных городах, но по одинаковому адресу.
3? Отчет по работе
— Название работы и ее цель;
— Ответы на поставленные вопросы в порядке проведения работы;
— Листинг разработанной и отлаженной программы индивидуального задания?
4? Вопросы по лабораторной работе
1. Что такое класс? Приведите аналог класса в Си. Для чего описываются классы?
2. Чем отличается класс от структуры?
3. Для чего члены класса разбиваются на 3 области доступа?
4. Для чего в классе определяется конструктор? Сколько может быть конструкторов в классе? Когда вызывается конструктор?
5. Может ли быть конструктор описан в области доступа private?
6. Для чего в классе определяется деструктор? Сколько может быть деструкторов в классе? Когда вызывается деструктор?
7. Может ли быть деструктор описан в области доступа private?
8. Что такое конструктор, деструктор по умолчанию? Когда они вызываются?
9. Что такое экземпляр класса?
10. Как можно обратиться к членам-данным и членам-функциям класса?
