МУ_ЛР7_ОП (1079938)

Файл №1079938 МУ_ЛР7_ОП (Методические указания к лабораторным работам)МУ_ЛР7_ОП (1079938)2018-01-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

38



Методические указания к лабораторной работе № 7 по курсу

ОСНОВЫ ПРОГРАММИРОВАНИЯ

ГУИМЦ

"Работа с файлами в СИ"

( 8 часов)

Москва, МГТУ, СУЦ - 2014 год

_____________________________________________________________________________________________



СОДЕРЖАНИЕ

1. Цель лабораторной работы № 7 по дисциплине ОП (Основы программирования) - СУЦ 5

2. Порядок выполнения лабораторной работы 5

3. Основные понятия 5

3.1. Данные в программах 5

3.2. Понятие файла, его определения и разновидности 6

3.3. Операционная система, потоки и файлы 7

3.4. Имена и расширения файлов 8

3.5. Открытие и закрытие файлов 8

3.6. Библиотеки и заголовочные файлы 9

3.7. Основные операции и функции для работы с файлами 10

3.8. Уровни ввода/вывода и типы файлов 11

3.9. Описание файла в программе. Структура FILE. 11

3.10. Текстовые и бинарные (двоичные) файлы 12

3.11. Проверка конца файла и указатель чтения файла 12

3.12. Работа с текстовым/двоичным файлом с байтами - символами 13

3.13. Работа с текстовым файлом построчно 13

3.14. Двоичные/двоичные файлы и функции fread и fwrite. 14

3.15. Форматированный ввод и вывод в файлы 15

3.16. Низкоуровневый ввод и вывод в СИ 16

3.17. Навигация по файлу fseek, lseek 17

3.18. Перенаправление потоков ввода и вывода 18

3.19. Файл менеджеры 18

3.20. Работа с файлами целиком 19

3.21. Работа со строками и консолью : sscanf, cprintf и sprintf 19

4. Примеры программы с использованием файлового ввода и вывода 19

4.1. Примеры, описанные в теоретической части ЛР 19

4.2. Формирование нового файла с вычисленными данными (fprintf). 20

4.3. Чтение и распечатка текстового файла (файл создан и добавлен выше). 20

4.4. Добавление в файл вычисленными данными (fprintf ). 20

4.5. Запись из массива структур в файл 21

4.6. Запись из файла в массив (структуры). 22

4.7. Распечатка массива структур. 23

4.8. Распечатка файла структур. 24

4.9. Сортировка строк в массиве. 24

4.10. Сортировка строк в файле по номеру. 25

4.11. Поиск и чтение записи по номеру. 25

4.12. Удаление записи по номеру. 26

4.13. Добавление записи по номеру. 27

4.14. Модификация записи в двоичном файле. 27

4.15. Программа сравнения двух файлов. 28

4.16. Программа печати списка текстовых файлов из параметров командной строки. 28

5. Контрольные задания ЛР №7. 29

5.1. Запись простого файла текстовыми данными и его чтение 29

5.2. Создать функцию распечатки текстового файла по строкам 29

5.3. Сделать функцию копирования текстовых файлов 29

5.4. Программа для слияния 2-х файлов в результирующий файл. 29

5.5. Запись двоичного файла случайными данными и его чтение 29

5.6. Поиск заданного текста в строках текстового файла. 30

5.7. Функция записи в файл из массива своих структур 30

5.8. Функция записи из файла в массив своих структур 30

5.9. Поиск минимума в файле по числовому полю 30

6. Варианты заданий для студентов СУЦ. 30

7. Дополнительные требования для студентов СУЦ (д.т.). 31

7.1. Сделать функцию копирования файлов 31

7.2. Слияние 2-х двоичных файлов в третий. 31

7.3. Программа печати списка файлов на основе списка, заданного в другом файле. 31

7.4. Функция чтения файла в список структур 31

7.5. Функция записи файла из списка структур 31

7.6. Поиск заданного текста и целого числа в полях записи двоичного файла. 31

7.7. Сортировка в двоичном файле по символьному полю. 32

7.8. Сортировка в двоичном файле по действительному полю. 32

8. Демонстрация, защита ЛР и отчет по ЛР. 32

9. Контрольные вопросы по ЛР. 32

10. Литература. 33

11. Приложение: фрагменты программ для низкоуровневого ввода и вывода 34

11.1. Запись из массива в файл _write. 34

11.2. Запись из файла в массив - _read). 34

11.3. Распечатка файла структур. 34

11.4. Поиск и чтение записи по номеру. 35

11.5. Удаление записи по номеру. 35

11.6. Добавление записи по номеру. 36

11.7. Модификация записи в двоичном файле. 37







1 Цель лабораторной работы № 7 по дисциплине ОП (Основы программирования) - СУЦ

Целью данной ЛР по дисциплине ОП является получение навыков работы с текстовыми и двоичными файлами на языке программирования СИ. Студенты используют консольные проекты и отлаживают программы в среде программирования MS VS 2005/2008/2010. Студенты знакомятся с основными операциями при работе с файлами, разными уровнями их обработки, способами их заполнения, распечатки, сортировки, проверяют работу отлаженных примеров и делают контрольные задания. Они выполняют отладку программы по своему варианту и получают исполнимую программу, готовую к выполнению, оформляют отчет по ЛР и защищают его.

2 Порядок выполнения лабораторной работы

  1. Познакомиться с методическими указаниями и основными понятиями данной ЛР

  2. Проработать порядок выполнения работы.

  3. Создать консольные проекты для проверки примеров и выполнения задания ЛР.

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

  5. Написать программу задания ЛР по варианту, выданному преподавателем и отладить ее.

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

  7. Подготовить отчет по шаблону.

  8. Защитить ЛР с предоставлением отчета и ответами на контрольные вопросы.

  9. Для продвинутых студентов выполнить задания для дополнительных (необязательных) требований и также отобразить их в отчете по ЛР.

3 Основные понятия

В теоретической части описания лабораторной работы вводятся основные понятия и рассматриваются принципы для работы со строками на языке программирования СИ.

4 Данные в программах

Основная цель любой программы, программного комплекса, программной системы - обработка данных. Во время выполнения программы (часто для этого этапа используется термин - Run Time) данные заносятся в оперативную память или сверхоперативную память (регистры процессора) и над ними операторы программы (команды микропроцессора) выполняют различные действия или операции. Когда программа завершилась сохранить результат ее работы можно запомнить так:

  • Вывести результаты на экран дисплея.

  • Вывести результат на печать (бумажная твердая копия).

  • Записать результаты на внешний носитель (диски, флэшки и т.д.).

Первые две возможности не совсем удобны: с экрана информация стирается, бумага занимает много места, трудно в дальнейшем использовать полученную информацию и т.д. Вывод информации на диск требует выполнения определенных правил: нужно указать место достаточное для заполнения информации, нужно присвоить имя этой информации нужно задать правила ее записи и организации, для того чтобы в дальнейшем можно было бы уметь ее прочитать. Кроме того, запоминается вспомогательная информация: даты создания и изменения, количество информации (размер) и т.д. Для корректной работы с информацией в ИТ системах введено фундаментальное понятие – файл. Это понятие заложило основу теории для построения программных систем обработки, хранения и преобразования информации.

5 Понятие файла, его определения и разновидности

Существует много различных определений понятия файл. Это объясняется тем, что в разных условиях (пользователь, программист, ИТ - технолог, техник по оборудованию и т.д.) для работы необходимы разные свойства. Для пользователя важно знать название и расположение конкретного файла, его тип и возможно его размер. Заметим, что не нужно путать понятие файл с бытовым понятием файла – кармашка (из полиэтилена), хотя определенные моменты и здесь сходны (совокупность информации, хранимой вместе). Для программиста помимо названных выше свойств очень важна внутренняя организация файла, способы записи и чтения информации, наличие буферизации, форматирования. Для технических специалистов и системщиков важной будет информация о расположении данных на физическом носителе, размеры блоков записи и кластеров, способы сборки мусора и т.д.

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

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

В некоторых литературных источниках, например в толковом словаре [11], вы можете встретить такое определение:

Файл – это часть внешней памяти компьютера, имеющая идентификатор (имя) и содержащая данные.

На мой взгляд, даже для пользователя файлов, такое определение нельзя считать полным. Для управления файлами в компьютере его операционная система имеет специальную подсистему, которая занимается управлением файлами – файловая система. Об этом вы узнаете в курсе “Операционные системы”. Главная задача управления файлами – эффективно размещать файлы на внешних носителях и обеспечивать к ним доступ для чтения и записи информации. Различают следующие файловые системы: FAT, FAT32, NTFS, HTFS и другие. Они используются в различных ОС и постоянно развиваются. Можно несколько “приземлить” определения файла следующим образом:

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

Из такого определения можно дать более частное определение понятие файл:

Файл – это поименованная последовательность байтов, завершающаяся специальным символом (Конец файла – EOFEnd Of File). Такие файлы могут быть текстовыми, когда на допустимые виды символов наложено ограничение, и двоичными (бинарными), когда ограничений не предусмотрено.

Файлы можно представить как совокупность строк, обычно так представляются текстовые файлы. В этом случае частное определение файла может иметь следующий вид.

Файл – это поименованная и упорядоченная совокупность строк, причем в зависимости от назначения строки могут быть как NTS (Null Terminated String), либо завешаться специальным символом конца строки - (‘\n’).

Файл может рассматриваться как совокупность страниц (Page) или как совокупность бит информации. Файл может представлять закодированные определенным способом рисунки (совокупность разноцветных точек) или звуки (звуковые файлы).

Файл может рассматриваться как упорядоченная совокупность однородных записей (одинаковых структурных типов), служащих для хранения и поиска информации. Такие файлы называются базами данных (БД) и имеют определенную структуру. В комплексной лабораторной работе по дисциплине “Основы программирования” вы будете работать с такими файлами по своему варианту. Необходимо будет создать БД, добавить туда записи, отсортировать БД и так далее. Итогом работы будет завершенная программа работающая с БД.

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

Файл – это поименованная и упорядоченная совокупность команд ( инструкций, операторов, процедур, функций, подпрограмм и т.д.), которые предназначены для выполнения на компьютере. Такие файлы называются также исполнимыми программами (модулями). Наиболее распространенные типы таких программ - *.exe, *.com или *.dll ( динамические библиотеки).

Файлы могут иметь самую разнообразную и сложную структуру, о которой знают разработчики и программы, работающие с этими файлами. Например, данный документ (“Методические указания …”) является файлом типа “Документ MS Word”, имеет сложную структуру, что, в конечном счете, определяет сложность программ (кстати, тоже файлов), работающих с такими файлами.

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

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

6 Операционная система, потоки и файлы

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

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

Понятия устройств и файлов обобщены в ОС до понятия поток ввода и вывода. Под потоком ввода понимается чтение информации с клавиатуры или любого файла (stdin). Под потоком вывода понимается вывод информации на экран монитора или в любой текстовый файл (stdout). Стандартные потоки ввода и вывода имеют фиксированные названия и могут использоваться в программах. Кроме перечисленных (stdin, stdout), в языке СИ доступен стандартный поток вывода информации об ошибках – stderr. Кроме стандартных пользователи могут описать произвольное число собственных потоков ввода и вывода, связанных с файлами (структура - FILE).

Описание потоков в заголовочных файлах ввода и вывода имеет вид:

Характеристики

Тип файла
Документ
Размер
576 Kb
Тип материала
Высшее учебное заведение

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов книги

Методические указания к лабораторным работам
ЛР9_ПКШ
ЛР10_ПКШ
ЛР11_ПКШ
ЛР_12_КЛР_ПКШ
ЛР_13_КЛР_ПКШ
ЛР_14_КЛР_ПКШ
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7031
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее