Загрузка...

Лабораторная работа 2


Цель работы: Ознакомиться со структурой класса, его созданием и использованием, описанием членов-данных класса и методов доступа к ним, возможностью инициализации объектов класса с помощью конструкторов и уничтожением их с помощью деструкторов.

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. Как можно обратиться к членам-данным и членам-функциям класса?

Загрузка...