Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать двунаправленный список. Удалить элемент с заданным ключом. Добавить К элементов перед элементом с заданным номером.
Написать программу, в которой необходимо объявить структуру данных в соответствии с вариантом. Написать все необходимые функции для работы со структурой:
- функцию, которая размещает структуру в памяти и возвращает указатель на нее;
- функцию, удаляющую структуру из памяти;
- функцию для установки полей структуры, например:
- функции, возвращающие значения полей, например:
- функцию для просмотра структуры (вывода значений ее полей).
Разместить структуры в динамической памяти, объединив их в список. Написать все необходимые функции для работы со списком:
- функцию, добавляющую структуру в список;
- функцию, удаляющую структуру из списка;
- функцию, возвращающую количество элементов в списке.
Написать функцию, выполняющую запрос (пример запроса для каждого варианта приведен в таблице). Сохранить список в файле.
Таблица.
Примеры вариантов
| Вариант | Структура | Поля структуры | Пример запроса |
| 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 |
Напишите программу, которая читает текст Си-программы и печатает в алфавитном порядке все группы имен переменных, в которых совпадают первые 6 символов, но последующие в чем-то различаются. Не обрабатывайте внутренности закавыченных строк и комментариев. Число 6 сделайте параметром, задаваемым в командной строке.
Напишите программу печати таблицы "перекрестных ссылок", которая будет печатать все слова документа и указывать для каждого из них номера строк, где оно встретилось. Программа должна игнорировать "шумовые" слова, такие как "и", "или" и пр.
Напишите программу, которая печатает весь набор различных слов, образующих входной поток, в порядке возрастания частоты их встречаемости. Перед каждым словом должно быть указано число вхождений.
1. Керниган Б., Ритчи Д., Фьюэр А. Язык программирования Си: Задачи по языку Си. М.: Финансы и статистика, 1985. – 192с.
2. Керниган Б., Ритчи Д. Язык программирования Си. М.:Финансы и статистика, 1992. - 272с.
3. Подбельский В. В., Фомин С. С. Программирование на языке Си. Учеб.пособие. М.: Финансы и статистика, 2004. 600 с.