Цель работы: Ознакомиться со структурой класса, его созданием и использованием, описанием членов-данных класса и методов доступа к ним, возможностью инициализации объектов класса с помощью конструкторов и уничтожением их с помощью деструкторов.
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. Как можно обратиться к членам-данным и членам-функциям класса?