Лабораторная работа № 7

"Блоковый ввод-вывод"

 

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

 

Постановка задачи

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

Варианты

 

1.     Структура "Абитуриент":

-         фамилия, имя, отчество;

-         год рождения;

-         оценки вступительных экзаменов (3);

-         средний балл аттестата.

Удалить элемент с указанным номером, добавить элемент после элемента с указанной фамилией.

 

2.     Структура "Сотрудник":

-         фамилия, имя, отчество;

-         должность

-         год рождения;

-         заработная плата.

Удалить элемент с указанной фамилией, добавить элемент после элемента с указанным номером.

 

3.     Структура "Государство":

-         название;

-         столица;

-         численность населения;

-         занимаемая площадь.

Удалить  все элементы, у которых численность меньше заданной, добавить элемент после элемента с указанным номером.

 

4.     Структура "Человек":

-         фамилия, имя, отчество;

-         домашний адрес;

-         номер телефона;

-         возраст.

Удалить все элементы с заданным возрастом, добавить элемент после элемента с заданным номером.

 

5.      Структура "Человек":

-         фамилия, имя, отчество;

-         год рождения;

-         рост;

-         вес.

Удалить  все элемент с указанным ростом и весом, добавить элемент после элемента с указанной фамилией.

 

6.      Структура "Школьник":

-         фамилия, имя, отчество;

-         класс;

-         номер телефона;

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

Удалить все элементы, у которых есть 2 хотя бы по одному предмету, добавить элемент в начало файла.

 

7.     Структура "Студент":

-         фамилия, имя, отчество;

-         домашний адрес;

-         группа;

-         рейтинг.

Удалить все элементы, у которых рейтинг меньше заданного, добавить 1 элемент в конец файла.

 

8.     Структура "Покупатель":

-         фамилия, имя, отчество;

-         домашний адрес;

-         номер телефона;

-         номер кредитной карточки.

Удалить 3 элемента из начала файла, добавить 3 элемента в конец файла.

 

9.     Структура "Пациент":

-         фамилия, имя, отчество;

-         домашний адрес;

-         номер медицинской карты;

-         номер страхового полиса.

Удалить элемент с заданным номером медицинской карты, добавить 2 элемента в начало файла.

 

10.         Структура "Информация":

-         носитель;

-         объем;

-         название;

-         автор.

Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером.

 

11.         Структура "Видеокассета":

-         название фильма;

-         режиссер;

-         продолжительность;

-         цена.

Удалить все элементы с ценой выше заданной, добавить 3 элемента в конец файла.

 

12.         Структура "Музыкальный диск":

-         название;

-         автор;

-         продолжительность;

-         цена.

Удалить первый элемент с заданной продолжительностью, добавить 2 элемента после элемента с заданным номером.

 

13.         Структура "Спортивная команда":

-         название;

-         город;

-         количество игроков;

-         количество набранных очков.

Удалить все элементы с количеством очков меньше заданного, добавить 2 элемента в начало файла.

 

14.         Структура "Стадион":

-         название;

-         адрес;

-         вместимость;

-         виды спорта.

Удалить элемент с заданным названием, добавить 2 элемента после элемента с указанным номером.

 

15.         Структура "Автомобиль":

-         марка;

-         год выпуска;

-         цена;

-         цвет.

Удалить все элементы, у которых год выпуска меньше заданного, добавить элемент в начало файла.

 

16.         Структура "Владелец автомобиля":

-         фамилия, имя, отчество;

-         номер автомобиля;

-         телефон;

-         номер техпаспорта.

Удалить элемент с заданным номером, добавить 2 элемента перед элементом с заданной фамилией.

 

17.         Структура "Фильм":

-         название;

-         режиссер;

-         год выпуска;

-         стоимость.

Удалить  все элементы, у которых стоимость превышает заданную, добавить элемент в начало файла.

18.         Структура "Книга":

-         название;

-         автор;

-         год издания;

-         количество страниц.

Удалить 3 элемента из начала файла, добавить элемент перед элементом с указанным названием.

19.         Структура "Фильм":

-         название;

-         режиссер;

-         страна;

-         приносимая прибыль.

Удалить 2 элемента из конца файла, добавить элемент после элемента с указанным  названием.

 

20.         Структура "Государство":

-         название;

-         государственный язык;

-         денежная единица;

-         курс валюты относительно $.

Удалить элемент с указанным названием, добавить 2 элемента в конец файла.

 

21.         Структура "Автомобиль":

-         марка;

-         серийный номер;

-         регистрационный номер;

-         год выпуска.

Удалить 3 элемента из  начала файла, добавить элемент поле элемента с указанным регистрационным номером.

 

22.         Структура "Владелец автомобиля":

-         фамилия, имя, отчество;

-         номер автомобиля;

-         номер техпаспорта;

-         отделение регистрации ГАИ.

Удалить элемент с заданным номером, добавить 2 элемента перед элементом с заданной фамилией.

 

23.         Структура "Стадион":

-         название;

-         год постройки;

-         количество площадок;

-         виды спорта.

Удалить все элементы, у которых год постройки меньше заданного, добавить 2 элемента перед элементом с указанным номером.

 

24.         Структура "Студент":

-         фамилия, имя, отчество;

-         номер телефона;

-         группа;

-         оценки по 3 основным предметам.

Удалить все элементы из группы с указанным номером, у которых среднее арифметическое оценок меньше заданного, добавить элемент после  элемента с заданной фамилией.

 

25.         Структура "Студент":

-         фамилия, имя, отчество;

-         дата рождения;

-         домашний адрес;

-         рейтинг.

Удалить элементы, у которых даты рождения совпадают, добавить элемент перед  элементом с заданной фамилией.

 

 

Методические указания

 

1.     Для заполнения файла можно использовать функцию, формирующую одну структуру, указанного в варианте типа. Значения элементов структуры вводятся с клавиатуры. Для ввода можно использовать операцию >> и функцию gets().

 

2.     При вводе структур можно реализовать один из следующих механизмов:

-         ввод заранее выбранного количества структур (не менее 5);

-         ввод  до появления структуры с заданным количеством признаков;

-         диалог с пользователем о необходимости продолжать ввод.

 

3.     Для записи структуры в  файл и чтения структуры из файла использовать функции блочного ввода/вывода fread и fwrite.

 

4.     Для удаления / добавления элементов в файл  использовать вспомогательный файл. 

 

5. Краткая информация и пример здесь.

 

 

5. Содержание отчета

1.   Постановка задачи.

2.   Описание используемых типов данных.

3.   Текст функций для:

·      формирования файла,

·      печати файла,

·      добавления записи в файл,

·      удаления записи из файла

·      поиска структуры для удаления.

4.Результат решения конкретного варианта.