Опубликован: 02.02.2011 | Доступ: свободный | Студентов: 3318 / 936 | Оценка: 4.43 / 3.57 | Длительность: 33:06:00
Специальности: Программист
Лекция 20:

Стандартные файлы и функции по работе с ними

< Лекция 19 || Лекция 20: 1234 || Лекция 21 >

Лабораторная работа 19. Стандартные файлы и функции по работе с ними

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

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

Теоретические сведения.

Ознакомьтесь с материалом лекции 19.

Задания к лабораторной работе.

Выполните приведенные ниже задания.

  1. Определить, какая буква чаще всего встречается в заданном файле.
  2. Удвоить в содержимом файла каждую литеру.
  3. Подсчитать число цифр в данном файле и их сумму.
  4. Определить переменную "студент", содержащую следующие поля: имя, фамилия, отчество студента, название института, номер группы. Данные считать из текстового файла. Вывести данные о студентах, которые учатся в одном и том же заданном институте и в одной заданной группе.

Указания к выполнению работы.

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

Следует реализовать каждое задание в соответствии с приведенными этапами:

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

Требования к отчету.

Отчет по лабораторной работе должен соответствовать следующей структуре.

  • Титульный лист.
  • Словесная постановка задачи. В этом подразделе проводится полное описание задачи. Описывается суть задачи, анализ входящих в нее физических величин, область их допустимых значений, единицы их измерения, возможные ограничения, анализ условий при которых задача имеет решение (не имеет решения), анализ ожидаемых результатов.
  • Математическая модель. В этом подразделе вводятся математические описания физических величин и математическое описание их взаимодействий. Цель подраздела – представить решаемую задачу в математической формулировке.
  • Алгоритм решения задачи. В подразделе описывается разработка структуры алгоритма, обосновывается абстракция данных, задача разбивается на подзадачи. Схема алгоритма выполняется по ЕСПД (ГОСТ 19.003-80 и ГОСТ 19.002-80).
  • Листинг программы. Подраздел должен содержать текст программы на языке программирования С++, реализованный в среде MS Visual Studio 2010.
  • Контрольный тест. Подраздел содержит наборы исходных данных и полученные в ходе выполнения программы результаты.
  • Выводы по лабораторной работе.
  • Ответы на контрольные вопросы.

Контрольные вопросы

  1. В чем отличия текстовых и двоичных файлов с точки зрения представления данных?
  2. Почему поток ввода-вывода не зависит от конкретного устройства?
  3. Для чего необходима буферизация при потоковом и форматированном вводе-выводе?
  4. С какой целью предусмотрены режимы открытия файлов и почему их такое многообразие?
  5. Каковы могут быть причины ошибок при открытии файлов?
  6. Какие значения возвращает функция открытия файла в зависимости от результата?
  7. Каким образом в программе происходит проверка достижения конца файла?
  8. Может ли один и тот же указатель на файл одновременно связан с несколькими файлами? Почему?
  9. Может ли один и тот же файл одновременно быть открыт для чтения и для записи?
  10. Можно ли один и тот же файл открыть несколько раз, не закрывая после каждого открытия?
  11. Сохранится ли информация в файле, если его не закрыть в программе с помощью функции?
  12. В чем основные отличия в организации символьного, строкового, блокового и форматированного ввода-ввода в файлы?
< Лекция 19 || Лекция 20: 1234 || Лекция 21 >
Денис Курбатов
Денис Курбатов
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!