Определение проблемы. Лабораторная работа 1. Создание многофайлового проекта, использующего класс

Лабораторная работа 1. Создание многофайлового проекта, использующего класс

Цель занятия:

· совершенствовать навыки разработки программ;

· совершенствовать навыки работы с интегрированной средой разработки MS Visual C++;

· изучить фундаментальные аспекты определения классов;

· приобрести начальные навыки разработки многофайловых приложений с использованием возможностей мастеров MS Visual C++.

Время на выполнение работы: 4 часа

Учебные вопросы:

1. Определение интерфейса класса

2. Использование Мастера создания классов С++

3. Использование разработанного класса

Подготовка к выполнению работы:

1. Изучить рекомендованную литературу (понятие класса и объекта, шаблоны классов).

2. Изучить материал настоящего руководства.

Материалы для подготовки к занятию:

1. Конспект лекций

2. [1] стр. 265-285.

Определение интерфейса класса

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

Первый вопрос, который необходимо рассмотреть при проектировании класса, — это природа подлежащей решению проблемы, и, исходя из этого, определить вид функций, представляемых в интерфейсе класса.

Определение проблемы

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

1. Вычисление объема СВох. Это фундаментальная характеристика объекта СВох, и ее реализация у вас уже имеется.

2. Сравнение объемов двух объектов СВох для определения того, который из них больше. Вероятно, необходимо поддерживать полный набор операций сравнения для объектов СВох. Версия оператора > у вас уже есть.

3. Сравнение объема объекта СВох с указанным значением, и наоборот. Реализация этого оператора > также уже имеется, но функции, поддерживающие другие операторы сравнения, придется реализовать дополнительно.

4. Сложение двух объектов СВох для создания нового объекта СВох, который будет содержать оба исходных. Таким образом, результат будет иметь как минимум сумму их объемов, но может быть и больше. У вас уже есть эта версия, которая перегружает оператор +.

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

6. Определение количества объектов СВох заданного размера, которое можно упаковать в другой объект СВох заданного размера. Это, по сути, деление, поэтому вы могли бы реализовать его, перегрузив оператор /.

7. Определение объема свободного пространства, которое остается в объекте СВох после помещения в него максимального количества объектов СВох заданного размера.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: