Лабораторная работа №2 «Простые классы»
Задание 2.
· Разработать программу, реализующую простой класс на основе заданной структуры данных.
· Разработать набор функций-аксессоров вида get, set и show.
· Функция main должна иллюстрировать использование разработанного класса.
· Интерфейс класса необходимо разместить в заголовочном файле, а реализацию класса и главную функцию – в двух отдельных файлах.
Указания к решению (вариант 30)
Буддийские монастыри Японии периода Нара | |||
Название | Школа | Количество монахов | Площадь земли (га) |
Тодайдзи | Т | 368.8 | |
Якусидзи | С | 54.7 | |
Дайандзи | Д | 12.2 | |
Примечание: Т - Тэндай; С - Сингон; Д - Дзедзицу |
Описание полей класса
Начнем разработку класса с выбора типа данных для его полей. В соответствии с заданием наш класс должен иметь следующие поля: Название, Школа, Количество монахов, Площадь земли.
Название. Тип этого поля необходимо определить как char *, так как это позволит размещать строки различной длины, не обращая внимания на возможность выхода за границы массива.
Школа. Данное поле будет хранить всего лишь один символ, поэтому его тип мы определим как char.
Количество монахов. Для хранения данных данного поля достаточно типа int и так как эти данные не могут принимать отрицательные значения, то для исключения ошибок тип определим как unsigned int.
Площадь земли. Тип данного поля определим как float.
2. Функции-аксессоры
В соответствии с условиями задания наш класс должен иметь три функции-аксессора: set(), get(),show().
Начнем с функции set(). Задача этой функции - считать данные, вводимые пользователем с клавиатуры, и записать их в поля класса. Т.е для работы с функцией необходимо определить ряд переменных (параметров функции), типы которых соответствуют типам полей класса. При присваивании строковых полей необходимо воспользоваться функцией strcpy(), для чего не забыть в список используемых файлов библиотек подключить файл <string.h>.
Далее приступим к функции get(). Она отвечает за считывание значений из полей класса. Работа функции get()полностью аналогична работе функции set()за исключением того, что в роли приемника значений выступают переменные, а в роли передатчика - поля класса.
Необходимо обратить внимание на то, что для корректной работы со строковым полем требуется освободить память, занимаемую переменной, а затем выделить память размером с длину новой строки:
delete[] a; a = new char [strlen(name)+1];
Третья функция-аксессор show()производит вывод на экран значений полей класса и ее реализация не составляет особого труда (используйте потоки ввода-вывода).
2.1.
Некоторые виды антилоп | |||
Название | Группа | Место обитания | Численность популяции |
Джейран | A | Азия | |
Гну | B | Африка | |
Бейза | H | Африка | |
Групи: А - настоящие антилопы, B - коровьи антилопы, H - лошадиные антилопы |
2.2.
Фирмы - производители СУБД | |||
Фирма | Количество. продуктов | Годовой объем продажи ($) | Часть рынка (%) |
Oracle | 31.1 | ||
IBM | 29.9 | ||
Microsoft | 13.1 |
2.3.
Отдел кадров | |||
Фамилия | Инициалы | Год рожд | Оклад |
Иванов | И.И. | 517.50 | |
Петренко | П.П. | 219.10 | |
Паниковский | М.С. | 300.00 |
2.4.
Ведомость деталей | |||
Наименование | Тип | Количество | Вес 1 детали (г) |
Фланец | З | ||
Переходник | П | ||
Станина | О | ||
Примечание: принято такое кодирование типов: О - оригинальная, П - покупная, З - заимствованная |
2.5.
Характеристики ПЭВМ | |||
Процессор | Частота (Mgz) | RAM (Mb) | Тип |
Pentium-III | C | ||
AMD-К6 | C | ||
PowerPC-620 | R | ||
Тип: C - CISC-процессор, R - RISC-процессор |
2.6.
Каталог библиотеки | |||
Автор книги | Название | Год выпуска | Группа |
Сенкевич | Потоп | Х | |
Ландау | Механика | У | |
Дойль | Сумчатые | C | |
Примечание: Х - художественная литература; У - учебная литература; С - справочная литература |
2.7.
Ведомость комплектующих | |||
Обозначение | Тип | Номинал | Количество |
RT-11-24 | R | ||
RT-11-24 | R | ||
CGU-12K | C | 17.5 | |
Примечание: R - резистор; C - конденсатор |
2.8.
Проекты поиска внеземных сигналов | |||
Год | Научный руководитель | Диаметр антенны (м) | Рабочая частота (МГц) |
Дрейк | |||
Троицкий | |||
Хоровиц |
2.9.
Офисные пакеты | |||
Наименование | Производитель | Количество сост.частей | Цена ($) |
Office | Microsoft | ||
SmartSute | Lotus | ||
StarOffice | Sun |
2.10.
Сельскохозяйственные культуры | |||
Наименование | Тип | Посевная площадь (га) | Урожайность (ц/га) |
Соя | Б | ||
Чумиза | З | ||
Рис | З | ||
Примечание: З - зерновые, Б - бобовые |
2.11.
Ведомость спортивних состязаний | |||
Фамилия участника | Код команды | Количество баллов | Место в итоге |
Баландин | С | 123.7 | |
Шишков | Ш | 79.98 | |
Кравченко | Д | 134.8 | |
Примечание: Д – «Динамо», С – «Спартак», Ш – «Шахтер» |
2.12.
Ведомость общественного транспорта | |||
Вид транспорта | № маршрута | Протяженность маршрута (км) | Время в дороге (мин) |
Тр | 27.55 | ||
Т-с | 13.6 | ||
А | 12а | 57.3 | |
Примечание: Тр - трамвай, Тс - троллейбус, А - автобус |
2.13.
Приблизительное количество звезд разных спектральных классов в Галактике | |||
Спектральный класс | Приблизительная масса (отн.Солнца) | Часть % | Численность |
O | 0.00002 | ||
F | 1.25 | 2.9 | |
M | 0.2 | 73.2 |
2.14.
Время выполнения некоторых программ, которые применяют параллельные алгоритмы | |||
Название прграммы | Количество строк кода | Время исп. на SGI Callenge (cек) | Время исп. на SGI Indy (cек) |
OCEAN | 8.70 | 18.2 | |
DYFESM | 6.95 | ||
TRFD | 1.05 | 2.98 |
2.15.
Конфигурация програмных средств информационных систем | ||||
Операционная система | СУБД | Мин.объем внешней памяти (MB) | Мин.объем оперативной памяти (MB | Приблизительная цена ($) |
OS/2 | DB2 | |||
Windows/NT | SQLServer | |||
SCO/Unix | Oracle |
2.16.
Сельскохозяйственные предприятия | |||
Название | Вид собственности | Площадь земли (га) | Кол. работников |
Заря | Д | ||
Росинка | К | ||
Петренко | Ч | ||
Вид собственности: Д - государственная, Ч - частная, К - кооперативная |
2.17.
Прайс-лист | |||
Наименование товара | Тип товара | Цена за 1 шт (руб) | Минимальное количество в партии |
Папка | К | 4.75 | |
Бумага | К | 13.90 | |
Калькулятор | О | 411.00 | |
Примечание: К - канцтовары, О - оргтехника |
2.18.
Вязкость металлов в жидком состоянии | |||
Вещество | Атомный номер | Температура (град.С) | Вязкость (кг/м*сек) |
Алюминий | 2.90 | ||
Висмут | 1.65 | ||
Свинец | 2.11 |
2.19.
Коэффициенты теплопроводности материалов | |||
Вещество | Тип | Влажность (%) | Коэффициент |
Алюминий | М | 0-100 | 209.3 |
Стекловата | Т | 0-100 | 0.035 |
Глина | Д | 15-20 | 0.73 |
Примечание: М - металлы, Т - термоизоляционные материалы, Д - другие материалы |
2.20.
Скорость звука в жидкостях | |||
Вещество | Тип | Температура (град.С) | Скорость (м/сек) |
Анилин | Ч | ||
Ртуть | Ч | ||
Кедровое | М | ||
Тип жидкости: Ч - чистое вещество, М - масло |
2.21.
Температура перехода веществ в сверхпроводниковое состояние | ||
Вещество | Тип | Температура |
Zn | М | 0.8-0.8 |
Pb-Au | П | 2.0-7.3 |
NbC | С | 10.1-10.5 |
Тип вещества: М - металл, П - сплав, С - соединение |
2.22.
Сплавы с высоким сопротивлением | |||
Сплав | Сопротивление | Темп.коэфф.сопр | Макс.температура |
Константан | 0.44 | 0.00001 | |
Никелин | 0.39 | 0.39 | |
Фехраль | 1.1 | 0.0001 |
2.23.
Свойства полупроводников | |||
Вещество | Ширина запрещенной зоны | Движение электронов | Движение дырок |
Бор | 1.1 | ||
Телур | 0.36 | ||
CdTe | 1.45 |
2.24.
Элементарные частицы | |||
Частица | Группа | Заряд | Масса покоя |
Нейтрон | Н | ||
Ка-плюс | М | +1 | |
Електрон | Л | -1 | 0.511 |
Группы частиц: Г - гипероны, Н - нуклоны, М - мезоны, Л - лептоны |
2.25.
Искуственно полученные элементы | |||
Атомный номер | Название | Массовое число | Период полураспада (лет) |
Нептуний | |||
Берклий | |||
Калифорний |
2.26.
Японские острова | |||
Остров | Площадь (кв.км) | Кол. малых островов | Протяженность береговой линии (км) |
Хонсю | |||
Хоккайдо | |||
Сикоку |
2.27.
Прайс-лист | |||
Код товара | Категория | Цена (руб) | Срок поставки (дн) |
01-0018 | К | ||
01-0033 | С | ||
02-0170 | М | ||
Примечание: К - компьютеры, С - комплектующие, М - множительная техника |
2.28.
Журнал регистрации аварий: | |||
Название предприятия | Категория | Утраты от аварии (тыс.руб) | Срок простоя (дн) |
Птицефабрика | 12.7 | ||
Теплоцентраль | 0.711 | ||
Автосервис | 1770.15 | ||
Примечание: указываются только прямые затраты, связанные с ликвидацией последствий аварии |
2.29.
Ведомости о присвоении квалификации | |||
Фамилия | Год рождения | Оценка результатов экзаменов | Присвоен уровень квалификации |
Шевченко | 4.33 | ||
Розанов | 5.1 | ||
Панасюк | 3.07 | ||
Примечание: показана итоговая оценка по результатам экзаменов по теоретической и практической подготовке |
2.30.
Буддийские монастыри Японии периода Нара | |||
Название | Школа | Количество монахов | Площадь земли (га) |
Тодайдзи | Т | 368.8 | |
Якусидзи | С | 54.7 | |
Дайандзи | Д | 12.2 | |
Примечание: Т - Тэндай; С - Сингон; Д - Дзедзицу |
Задание 3.
3.1. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .dat
3) Записать в новый файл слова из старого файла в алфавитном порядке.
4) Закрыть оба файла.
3.2. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .html
3) Переписать в новый файл содержимое старого, поставив в конце каждой строки символы <br>, а в начале каждого абзаца символы <p> (абзац определяется как новая строка, начинающаяся с одного или более пробелов)
4) Закрыть оба файла.
3.3. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .dat
3) Записать в новый файл последовательность нулей и единиц, соответствующую ASCII кодам символов исходного файла в двоичной системе счисления. Между кодами соседних символов пробелы.
4) Закрыть оба файла.
3.4. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .dat
3) Рассматривая исходный файл как последовательность битов записать в новый файл только четные биты (должен получиться файл из нулей и единиц).
4) Закрыть оба файла.
3.5.Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .dat
3) Записать в новый файл из исходного буквы, ASCII коды которых в двоичной системе счисления содержат четное число единиц.
4) Закрыть оба файла.
3.6. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .dat
3) Записать в новый файл символы из исходного, преобразованные следующим образом: берется ASCII код символа в двоичной системе счисления и проводится инверсия, то есть нули заменяются единицами и наоборот, затем по полученному коду определяется соответствующий символ.
4) Закрыть оба файла.
3.7. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .dat
3) Записать в новый файл символы исходного файла, проведя перед этим операцию логического побитового сложения с заданным ключом.
4) Закрыть оба файла.
3.8. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .dat
3) Записать в новый файл символы исходного файла, проведя перед этим операцию логического побитового умножения с заданным ключом.
4) Закрыть оба файла.
3.9. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .dat
3) Записать в новый файл символы исходного файла, проведя перед этим операцию логического побитового исключающего или с заданным ключом.
4) Закрыть оба файла.
3.10.Реализуйте класс, содержащий следующие методы работы с текстовым файлом:
1) Открыть файл с расширением .txt
2) Создать новый файл с тем же именем и расширением .dat
3) Записать в новый файл из исходного буквы, ASCII коды которых в двоичной системе счисления содержат не меньше трех единиц.
4) Закрыть оба файла.