Цель работы — овладение навыками алгоритмизации и программирования файловых структур данных; проектирование структуры файла, вывод данных в файл, чтение данных из файла.
Задания для самостоятельной подготовки
1. Изучить:
— основную терминологию, связанную с файловыми структурами данных: файл и его структура, физическая и логическая записи, методы доступа, форматные и бесформатные записи, запись конца файла для файлов с последовательным доступом;
— возможности языка программирования по обработке файла с последовательной организацией: запись данных в файл, чтение из файла, добавление записей в файл, корректировка записей и т. п.
2. Разработать алгоритм решения в соответствии с заданием.
3. Составить программу решения задачи.
4. Подготовить тестовый вариант программы и исходных данных.
Задание к работе
А. Выполнить на ЭВМ программу в соответствии с вариантом задания, указанным в таблице 7.1 (п.п. А). Прочитать и напечатать созданный файл.
Таблица 7.1
Вариант задания | Условие задачи |
А. Создать файл, содержащий сведения о месячной заработной плате рабочих завода. Каждая запись содержит поля — фамилия рабочего, наименование цеха, размер заработной платы за месяц. Количество записей — произвольное. Б. Вычислить общую сумму выплат за месяц по цеху X, а также среднемесячный заработок рабочего этого цеха. Напечатать для бухгалтерии ведомость для начисления заработной платы рабочим этого цеха |
Таблица 7.1 продолжение
Вариант задания | Условие задачи |
А. Создать файл, содержащий сведения о количестве изделий, собранных сборщиками цеха за неделю. Каждая запись содержит поля: фамилия сборщика, количество изделий, собранных им ежедневно в течение шестидневной недели, т.е. раздельно — в понедельник, вторник и т. д. Количество записей — произвольное. Б. Написать программу, выдающую на печать следующую информацию: фамилию сборщика и общее количество деталей, собранное им за неделю; фамилию сборщика, собравшего наибольшее число изделий, и день, когда он достиг наивысшей производительности труда | |
А. Создать файл, содержащий сведения о количестве издеи категорий А, В, С, собранных рабочим за месяц. Структура записи имеет поля: фамилия сборщика, наименование цеха, количество изделий по категориям, собранных рабочим за месяц. Количество записей — произвольи. Б. Считая заданными значения расценок SA, SB, SC за выполненную работу по сборке единицы изделия категорий А, В, С соответственно, выдать на печать следующую информацию:— общее количество изделий категорий А, В, С, собранных рабочим цеха X;— ведомость заработной платы рабочих цеха X;— средний размер заработной платы работников этого цеха | |
А. Создать файл, содержащий сведения о телефонах абонентов. Каждая запись имеет поля: фамилия абонентов, год установки телефона, номер телефона. Количество записей произвольное. Б. Написать программу, выдающую информацию следующего вида:— по вводимой фамилии абонента выдается номер телефона;— определяется количество установленных телефонов с ХХХХ года. Номер года вводится с терминала | |
А. Создать файл, содержащий сведения об ассортименте игрушек в магазине. Структура записи: название игруши, цена, количество, возрастные границы, например 2—5, т. е. от 2 до 5 лет. Количество записей произвольно.Б. Написать программу, в результате выполнения которой выдаются следующие сведения:— названия игрушек, которые подходят детям от 1 до 3 лет;— стоимость самой дорогой игрушки и ее наименование;— название игрушки, которая по стоимости не превышает х руб. и подходит ребенку в возрасте от a до b лет. Значения х, а, b ввести с терминала | |
А. Создать файл, содержащий сведения о сдаче студентами I курса кафедры «ЭВМ» сессии. Структура записи: индекс группы, фамилия студента, оценки по пяти экзаменам, признак участия в общественной работе: «1»— активное участие, «0» — неучастие. Количество записей — 30. Б.Написать программу зачисления студентов группы Х на стипендию. Студент, получивший все оценки «5» и активно участвующий в общественной работе, зачисляется на повышенную стипендию (доплата 50 %), не активно участвует — доплата 25 %. Студенты, получившие «4» и «5», зачисляются на обычную стипендию. Студент, получивший одну оценку «З», но активно занимающийся общественной работой, также зачисляется на стипендию, в противном случае зачисление не производится. Индекс группы вводится с терминала | |
А. Создать файл, содержащий сведения о сдаче студентами сессии. Структура записи: индекс группы, фамилия студента, оценки по пяти экзаменам и пяти зачетам («з» означает зачет, «н» — незачет). Количество записей—25. Б. Написать программу, выдающую следующую информацию:— фамилии неуспевающих студентов с указанием индексов групп и количества задолженностей;— средний балл, полученный каждым студентом группы X, и всей группой в целом | |
А. Создать файл, содержащий сведения о личной коллекции книголюба. Структура записи: шифр книги, автор, название, год издания, местоположение (номер стеллажа, шкафа и т. п.). Количество записей произвольное. Б. Написать программу, выдающую следующую информацию:— местонахождение книги автора Х названия Y. Значения X, Y ввести с терминала;— список книг автора Z, находящихся в коллекции;— число книг издания XX года, имеющееся в библиотеке | |
А. Создать файл, содержащий сведения о наличии билетов и рейсах Аэрофлота. Структура записи: номер рейса, пункт назначения, время вылета, время прибытия, количество свободных мест в салоне. Количество записей произвольное Б. Написать программу, выдающую информацию следующего вида:— время отправления самолетов в город X;— наличие свободных мест на рейс в город Х с временем отправления Y.Значения X, Y вводятся по запросу с терминала |
Таблица 7.1 Продолжение
Вариант задания | Условие задачи |
А. Создать файл, содержащий сведения об ассортименте обуви в магазине фирмы. Структура записи: артикул, наименование, количество, стоимость одной пары. Количество записей произвольное. Артикул начинается с буквы Д для дамской обуви, М для мужской, П для детской. Б. Написать программу, выдающую следующую информацию:— о наличии и стоимости обуви артикула X;— ассортиментный список дамской обуви с указанием наименования и имеющегося в наличии числа пар каждой модели | |
А. Создать два файла, содержащих сведения о десяти нападающих хоккейных команд «Динамо» и «Спартак» соответственно: имена нападающих, число заброшенных ими шайб, сделанных голевых передач, заработанное штрафное время. Б. Написать программу, которая по данным, извлеченным из этих файлов, создает новый третий файл, содержащий имя, команду, сумму очков (голы + передачи) для шести лучших игроков обеих команд. Имена и показатели результативности хоккеистов вывести на экран | |
А. Создать файл, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает слушать студент. Структура записи: фамилия студента, индекс группы, 5 дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе — пробел. Количество записей — 25. Б. Написать программу, которая печатает список студентов, желающих прослушать дисциплину X. Если число желающих превысит 8 человек, то отобрать студентов, имеющих более высокий средний балл успеваемости | |
А. Создать файл, содержащий сведения об отправлении поездов дальнего следования с Казанского вокзала. Структура записи: номер поезда, станция назначения, время отправления, время в пути, наличие билетов. Количество записей произвольное. Б. Написать программу, которая позволяет получить следующую справочную информацию:— время отправления поездов в город Х во временном интервале от Л до б часов,— наличие билетов на поезд с номером XXX |
Таблица 7.1 Окончание
Вариант задания | Условие задачи |
А. Создать файл, содержащий сведения о сотрудниках института. Структура записи: фамилия работающего, название отдела, год рождения, стаж работы, должность, оклад. Количество записей произвольное. Б. Написать программу, которая позволяет получить следующую информацию:— список сотрудников пенсионного возраста на сегодняшний день с указанием стажа работы,— средний стаж работающих в отделе Х | |
А. Создать файл, содержащий сведения о пациентах глазной клиники. Структура записи: фамилия пациента, пол, возраст, место проживания (город), диагноз. Количество записей произвольное. Б. Написать программу, выдающую следующую информацию:— количество иногородних, прибывших в клинику,— список пациентов старше Х лет с диагнозом Y. Значения Х и Y ввести с терминала |
Задание Б. Выполнить на ЭВМ программу обработки файла, созданного в п. 1, в соответствии с заданием, указанным в п.п. Б табл. 7.1 для заданного варианта.
Проверить правильность выполнения обеих программ с помощью тестового варианта исходных данных.
Контрольные вопросы
1. Объяснить, что означают следующие термины: файл, запись, метод доступа, структура записи?
2. Каково назначение операторов открытия и закрытия файлов на языке программирования Object Pascal?
3. Допустимы ли различные типы данных для элементов одной записи?
4. Указать, с помощью каких операторов выполняется запись данных в файл последовательного доступа, чтение из файла?
5. Привести примеры использования файлов последовательного доступа.
6. Как распознать конец файла данных? Как распознать файл на диске?