Смекни!
smekni.com

Структуры и объединения (стр. 3 из 3)

Задание 3.3.

Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать двунаправленный список. Удалить элемент с заданным ключом. Добавить К элементов перед элементом с заданным номером.

4. Лабораторные задания

Написать программу, в которой необходимо объявить структуру данных в соответствии с вариантом. Написать все необходимые функции для работы со структурой:

- функцию, которая размещает структуру в памяти и возвращает указатель на нее;

- функцию, удаляющую структуру из памяти;

- функцию для установки полей структуры, например:

- функции, возвращающие значения полей, например:

- функцию для просмотра структуры (вывода значений ее полей).

Разместить структуры в динамической памяти, объединив их в список. Написать все необходимые функции для работы со списком:

- функцию, добавляющую структуру в список;

- функцию, удаляющую структуру из списка;

- функцию, возвращающую количество элементов в списке.

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

Таблица.

Примеры вариантов

Вариант Структура Поля структуры Пример запроса
1 СТУДЕНТ имя- char* Имена студентов указанного курса
курс- int
пол- bool
2 СЛУЖАЩИЙ имя- char* Количество служащих со стажем не меньше заданного
профессия - char*
рабочийстаж- int
3. АВТОМОБИЛЬ марка - char* Марки автомобилей мощностью не более заданной
мощность – int
стоимость - float
4 КАДРЫ имя- char* Имена рабочих заданного разряда
номерцеха- int
разряд- int
5 ЦЕХ имя- char* Наименование продукции, количество которой не менее заданного
начальник- char*
кол-во рабочих -int
6 ИЗДЕЛИЕ наименование- char* Наименования изделий, количество которых не более заданного
шифр- char*
количество -int
7 БИБЛИОТЕКА имя- char* Количество книг указанного автора
автор- char*
стоимость -real
8 ЭКЗАМЕН имястудента- char* Имена студентов, сдававших экзамен в заданный день
дата- int
оценка -int
9 АДРЕС имя -char* Имена живущих на четной стороне заданной улицы
улица -char*
номер дома -int
10 ТОВАР имя -char* Наименование товара, стоимостью не выше заданной
количество -int
стоимость -real
11 КВИТАНЦИЯ номер -int Общая сумма всех квитанций указанной даты
дата -int
сумма -real
12 СТРАНА название- char* Название стран, площадью не меньше заданной
денежная единица- char*
площадь -float
13 ПОЕЗД номер- char* Номера всех поездов указанного типа
тип- char*
кол-во вагонов -int
14 ИГРА наименование- char* Наименование игры указанного типа и со стоимостью не выше заданной
тип- char*
стоимость -float
15 ПЛАНЕТА имя- char* Имя планет с расстоянием от Земли не больше заданной
размер- real
расстояние от Земли -real
16 ЖИВОТНОЕ имя- char*класс -char*средний вес -float Имена всех животных заданного класса
17 ФОТОАППАРАТ модель- char* Модели фотоаппаратов с размером матрицы не меньше заданной
изготовитель- char*
размер матрицы -int
18 КОРАБЛЬ имя- char* Среднее водоизмещение кораблей заданного типа
тип- char*
водоизмещение -int
19 РЕКА имя- char* Среднюю длину реки на указанном континенте
континент- char*
длина -float
20 БЛЮДО название- char* Общую стоимость заказа
тип- char*
стоимость -float

5. Дополнительные задания

Задание 5.1.

Напишите программу, которая читает текст Си-программы и печатает в алфавитном порядке все группы имен переменных, в которых совпадают первые 6 символов, но последующие в чем-то различаются. Не обрабатывайте внутренности закавыченных строк и комментариев. Число 6 сделайте параметром, задаваемым в командной строке.

Задание 5.2.

Напишите программу печати таблицы "перекрестных ссылок", которая будет печатать все слова документа и указывать для каждого из них номера строк, где оно встретилось. Программа должна игнорировать "шумовые" слова, такие как "и", "или" и пр.

Задание 5.3.

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

Библиографический список

1. Керниган Б., Ритчи Д., Фьюэр А. Язык программирования Си: Задачи по языку Си. М.: Финансы и статистика, 1985. – 192с.

2. Керниган Б., Ритчи Д. Язык программирования Си. М.:Финансы и статистика, 1992. - 272с.

3. Подбельский В. В., Фомин С. С. Программирование на языке Си. Учеб.пособие. М.: Финансы и статистика, 2004. 600 с.