Объектно-ориентированное программирование
1. Заполните контейнер vector целыми числами. Затем: - выведите его на экран; - выведите контейнер на экран, заменяя элементы, равные заданному значению на другое значение; - выведите контейнер на экран, заменяя элементы, большие или равные заданному; - скопируйте контейнер в контейнер list и выведите полученный контейнер на экран. 2. Реализуйте собственный шаблон класса «очередь». 3. Реализуйте собственный шаблон класса «двунаправленный список». 4. Заполните список list целыми числами. Затем: - выведите его на экран; - используя алгоритм for_each и объект-функцию, создайте новый список, каждый элемент которого равен elem*elem+k, где elem-элемент исходного списка k-произвольное целое число - выведите полученный список на экран.
5. Дан класс комплексных чисел; class complex { private: double re,im; public: complex(double Re=0,double Im=0):re(Re),im(Im){}; void show() { cout<<"re="<<re<<" im="<<im<<endl; } }; Дополните его необходимым методом, чтобы при выполнении cout<<вызов этого метода; выводились на экран значения и сумма полей объекта класса complex.
6. Создайте шаблон функции сортировки одномерного массива по возрастанию элементов. Специализируйте его для массива символов так, чтобы сортировка выполнялась по убыванию.
7. Создайте шаблон функции сортировки одномерного массива. Используйте его для сортировки массива объектов класса Person по возрастанию и по убыванию поля age. class Person{ string name; int age; //методы }; Закончите определение класса Person. 8. Определить класс Sqr, перегрузив в нем операцию «круглые скобки», так чтобы вызов q(a,b,c); где q-объект класса Sqr, возвращал структуру, содержащую корни квадратного уравнения ax2+bx+c=0 Предусмотреть обработку исключительной ситуации, если дискриминант уравнения отрицательный.
9. Напишите шаблон функции для сортировки массива объектов любого класса по любому полю. Проверьте ее для сортировки массива целых чисел и массива объектов класса Person по возрастанию поля name. class Person{ string name; int age; …. }; 10. Создайте абстрактный класс Building(строение), который хранит число этажей и комнат в здании. Создайте класс House(дом), который наследует класс building и хранит число ванных комнат и спален. Создайте класс Office(офис), который наследует класс building и хранит число компьютеров и телефонов. Поместите в контейнер vector объекты классов House и Office и просмотрите эту коллекцию. Поместите в контейнер list все дома этажностью выше 5 и офисы с количеством компьютеров больше 20. Отсортируйте list по возрастанию количества комнат о просмотрите его. 11. Создайте абстрактный класс ware для хранения наименования товара. Создайте класс ware_a, который наследует класс ware и хранит стоимость единицы товара и его вес. Создайте класс ware_b, который наследует класс ware_a и хранит количество единиц товара в магазине. Создайте интерфейс для просмотра информации о товаре и интерфейс для подсчета суммарной стоимости товара в магазине. Создайте объекты класса ware_b, поместите их в контейнер и просмотрите последний. 12. Создайте классы ClassA, ClassB, ClassC, содержащее поле целого типа. Реализуйте эти классы таким образом, чтобы при изменении этого поля в объекте класса ClassA, все объекты классов ClassA, ClassB, ClassC установили это поле в то же значение. 13. Фирма занимается продажей офисной техники. Информацию о товаре предполагается хранить в объектах соответствующих классов. Сами объекты сохраняются в контейнере, который сохраняется в файле. Определите иерархию классов товаров, выберите стандартные коллекции для их хранения и напишите функции для ее сериализации и десериализации. 14. Реализуйте класс комплексных чисел и класс «сумматор» для выполнения арифметических операций с ними. Реализуйте консольный интерфейс пользователя для выполнения операций с комплексными числами, используя механизм обработки событий.
Структуры и алгоритмы обработки данных 1. Напишите программу, преобразующую список ребер графа в матрицы инцидентности и смежности. 2. Напишите программу, формирующую списки смежности произвольного графа. 3. Напишите программу, имитирующую функционирование очереди с заданной дисциплиной. 4. Напишите программу, реализующую очередь на кольцевом массиве. 5. Напишите программу умножения многозначных чисел. 6. Напишите программу, которая по математической записи арифметического выражения строит его префиксную форму. 7. Напишите программу перевода вещественного числа из произвольной (не более 36) системы счисления в десятичную систему счисления. 8. Напишите программу перевода вещественного числа из десятичной системы счисления в произвольную (не более 36) систему счисления. 9. Напишите рекурсивную программу перевода десятичного числа в 16-ю систему счисления. 10. Напишите программу, генерирующую все перестановки для N элементов.
Базы данных 1. ИНТЕРНЕТ-МАГАЗИН Описание предметной области. В Интернет-магазине выставлены на продажу товары, каждый из которых имеет название, цену и единицу измерения (штуки, килограммы, литры). Для оптимизации работы магазина в базе данных собирается информация о клиентах: стандартные анкетные данные, а также телефон и адрес электронной почты. По каждому факту продажи фиксируется клиент, проданный товар, количество, дата продажи, дата доставки. Задание: а) разработайте нормализованную реляционную базу данных для описанной предметной области; б) выведите телефоны и адреса электронной почты для всех покупателей, срок доставки товаров для которых больше 5 дней; в) выведите список покупателей с приобретенными товарами для определенного интервала дат; г) выведите список всех покупателей, которые приобрели не менее N единиц продукции; д) выведите список покупателей, покупавших все товары, продающиеся в магазине. 2. ПЛАТНАЯ ПОЛИКЛИНИКА Описание предметной области.
В поликлинике работают врачи различных специальностей, имеющие разную квалификацию и разный стаж. Все пациенты проходят обязательную регистрацию: фиксацию в базе данных стандартных анкетных данных (фамилия, имя, отчество, год рождения). Каждый пациент может обращаться в поликлинику несколько раз, нуждаясь в различной медицинской помощи, которую можно получить у разных врачей. Все обращения больных фиксируются в базе данных, куда заносятся дата обращения, установленный диагноз, информация о принявшем пациента враче, стоимость лечения. Стоимость приема пациента определяется на основании проведенного лечения, квалификации врача и его стажа. Задание: а) разработайте нормализованную реляционную базу данных для описанной предметной области; б) для данного врача выведите список обращений к нему в течение двух месяцев; в) выведите список пациентов, имеющих определенный диагноз; г) выведите список врачей оказавших в течение года заданный вид услуг; д) выведите список всех пациентов, обращавшихся к врачам определенной квалификации. е) выведите общую стоимость услуг, оказанных заданным врачем. 3. ПРОКАТ АВТОМОБИЛЕЙ Описание предметной области. Автопарк располагает некоторым количеством автомобилей различных марок и стоимостей. Автомобили сдаются в прокат. Каждый автомобиль имеет свою стоимость проката, исчисляющуюся в цене за километр пробега. В пункт проката обращаются клиенты. Все клиенты проходят обязательную регистрацию, при которой о них собирается стандартная информация (фамилия, имя, отчество, адрес, телефон). Каждый клиент может обращаться в пункт проката несколько раз. Все обращения клиентов фиксируются, при этом по каждой сделке запоминаются дата выдачи и ожидаемая дата возврата, величина залога, зависящего от марки автомобиля. После возврата автомобиля вычисляется цена сделки и осуществляется расчет. Задание: а) разработайте нормализованную реляционную базу данных для описанной предметной области; б) выведите список всех клиентов, которые когда-либо брали в прокат некоторый автомобиль;
в) выведите фамилии клиентов, бравших в прокат все марки автомобилей; г) определите общее количество обращений каждого клиента; д) определите общую стоимость проката для каждой марки автомобиля. 4. РЕАЛИЗАЦИЯ ГОТОВОЙ ПРОДУКЦИИ Описание предметной области. Компания занимается оптово-розничной продажей различных товаров. Каждый товар характеризуется наименованием, оптовой и розничной ценой. В компанию обращаются покупатели – юридические лица. Для каждого из них в базе данных запоминаются стандартные данные (наименование, адрес, телефон, контактное лицо). По каждой сделке оформляется документ, где фиксируется наряду с покупателем количество купленного им товара и дата покупки. Задание: а) разработайте нормализованную реляционную базу данных для описанной предметной области; б) выведите список всех имеющихся товаров, цена на которые находится в заданных пределах; в) выведите список всех покупателей, купивших товары всех типов; г) выведите список всех товаров, которые не продавались; д) выведите список всех товаров, проданных за последние три месяца.
5. Даны реляционные таблицы Автор и Книга: CREATE TABLE Автор (КодАвтора INT, Фамилия VARCHAR(50) NULL, Имя VARCHAR(50) NULL, Отчество VARCHAR(50) NULL, Пол VARCHAR(50) NOT NULL, Дата_рождения DATATIME, Телефон CHAR(9))
CREATE TABLE Книга (КодКниги INT, Название VARCHAR(50) NOT NULL, Цена MONEY, Издательство VARCHAR(50) NOT NULL, КодАвтора INT NOT NULL, Количество INT)
1) Укажите недостатки такого построения таблиц. 2) Запишите запросы на SQL: а) определите автора самой дорогой книги; б) определите авторов, не печатающих свои книги в издательстве «АСТ»; в) определите авторов, написавших наибольшее количество книг; г) найдите фамилии всех авторов, написавших указанную книгу.
6. Даны реляционные таблицы Рейс и Вылет: CREATE TABLE Рейс (Номер_рейса INT, Конечный_пункт VARCHAR(30), Дата_вылета DATETIME, Продолжительность полета INT, Число_билетов INT, Стоимость MONEY)
CREATE TABLE Билет (Номер_места CHAR(3), Номер_рейса CHAR(6), Дата_продажи DATETIME, Фамилия_пассажира VARCHAR(20))
1) Укажите ограничения ссылочной целостности, которые нужно установить для этих таблиц. 2) Запишите запросы на SQL: а) определите список пассажиров, купивших билеты на самые продолжительные рейсы; б) выведите список пассажиров, не летящих в Самару; в) определите пассажиров, купивших самые дешевые билеты; г) найдите фамилии пассажиров, покупавших билеты на все рейсы.
7. Даны реляционные таблицы Блюдо и Компонент: CREATE TABLE Блюдо (Название_блюда VARCHAR(20) NOT NULL, Время_приготовления INT NOT NULL, Тип_блюда VARCHAR(20),
Номер_рецепта INT, Повар VARCHAR(20), Стоимость MONEY)
CREATE TABLE Компонент (Название_компонента VARCHAR(20), Калорийность INT NOT NULL, Вес FLOAT, Белки INT, Жиры INT, Углеводы INT, Блюдо VARCHAR(20), Стоимость MONEY NOT NULL)
1) Укажите недостатки такого построения таблиц. 2) Запишите запросы на SQL: а) определите блюдо, которое можно приготовить быстрее всех остальных блюд; б) определите, кто из поваров не готовит десерт; в) определите самое калорийное блюдо; г) определите блюдо с самым низким содержанием жира.
8. Даны реляционные таблицы Автор и Книга: CREATE TABLE Автор (КодАвтора INT, Фамилия VARCHAR(50) NULL, Имя VARCHAR(50) NULL, Отчество VARCHAR(50) NULL, Пол VARCHAR(50) NOT NULL, Дата_рождения DATATIME, Телефон CHAR(9))
CREATE TABLE Книга (КодКниги INT, Название VARCHAR(50) NOT NULL, Цена MONEY, Издательство VARCHAR(50) NOT NULL, КодАвтора INT NOT NULL, Количество INT)
1) Укажите недостатки такого построения таблиц. 2) Запишите запросы на SQL: а) удалите сведения об авторах, чьи произведения не издаются; б) добавьте нового автора (М.Горький); в) увеличьте на 50% цену книг издательства «АСТ»; г) найдите дату рождения автора, написавшего больше всего книг.
9. Даны реляционные таблицы Рейс и Вылет: CREATE TABLE Рейс (Номер_рейса INT, Конечный_пункт VARCHAR(30), Дата_вылета DATETIME, Продолжительность полета INT, Число_билетов INT, Стоимость MONEY)
CREATE TABLE Билет (Номер_места CHAR(3), Номер_рейса CHAR(6), Дата_продажи DATETIME, Фамилия_пассажира VARCHAR(20))
1) Укажите ограничения целостности для этих таблиц. 2) Запишите запросы на SQL: а) удалите информацию о билетах, ошибочно проданных после вылета самолета; б) добавьте новый рейс; в) увеличьте на 10% стоимость билетов на рейсы 23-45 и 56-78; г) найдите не полностью заполненные рейсы.
10. Даны реляционные таблицы Блюдо и Компонент: CREATE TABLE Блюдо (Название_блюда VARCHAR(20) NOT NULL, Время_приготовления INT NOT NULL, Тип_блюда VARCHAR(20), Номер_рецепта INT, Повар VARCHAR(20), Стоимость MONEY)
CREATE TABLE Компонент (Название_компонента VARCHAR(20), Калорийность INT NOT NULL, Вес FLOAT, Белки INT, Жиры INT, Углеводы INT, Блюдо VARCHAR(20), Стоимость MONEY NOT NULL)
1) Укажите недостатки такого построения таблиц. 2) Запишите запросы на SQL: а) удалите сведения о блюдах, стоимость которых меньше суммарной средней стоимости их компонентов; б) добавьте новый компонент; в) установите калорийность, равную 100 ккал, для блюд без указанной калорийности; г) найдите название блюда, в котором используются все компоненты.
11. Постройте В-дерево для последовательности ключей, поступающих в следующем порядке: 20, 40, 10, 30, 15, 35, 7, 26, 18, 22, 5, 42, 13, 46, 27, 8, 32, 38, 24, 45, 25.
12. Постройте многоуровневый индекс для файла, содержащего не менее 24 записей.
13. Постройте модели Чена для заданного описания предметной области. Имеется несколько складов. Для каждого склада известен владелец и название. На каждом складе хранятся товары. Одинаковые товары могут храниться на разных складах. Некоторые склады могут временно пустовать. Известна вместимость каждого склада в тоннах. Складов без владельцев не бывает. О каждом товаре известно его наименование, уникальный номер-артикул. Товары на склады привозятся на автомашинах. О каждой автомашине известна её марка, грузоподъемность в тоннах и фамилия владельца. Машин без владельцев не бывает. Имеется информация о поступлениях, показывающая, какая машина, какой товар, на какой склад привозит, в каком количестве (в тоннах).
14. Постройте модель «птичья лапка» для заданного описания предметной области. Имеется несколько складов. Для каждого склада известен владелец и название. На каждом складе хранятся товары. Одинаковые товары могут храниться на разных складах. Некоторые склады могут временно пустовать. Известна вместимость каждого склада в тоннах. Складов без владельцев не бывает. О каждом товаре известно его наименование, уникальный номер-артикул. Товары на склады привозятся на автомашинах. О каждой автомашине известна её марка, грузоподъемность в тоннах и фамилия владельца. Машин без владельцев не бывает. Имеется информация о поступлениях, показывающая, какая машина, какой товар, на какой склад привозит, в каком количестве (в тоннах)
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|