Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование задач с применением структурированных данных. Лабораторный практикум.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
– длина;
- материал (дуб, сосна, липа).
Дополнительные поля класса «Шкаф»:
– ширина;
– длина;
- высота;
- цвет (венге, венге/дуб, эбони/белый, орех, бук).
Вариант № 26
Базовый класс – «Сетевые кабели», производные классы «Коаксиаль­ный», «Витая пара».
Поля базового класса:
– название;
- тип кабеля (например, коаксиальный, витая пара);
- вид типа кабеля (для коаксиального - тонкий, толстый; для витой пары –
неэкранированная, экранированная);
- длина сегмента в м (для коаксиального кабеля: тонкий - 185, толстый -
500; для витой пары – 100);
- количество узлов на одном сегменте (для коаксиального кабеля: тонкий
- 30, толстый - 100; для витой пары – 2);
- цена.
Дополнительные поля класса «Коаксиальный»: – стандарт Ethernet (например: 10BASE-5 (толстый коаксиальный кабель с тол-
щиной кабеля 0,5 дюйма), 10BASE-2 (тонкий коаксиальный кабель с толщиной кабеля 0,2 дюйм))
- марка кабеля (для толстого кабеля - RG-8, RG-11; для тонкого кабеля -
RG-58/U, RG-58 A/U).
Дополнительные поля класса «Витая пара»:
– категория (5Е, 6Е, 7Е, 8Е);
- варианты экранирования (FTP – один общий экран, U/FTP - экраниро-
вание каждой пары отдельно, S/FTP – экранирование каждой пары отдельно и дополнительно общий экран).
Вариант № 27
Базовый класс – «Изделия», производные классы «Процессор», «Память», «Диск»,
Поля базового класса:
– тип изделия;
– количество на складе.
Дополнительные поля класса «Процессор»:
– тактовая частота в МГц;
– скорость;
– разрядность (32/64 бит).
Дополнительные поля класса «Память»:
131
– тип памяти (например, DDR3 SDRAM, DDR4 SDRAM, DDR5 SDRAM);
– тактовая частота шины (возможные значения находятся в интервале от
800 до 8400 МГц.
Дополнительные поля класса «Диск»:
- объем данных в ГБ или ТБ;
– интерфейс (стандарт обмена данными), возможные значения - ATA
(IDE, PATA), SATA.
Вариант № 28
Базовый класс – «Дополнительные устройства», производные классы «Монитор», «Клавиатура», «Мышь».
Поля базового класса:
– тип устройства;
– цена.
Дополнительные поля класса «Монитор»:
– модель;
– длина диагонали;
- разрешение.
Дополнительные поля класса «Клавиатура»:
– тип клавиатуры (мембранная, механическая);
– количество кнопок (стандартное – 105, нестандартное).
Дополнительные поля класса «Мышь»:
– тип (механическая, оптическая, дистанционная);
– разъем для подключения (к порту РС/2, USB-порту).
Вариант № 29
Базовый класс – «Вспомогательные устройства», производные классы «Видеокарта», «Принтер», «Сканер».
Поля базового класса:
– тип устройства;
– цена;
- количество на складе.
Дополнительные поля класса «Видеокарта»:
– тип видеопамяти (возможные значения - GDDR2, GDDR3, GDDR4 или
GDDR5);
– объем видеопамяти в Mb, или Gb.
Дополнительные поля класса «Принтер»:
– модель принтера;
– скорость печати в стр./мин.
Дополнительные поля класса «Сканер»:
– оптическое разрешение, возможные значения - от 600 dpi до 1200 dpi;
– скорость сканирования (страниц в минуту).
132
Вариант № 30
Базовый класс – «Печатающие устройства», производные классы «Лазер­ные принтеры», «Струйные принтеры».
Поля базового класса:
- название;
– модель;
- производитель (например, Canon, Epson, HP);
- качество печати (хорошее – струйные принтеры, высокое – лазерные
принтеры);
- разрешение печати в dpi (струйные: 600 - 720; лазерные 600-1200);
- цена.
Дополнительные поля класса «Лазерные принтеры»:
– цвет печати (монохромная, цветная);
- максимальный формат листа (А4, А1);
- физические носители (обычная и фотобумага, пленка, открытка, конверт
и т.д.);
- ресурс картриджа (1000 – 4000 отпечатков).
Дополнительные поля класса «Струйные принтеры»:
– размер лотка (от 50 до 250 листов);
- скорость печати.
Вариант № 31
Базовый класс – «Канцтовары», производные классы «Бумага», «Каран­даши», «Фломастеры».
Поля базового класса:
– название;
– цена.
Дополнительные поля класса «Бумага»:
– формат (А4, А5, А1);
- количество листов (250, 500 и т.д.);
- марка (А, В, С);
- белизна в % (125, 146 и т.д.).
Дополнительные поля класса «Карандаши»:
– мягкость или твердость (возможные значения - Т, М, ТМ);
– цвет.
Дополнительные поля класса «Фломастеры»:
– количество цветов;
- назначение (для бумаги, для доски).
Вариант № 32
Базовый класс – «Кухонные приборы», производные классы «Блендеры»,
«Мясорубки», «Пароварки».
Поля базового класса:
– название;
133
- производитель;
– цена.
Дополнительные поля класса «Блендеры»:
– тип (погружной, стационарный);
- цвет (белый, серый и т.д.);
- материал корпуса (пластик, металл);
- максимальная мощность (300 Вт, 750 Вт).
Дополнительные поля класса «Мясорубки»:
– производительность кг/мин.;
- количество дисков для фарша (2, 4);
- максимальное время непрерывной работы в мин. (15, 20, 30).
Дополнительные поля класса «Пароварки»:
– общий объем в л;
- таймер в мин. (30, 60);
- количество ярусов (2, 3).
Вариант № 33
Базовый класс – «Бытовая техника», производные классы «Газовая пли­та», «Холодильник», «Пылесос».
Поля базового класса:
– название;
– цена;
- производитель;
- количество на складе.
Дополнительные поля класса «Газовая плита»:
– цвет (белый, коричневый);
- количество конфорок (2, 4);
- объем духовки в л (например, 52, 60);
- вид газа (природный, сжиженный).
Дополнительные поля класса «Холодильник»:
– объем холодильной камеры в л (220, 330, 440);
– объем морозильной камеры (78, 85, 90);
- количество полок (3, 4).
Дополнительные поля класса «Пылесос»:
– потребляемая мощность (1700-2000 Вт);
- мощность всасывания (300-350 Вт).
Вариант № 34
Базовый класс – «Каменные строительные материалы», производные классы «Песок», «Гравий», «Щебень».
Поля базового класса:
– название;
– цена;
- вид (тяжелые – более 1800 кг/м3, легкие – от 1800 до 1200 кг/м3, особо
134
легкие - менее 1200 кг/м3).
Дополнительные поля класса «Песок»:
– модуль крупности (крупный, средний, мелкий);
- плотность песка (1300-1500 кг/м3).
Дополнительные поля класса «Гравий»:
– плотность гравия (2.6 – 2.7 т/м3);
– объемный вес (1200-1600 кг/м3);
- форма зерен (округлая, угловатая).
Дополнительные поля класса «Щебень»:
– прочность (высокопрочный, прочный, средней прочности);
- происхождение (гранитный, гравийный, известняковый, вторичный).
Вариант № 35
Базовый класс – «Деревянные строительные материалы», производные классы «Фанера», «ДСП», «ДВП».
Поля базового класса:
– название;
– цена;
- производитель.
Дополнительные поля класса «Фанера»:
– толщина в мм;
- твердость в МПа (9-30);
- звукоизоляция в Дб (6.5 – 30).
Дополнительные поля класса «ДСП»:
– плотность ДСП (0,5 – 1,0 г/см3);
- набухание в воде (5 – 30 %);
- влажность (5-12%).
Дополнительные поля класса «ДВП»:
- длина (от 1220 до 3000 мм);
- ширина (от 1220 до 1700 мм);
- толщина (от 2.5 до 40 мм);
- плотность (от 250 до 1100 кг/м3).
Вариант № 36
Базовый класс – «Чай», производные классы «В упаковке», «В пакетиках».
Поля базового класса:
– название;
- тип (краснодарский, грузинский, китайский, цейлонский);
– цена;
- производитель;
- масса нетто в г (например, 50, 100, 150).
Дополнительные поля класса «В упаковке»:
– вид (листовой, гранулированный);
- добавка (нет, цветочная, фруктовая).
135
Дополнительные поля класса «В пакетиках»:
– количество пакетиков;
- вес пакетика в г (2, 3 или 5).
Вариант № 37
Базовый класс – «Печатная продукция», производные классы «Газеты», «Журналы».
Поля базового класса:
– название;
- издательство;
- периодичность издания;
- адрес редакции;
- главный редактор;
- розничная цена.
Дополнительные поля класса «Газеты»:
– подписной индекс;
- учредитель.
Дополнительные поля класса «Журналы»:
– направление (научно-технический, научно-практический, литератур- ный, исторический и т.д.);
- номер;
- год издания.
Вариант № 38
Базовый класс – «Принтеры», производные классы «Струйные», «Лазер­ные».
Поля базового класса:
– название;
- производитель (например, Canon, Epson, HP);
- скорость печати;
- разрешение печати в dpi (струйные: 600 - 720; лазерные 600-1200);
- цена.
Дополнительные поля класса «Струйные»:
– размер лотка (от 50 до 250 листов);
- качество печати (хорошее, высокое).
Дополнительные поля класса «Лазерные»:
– цвет печати (монохромная, цветная);
- максимальный формат листа (А4, А1);
- физические носители (обычная и фотобумага, пленка, открытка, конверт
и т.д.);
- ресурс картриджа (1000 – 4000 отпечатков).
Вариант № 39
Базовый класс – «Кабели», производные классы «Витая пара», «Оптово­локно».
Поля базового класса:
136
– название;
- тип кабеля (например, витая пара, оптоволокно);
- вид типа кабеля (для витой пары – неэкранированная, экранированная;
для оптоволокна: одномодовое, многомодовое);
- длина сегмента в м (для витой пары – 100; для оптоволокна – одномодо-
вое - 1000, многомодовое - 2000);
- количество узлов на одном сегменте (для витой пары – 2; для оптово-
локна – 2);
- цена.
Дополнительные поля класса «Витая пара»:
– категория (5Е, 6Е, 7Е, 8Е);
- варианты экранирования (FTP – один общий экран, U/FTP - экранирова-
ние каждой пары отдельно, S/FTP – экранирование каждой пары отдельно и до­полнительно общий экран).
Дополнительные поля класса «Оптоволокно»:
– вид жилы (стеклянная или пластмассовая);
- диаметр жилы (одномодовый кабель – 7-10 микрон; многомодовый – 50
микрон (европейский стандарт), 62,5 микрон (стандарт Северной Америки и Японии));
- сфера применения (магистральный, зоновый, городской, полевой);
- способ монтажа (в земле, в канализации, в воде, по воздуху).
Вариант № 40
Базовый класс – «Сетевое оборудование», производные классы «Комму-
таторы», «Маршрутизаторы».
Поля базового класса:
– название;
- производитель;
- цена.
Дополнительные поля класса «Коммутаторы»:
– скорость фильтрации кадров (количество кадров в секунду);
- скорость продвижения кадров (количество кадров в секунду);
- максимальная длина кадра (например, 100-1500 байт);
- пропускная способность (5-10 Мб/с);
- задержка передачи кадра (от 10-40 мкс до 500 мкс).
Дополнительные поля класса «Маршрутизаторы»:
- перечень поддерживаемых сетевых протоколов (IP, CONS, CLNS OSI,
IPX и т.д.);
- перечень протоколов маршрутизации (IP RIP, IPX RIP, NLSP и т.д.);
- сетевые стандарты (Ethernet, Token Ring, FDDI, Fast Ethernet, Gigabit
Ethernet, ATM и т.
д.);
- общая производительность маршрутизатора в пакетах в секунду (от 10
тыс. пак. /сек до 10 млн пак. / сек);
- внутренние протоколы маршрутизации (GGP, RIP, OSPF и т.д.);
- внешние протоколы маршрутизации (EGP, BGP).
137

ЛАБОРАТОРНАЯ РАБОТА № 9

Поле
Пояснение
value_type
Тип элемента контейнера
size_type
Тип индексов, счетчиков элементов и т.д.
iterator
Итератор
const_iterator
Константный итератор
reverse_iterator
Обратный итератор
const_reverse_iterator
Константный обратный итератор
reference
Ссылка на элемент

РАБОТА С КОНТЕЙНЕРНЫМИ КЛАССАМИ И МОДУЛЯМИ

9.1. Общие сведения о контейнерных классах и векторах

Цель лабораторной работы–- освоение технологий работы с контейнер-
ными классами и модулями.
Контейнерные классы – это классы, предназначенные для хранения дан­ных, организованных определенным образом. Для каждого типа контейнера определены методы для работы с его элементами, не зависящие от конкретного типа данных элементов контейнера. Таким образом, один и тот же вид контей­нера можно использовать для хранения данных различных типов.
К контейнерам, которые работают в программе с основными структурами данных, можно отнести векторы, двусторонние очереди, списки и их разновид­ности, словари и множества.
Контейнеры можно разделить на два типа: последовательные и ассоциа­тивные.
Последовательные контейнеры обеспечивают хранение конечного коли-
чества однотипных величин в виде непрерывной последовательности. К ним относятся векторы (vector), двусторонние очереди (deque) и списки (list), а так­же так называемые адаптеры, то есть варианты, контейнеров – стеки (stack), очереди (queue) и очереди с приоритетами (priority_queue).
Ассоциативные контейнеры обеспечивают быстрый доступ к данным по ключу. Эти контейнеры построены на основе сбалансированных деревьев. Су­ществует пять типов ассоциативных контейнеров: словари (map), словари с дубликатами (multimap), множества (set), множества с дубликатами (multiset) и битовые множества (bitset).
Контейнерные классы обеспечивают стандартизованный интерфейс при
их использовании. Смысл одноименных операций для различных контейнеров одинаков, основные операции применимы ко всем типам контейнеров.
Практически в любом контейнерном классе определены поля типов, при-
веденных в табл. 10.
Таблица 10
Поля контейнеров
138
Окончание табл. 10
Поле
Пояснение
const_reference
Константная ссылка на элемент
key_type
Тип ключа (для ассоциативных контей­неров)
key_compare
Тип критерия сравнения
Метод
Пояснение
iterator begin(), const_iterator begin() const
Указывают на первый элемент iterator end(), const_iterator end() const
Указывают на последний элемент
reverse_iterator rbegin(), const_reverse_iterator rbegin() const
Указывают на первый элемент в об­ратной последовательности
reverse_iterator rend(),
Указывают на элемент, следующий
тельности
Метод
Пояснение
size()
Число элементов
max_size()
Максимальный размер контейнера
empty()
Булевская функция, показывающая, пуст ли
Итератор является аналогом указателя на элемент. Он используется для просмотра контейнера в прямом или обратном направлении. Итератора должен уметь ссылаться на элемент контейнера и реализовывать операцию перехода к его следующему элементу.
Для итераторов определены следующие методы, приведенные в табл. 11.
Таблица 11
Методы итераторов
const_reverse_iterator rend() const
за последним, в обратной последова-
Во всех контейнерах определены методы, позволяющие получить сведения о размере контейнеров. Список методов указан в табл. 12.
Таблица 12
Методы для получения сведений о размере контейнеров
контейнер
139
Примеры создания векторов:
//Создается вектор из 10 равных единице элементов vector <int> v2 (10, 1); //Создается вектор, равный вектору v1: vector <int> v4(v1); //Создается вектор из двух элементов, //равных первым двум элементам v1 vector <int> v3(v1.begin(), v1.begin()+2); //Создается вектор из 10 объектов класса Train //Работает конструктор по умолчанию vector <Train> t1(10);
Определены следующие методы для изменения объектов класса vector. void push_back(const T& value);
Функция push_back добавляет элементы в конец вектора. void pop_back();
Функция pop_back удаляет элементы из конца вектора. iterator insert(iterator position, const T& value); void insert(iterator position, size_type n, const T& value); template <class InputIter> void insert(iterator position, InputIter first, InputIter
last);
Функция insert служит для вставки элемента в вектор. Первая форма функции вставляет элемент value в позицию, заданную первым параметром (итератором), и возвращает итератор, ссылающийся на вставленный элемент. Вторая форма функции вставляет в вектор n одинаковых элементов. Третья форма функции позволяет вставить несколько элементов, которые могут быть заданы любым диапазоном элементов подходящего типа, например:
vector <int> v(2), v1(3,9);
int m[3] = {3, 4, 5};
v.insert(v.begin(), m, m+3); // Содержимое v: 3 4 5 0 0
v1.insert(v1.begin() + 1, v.begin(), v.begin() + 2);
//Содержимое v1: 9 3 4 9 9
Функция erase служит для удаления одного элемента вектора (первая форма функции) или диапазона, заданного с помощью итераторов (вторая форма):
vector <int> v;
for (int i = 1; i<6; i++) v.push_back(i);
//Содержимое v: 1 2 3 4 5
140
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]