Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторная 1, сем 2, ЯП (2).docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
798.8 Кб
Скачать

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

Цель работы: Составление алгоритмов и написание многомодульных программ обмена данными с диском в стиле С++ (с использованием потоков С ++ ).

Лабораторная работа имеет только индивидуальное задание.

Задание на лабораторную работу

Работа выполняется в консольном режиме.

Выберите задачу вашего варианта.

1. Алгоритм решения задачи разделить на функции, каждая из которых выполняет одну из следующих процедур:

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

  • функция получает поток и читает из файла, связанного с потоком, в память запись либо с текущей позиции, либо с позиции, номер которой задан через ее параметры. Если операция чтения прошла успешно, функция возвращает через возвращаемое значение поток по ссылке в состоянии ios::good, если найден конец файла – в состоянии ios::end. При возникновении состояния ios::bad, выдается сообщение об ошибке чтения. Применить механизм обработки исключений.

  • функция выдает на экран информацию из одной записи файла в виде строки таблицы. Для построения таблиц используйте манипуляторы;

  • функция выдает на экран всю информацию из файла в виде много строковой таблицы. Функция должна организовывать постраничное представление информации на одном экране. Размер страницы (количество строк в ней) задается через параметры этой функции. Создайте для организации работы этой функции свои функции-манипуляторы, выводящие в поток линии (одну или несколько, в зависимости от рисуемой таблицы) и «шапку – заголовок» таблицы;

  • функция получает поток, связанный с файлом, и помечает на удаление (или снимает признак удаления) из файла одну или несколько записей. Критерий по которому происходит пометка записей на удаление определяется в вашем варианте.

  • функция получает поток, связанный с файлом, и удаляет из файла все помеченные записи.

  • функция решает задачу индивидуальной обработки информации Вашего варианта.

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

  • ввод с клавиатуры N записей в файл;

  • чтение из файла всех записей;

  • чтение записи с указанным номером на экран;

  • пометка записей на удаление;

  • снятие с записей пометок на удаление;

  • удаление записей, помеченных на удаление, из файла;

  • решение индивидуальной задачи.

В функции main() предусмотреть возможность многократного выполнения действий обработки информации по желанию пользователя Вашей программы.

При организации таблиц на экране использовать манипуляторы (форматированный потоковый ввод-вывод). Для организации «шапки» таблицы спроектируйте свою функцию манипулятор.

Функции объединить по назначению в отдельные модули-файлы. В приложении необходимо создать и использовать свой заголовочный файл.

P.S.

Студенты, выполняющие в лабораторной работе вариант с нечетным номером, создают в ней текстовый файл с расширением .txt , используя для их создания потоковые операции << и >>. В курсовой работе эти студенты создают файл c режимом binary с расширением .bin.

Студенты, выполняющие в лабораторной работе вариант с четным номером, создают в ней файл в режиме binary с расширением .bin, используя для их создания потоковые функции write() и read(). В курсовой работе эти студенты создают текстовый файл с расширением .txt.