Программирование с использованием записей и файлов

Автор работы: Пользователь скрыл имя, 14 Мая 2013 в 18:21, курсовая работа

Краткое описание

Цель работы: обобщить знания по управляющим операторам языка Pascal; получить практические навыки работы с файлами, овладеть практическими навыками в организации ввода/вывода значений комбинированных типов данных, получить практические навыки программирования задач с использованием записей и файлов в среде Delphi.
В курсовой работе предусматривается разработка следующих вопросов: постановка задачи в формализованном виде; построение алгоритма решения задачи; реализация алгоритма на ПК путем создания пользовательского программного продукта; анализ результатов; использование компьютерной модели для проведения испытаний; анализ полученных данных и формулировка выводов; создание пояснительной записки.

Вложенные файлы: 1 файл

rrhawe5.doc

— 309.00 Кб (Скачать файл)

КУРСОВАЯ РАБОТА ПО ТЕМЕ:

ПРОГРАММИРОВАНИЕ  С ИСПОЛЬЗОВАНИЕМ ЗАПИСЕЙ  И ФАЙЛОВ

Для студентов  заочного отделения ИСТз-21, ИСТз-22

Преподаватель: Раковцы Г.М.

 

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

В курсовой работе предусматривается разработка следующих вопросов:

    1. постановка задачи в формализованном виде;
    2. построение алгоритма решения задачи;
    3. реализация алгоритма на ПК путем создания пользовательского программного продукта;
    4. анализ результатов;
    5. использование компьютерной модели для проведения испытаний;
    6. анализ полученных данных и формулировка выводов;
    7. создание пояснительной записки.

 

КР должна содержать следующие разделы:

- Титульный лист, название курса, название работы, подписи студентов;

(оформляется в соответствии  с требованиями, действующими в БарГУ).

- Рецензия (пустой лист) .

- Лист задание.

- РЕФЕРАТ

- ОГЛАВЛЕНИЕ (должно строиться средствами редактора Word).

- ВВЕДЕНИЕ (содержит цель выполняемой работы, описываются средства и среды обработки математической модели и оформления курсовой работы).

- 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ, в которую входят подразделы:

    1. Постановка задачи  (содержит формулировку задания, исходные данные, перечень параметров  и результатов выполнения программы).
    2. Основные аспекты обработки записей и файлов  в среде Delphi.
    3. Блок-схема алгоритма. 

- 2. ПРАКТИЧЕСКАЯ ЧАСТЬ, в которую входят подразделы:

2.1Описание объектов, свойств, методов.

2.2 Формы и основные модули текста программы.

2.3 Результаты тестирования программного продукта.

- ЗАКЛЮЧЕНИЕ (содержит краткие выводы по результатам КР и применения теоретических знаний в практическом программировании в рамках КР)

- CПИСОК ЛИТЕРАТУРЫ (должен быть оформлен согласно библиографическим требованиям).

-ПРИЛОЖЕНИЕ (полный текст  программы)

- Программа на носителе (диск).

Требования к оформлению

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

Текст курсовой работы (КР) должен содержать нумерацию страниц, разделов, глав и т.д., позволяющую получать оглавление в электронном виде. Рисунки и диаграммы должны быть выполнены стандартными средствами MS Office, Visio, Windows и содержать сквозную нумерацию и подписи.

Требования к программному обеспечению: программы должны быть реализованы стандартными средствами Delphi и сопровождаться соответствующей инструкцией по запуску и проведению вычислительного эксперимента. Программа должна содержать краткую справочную систему и пункт об авторе (About).

Носители - диск. Требования к сдаче работы: бумажная и электронная  версия должны быть представлены в  период указанный в листе задание  к курсовой работе.

Работа должна содержать  утвержденное задание с подписью преподавателя и быть выполнена  в соответствии с настоящими требованиями.                   

Требования к теоретической  части

В качестве теоретической  части КР должен быть рассмотрены основные аспектов обработки записей и файлов средствами Delphi. Студент должен свободно ориентироваться в представленном теоретическом материале.

Требования к практической части

Практическая часть КР должна содержать следующие разделы:

2. ПРАКТИЧЕСКАЯ ЧАСТЬ

    1. Описание объектов, свойств, методов
    2. Формы и основные модули текста программы.
    3. Результаты тестирования программного продукта.

В практической части  работы должны быть применены изложенные теоретические аспекты.

Подробно описать в подразделе 2.1. объекты, их свойства и методы, используемые при разработке проекта, демонстрирующего решение поставленных задач. В подразделе 2.2 показать основные формы проекта решения задачи и прокомментировать основные фрагменты модулей программы. В подразделе 2.3 показать результаты тестирования программного продукта с помощью подобранных тестов.

Задачи курсовой работы:

    • Изучить способы описания типа запись и файл на языке программирования Object Pascal в среде Delphi.
    • Разработать алгоритм решения в соответствии с заданием.
    • Составить программу решения задачи.
    • Подготовить тест для проверки программы.

 

Задание 1.

Выполнить на компьютере программу создания файла, содержащего сведения о сдаче студентами сессии. Структура записи содержит поля: индекс группы, фамилию студенты, оценки по 5 экзаменам. Количество записей в файле произвольное.

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

 

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

Таблица1 – Описание идентификаторов  и длины полей

Описание  поля

Имя переменной

Тип данных

Пример

Индекс группы

INDEX

6 символов

ИУ2-11

Фамилия

FAM

20 символов

ИВАНОВ П.В. 11

Оценки по пяти экзаменам

Массив MARKER (5)

Каждый элемент односимвольный

54323


 

Для получения  текущей записи, организуем в программе запрос на ввод очередной порции информации с терминала в оперативную память ЭВМ, для чего воспользуемся обычными операторами языка для ввода данных. Полученную строку данных запишем в первую запись файла. Для этого, используем оператор записи данных в файл, после чего запросим ввод второй строки данных с терминала в оперативную память ЭВМ. Организуем ее запись в файл. Этот процесс ввода с терминала и записи в файл будем продолжать до тех пор, пока не будет получен с терминала признак окончания ввода данных. Для подсчета количества записей в файле введем счетчик К, значение которого будем увеличивать на 1 при каждой операции записи строки в файл. Для контроля после создания файл организуем чтение записей файла и их вывод на экран.

Программа создания файла в Pascal с именем SESSYA имеют вид:

program lr15;

type

zap=record

index: string[6];

fаm: string[20];

marker:  array[1..5]  of  char

end;

var

sessya: file  of zap;

k: integer;

flag: boolean;

x: zap;

begin

k:=0; flag:=true;

rewrite(sessya);

repeat

writeln(‘введите текущую запись: индекс группы, фамилию и’);

writeln (‘5 оценок за экзамены’);

writeln (‘для окончания работы введите  вместо индекса’);

writeln(‘группу символов ######’);

read (x.index, x.fam, x.marker[1], x.marker[2], x.marker[3], x.marker[4], x.marker[5]);

if x.index <> ‘######’ then

begin

k:=k+1;

write(sessya,x)

end

else

flag:=false;

until flag;

writeln (‘в файле ’,’ записей’);

assign(sessya,'sessya');

reset(sessya);

while  not  eof(sessya)  do

begin

read(sessya,x);

 writeln(x.index, x.fam,x. marker[1],x. marker [2],x. marker [3],x. marker[4],x. marker[5]);

end;

writeln (‘конец файла’)

end.

Тестовый  вариант исходных данных для создания файла

РК6-21        СИДОРОВ      В.      Г.     44323

РК4-21        НИКИФОРОВ П. Д.     55343

РК4-22        ФЕДОРОВ С. Г. 44444

РК7-23        ФОКИН П. А. 55555

РК4-22        ПОДГОРНЫЙ А. А.     55232

РК4-22       СИЛАЕВ Ф. Г. 55555

РК4-22        БЕЛОВ И. Ф. 55455

РК4-22       АНИСОВ Д. Ф. 42323

РК4-22       ЛУКИН В. Д. 33433

РК4-22        ДЕДОВ П. Л. 33333

В качестве индекса группы X ввести значение РК4-22.

Задание 2.

Написать  программу зачисления на стипендию студентов группы X. Размер обычной стипендии 70 руб. Студенту, получившему , все пять оценок «5», назначается стипендия, повышенная на 50 %; получившему оценки «4» и «5» — повышенная на 25 %; студенту, получившему хотя бы одну оценку «2», стипендия не назначается. В остальных случаях назначается обычный размер стипендии.

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

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

Если индексы совпадают, то проводить зачисление на стипендию по следующему алгоритму: ввести счетчики количества отличных и хороших оценок К5 и К4, задав их начальное значение 0; организовать цикл на пять повторений для проверки каждой оценки студента.

Если текущая оценка «2», то выходить из цикла, зачисления на стипендию не будет и переходить к чтению следующей записи файла; если оценка «5», то увеличить счетчик К5 на 1 и продолжить цикл просмотра оценок; если оценка «не 5», то проверить ее на значение «4».

Если оценка «4», то счетчик К4, увеличить на 1 и продолжить цикл. После просмотра всех оценок проверить значение счетчика К5 — равно ли пяти? При положительном ответе назначить стипендию 70 + 0,5*70=105 руб.

Выдать на печать фамилию студента, размер стипендии и перейти к чтению следующей записи; если К5 не равно пяти, то проверить равенство пяти суммы значений К5 и К4.

При ответе ДА назначить стипендию 70 + 0,25*70 = 87,5 руб., в противном случае — стипендию 70 руб. и перейти к печати строки документа о зачислении на стипендию, а затем — к чтению новой записи. При обнаружении конца файла завершить решение задачи.

Программы в Pascal имеют вид:

program lr15b ;

label  2;

type  zap=record

index:string[6];

fam:string[20];

marker:array[1..5] of char;

                         end;

var sessya:file of zap;

            y:zap;

          x:string[6];

          i, k, k4, k5, n: integer;

          s:real;

begin

assign (sessya, ‘sessya’)',

reset(sessya);

writeln(ввeдитe индекс группы');

readln(x);

writeln('вeрoятнocть зачисления на стипендию');

writeln(‘cтудeнтoв группы');

writeln('i i              i    i');

writeln(‘i  N/N i  фамилия i      руб     i');

writeln (‘I i ii');

n:=o;

2: while not eof(sessya) do

 begin

read(sessya.y);

if   y.index=x   then

begin

k4:=0; k5:=0;

for   i:=l   to   5   do

 begin

if   y.marker=’2’   'then    goto   2;

if   y.marker='5'  then      k5:=k5+1;

if    y.marker='4'  then      k4:=k4+1;

end;

end;                             

  s:=70.0; n:=n+1;

if    k5:=5    then    s:=105.0  else

if  (k5*k4)=5     then    s:=87.5;

end;

writeln (‘кoнeц файла')

end.

Варианты задания курсовой работы:

Вариант задания

Условия задачи

1

1. Создать файл, содержащий сведения о месячной зарплате рабочих завода. Каждая запись содержит поля – фамилия рабочего, наименование цеха, размер зарплаты за месяц. Количество записей – произвольное.

2. Вычислить общую сумму выплат за месяц по цеху Х, а также среднемесячный заработок рабочего этого цеха. Напечатать для бухгалтерии ведомость для начисления заработной платы рабочим этого цеха.

2

1. Создать файл, содержащий сведения о количестве изделий, собранных сборщиками цеха за неделю. Каждая запись содержит поля – фамилия сборщика, количество изделий, собранных им ежедневно в течение 6-дневной недели, т.е. раздельно – в понедельник, вторник и т.д. Количество записей – произвольное.

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

3

1. Создать файл, содержащий сведения о количестве изделий категорий А, В, С, собранных рабочим за месяц. Структура записей имеет поля: фамилия сборщика, наименование цеха, количество изделий по категориям, собранных рабочим за месяц. Количество записей – произвольное.

3

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

- общее количество изделий категорий  А, В, С, собранных рабочим цеха Х;

- ведомость зарплаты рабочих  цеха Х;

- средний размер зарплаты работников  этого цеха

4

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

2. Написать программу, выдающую информацию следующего вида:

- по вводимой фамилии абонента  выдается номер телефона;

- определяется количество установленных  телефонов с ХХХХ года. Номер  года вводится с терминала.

5

1. Создать файл, содержащий сведения об ассортименте игрушек в магазине. Структура записи: название игрушки, цена, количество, возрастные границы, например 2-5, т.е. от 2 до 5 лет. Количество записей произвольно.

2. Написать программу, в результате выполнения которой выдаются следующие сведения:

- названия игрушек, которые подходят  детям от 1 до 3 лет;

- Стоимость самой дорогой игрушки  и ее наименование;

- название игрушки, которая по  стоимости не превышает x рублей и подходит ребенку в возрасте от a до b лет. Значения x, a, b ввести с терминала

6

1. Создайте файл, содержащий сведения о сдаче студентами I курса кафедры «ЭВМ» сессии. Структура записи: индекс группы, фамилия студента, оценка по пяти экзаменам, признак участия в общественной работе: «1» - активное участие, «0» - неучастие. Количество записей – 30.

2. Написать программу зачисления студентов группы Х на стипендию. Студент, получивший все оценки «5» и активно участвующий в общественной работе, зачисляется на повышенную стипендию (доплата 50%), не активно участвует – доплата 25%. Студенты, получившие «4» и «5», зачисляются на обычную стипендию. Студент, получивший одну оценку «3», но активно занимающийся общественной работой, также зачисляется на стипендию, в противном случае зачисление не производится. Индекс группы вводится с терминала.

7

1. Создайте файл, содержащий сведения о сдаче студентами сессии. Структура записи: индекс группы, фамилия студента, оценка по пяти экзаменам и пяти зачетам («з» означает зачет, «н» - незачет). Количество записей – 25.

2. Написать программу, выдающую следующую информацию:

- фамилии неуспевающих студентов  с указанием индексов групп  и количества задолженностей;

- средний балл, полученный каждым  студентом группы Х, и всей  группой в целом.

8

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

2. Написать программу, выдающую  следующую информацию:

- местонахождение книги автора Х названия У. Значение Х, У ввести с терминала;

- список книг автора Z, находящихся в коллекции;

- число книг издания ХХ года, имеющееся в библиотеке

9

1. Создать файл, содержащий сведения о наличии билетов и рейсах Аэрофлота. Структура записи: номер рейса, пункт назначения, время вылета, время прибытия, количество свободных мест в салоне. Количество записей произвольное.

2. Написать программу, выдающую информацию следующего вида:

- время отправления самолетов  в город Х;

- наличие свободных мест на рейс в город Х с временем отправления У.

Значения Х, У вводятся по запросу  с терминала.

10

1. Создайте файл, содержащий сведения  об ассортименте обуви в магазине фирмы. Структура записи: артикул, наименование, количество, стоимость одной пары. Количество записей произвольное. Артикул начинается с буквы Д - для дамской обуви, М -для мужской, Д- для детской.

2. Написать программу, выдающую следующую информацию:

- о наличии и стоимости обуви  артикула Х;

- ассортиментный список дамской  обуви с указанием наименования и имеющегося в наличии числа пар каждой модели.

11

1. Создайте два файла, содержащих сведения о десяти нападающих хоккейных команд: «Динамо» и «Спартак» соответственно: имена нападающих, число заброшенных ими шайб, сделанных голевых передач, заработанное штрафное время.

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

12

1. Создать файл, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает слушать студент. Структура записи: фамилия студента, индекс группы, 5 дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе – пробел. Количество записей -25.

2. Написать программу, которая печатает список студентов,  желающих прослушать дисциплину Х.  Если, число желающих превысит 8 человек, то отобрать студентов, имеющих более высокий средний балл успеваемости.

13

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

14

  1. Создать файл, содержащий сведения  о сданной в ремонт радиоаппаратуре. Структура записи: наименование группы изделий(телевизор, радиоприемник и т. п.),марка изделия, дата приемки в ремонт, состояние готовности заказа (выполнен, не выполнен). Количество записей произвольное.
  2. Написать программу, которая выводит:

-  информацию о состоянии  заказов на текущую дату по группам изделий.

- отсортированную в алфавитном порядке информацию о марке изделия по введенной группе Х. 

15

  1. Создать файл, содержащий сведения о  расписании вылета самолетов. Структура записи: номер рейса, тип самолета, пункт назначения, время вылета. Количество записей произвольное.
  2. Написать программу, которая выводит :

- какие рейсы выполняются на  данном типе самолета Х;

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

16

  1. Создать файл, содержащий сведения об  абитуриентов, сдавших вступительные экзамены в университет. Структура записи содержит: Ф.И.О., адрес, оценки по трем предметам. Количество записей произвольное.
  2. Написать программу, которая определяет:

- количество абитуриентов, проживающих в городе Х;

- абитуриентов, сдавших экзамены  со средним баллом не ниже 4.5, вывести их фамилии в алфавитном  порядке.

17

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

-вывести информацию о наличии  свободных мест на все поезда  по введенной дате выезда;

- зарезервировать m мест до города N на k-й день недели с временем отправления поезда не позднее t часов вечера. Вывести время отправления или сообщение о невозможности выполнить заказ в полном объеме.

18

  1. Создать файл, содержащий сведения о сотрудниках предприятия. Структура записи содержит: Ф.И.О., номер отдела, должность, дату начала работы. Количество записей произвольное.
  2. Написать программу, которая выводит:

- фамилии сотрудников и номер  отделения согласно введенной  должности Х;

- списки сотрудников по отделам  в порядке убывания стажа.

19

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

- общее количество выпущенной продукции А на заводе;

-для заданного цеха Х выводит количество выпущенных изделий по каждому наименованию в порядке убывания количества.

20

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

- список книг данного автора  Х;

- список книг с фамилиями  авторов в алфавитном порядке,  изданных после заданного года.

21

  1. Создать файл, содержащий сведения  об участниках спортивных соревнований. Структура записи: наименование страны, название команды, Ф.И.О. игрока, игровой номер, возраст, рост, вес. Количество записей произвольное.
  2. Написать программу, которая выводит:

- информацию о самом молодом игроке и в какой он команде,

-список игроков команды Х   в порядке убывания их роста.

22

  1. Создать файл, содержащий сведения  об участниках спортивных соревнований. Структура записи: наименование страны, название команды, Ф.И.О. игрока, игровой номер, возраст, рост, вес. Количество записей произвольное.
  2. Написать программу, которая выводит:

- информацию о том, в какой команде самый легкий игрок и его данные,

-список игроков команды Х   в порядке возрастания их возраста.

23

  1. Создать файл, содержащий сведения  о сотрудниках фирмы. Структура записи включает: Ф.И.О., табельный номер, количество проработанных часов за месяц, почасовой тариф. Количество записей произвольное.
  2. Написать программу, которая выводит размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 12% от суммы заработка. Рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере.

24

1. Создать файл, содержащий сведения  о разговорах на междугородной АТС . Структура записи содержит: дату разговора, код и название города, время разговора, тариф, номер телефона в этом городе и номер телефона абонента. Количество записей произвольное.

2. Написать программу, которая  выводит:

- стоимость разговоров по данному номеру телефона за указанную дату;

- по каждому городу общее  время разговоров с ним и  сумму.

25

  1. Создать файл, содержащий сведения  о расписании движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Количество записей произвольное.
  2. Написать программу, которая выводит:

-список рейсов автобусов, которыми  можно добраться до пункта  Х;

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

Х, У-  вводятся с клавиатуры.

26

  1. Создать файл, содержащий сведения  о студентах для получения места в общежитии. Структура записи включает: Ф.И.О. студента, группу, средний балл, доход на члена семьи. Количество записей произвольное.
  2. Написать программу, которая выводит список очередности предоставления мест в общежитии. Общежитие в первую очередь предоставляется тем, у кого доход на члена семьи меньше двух минимальных зарплат, затем остальным в порядке уменьшения среднего балла.

27

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

-общую стоимость товаров с  наименованием Х;

- в алфавитном порядке список  товаров, хранящихся больше месяца, стоимость которых превышает 1000000 руб.

28

  1. Создать файл, содержащий сведения  о гражданах  нуждающихся  в улучшении своих жилищных условий. Структура записи: ФИО, количество членов семьи, количество детей, размер занимаемой жилой площади, год становление на учет. Количество записей произвольное.
  2. Написать программу, которая выводит:

- список многодетных семей;

-список граждан ставших на учет до Х года в порядке возрастания занимаемого квадратного метра на члена семьи.

29

  1. Создать файл, содержащий сведения о спортсменах футбольной команды. Структура записи: ФИО, номер игрока, возраст, вес, рост. Количество записей произвольное.
  2. Написать программу, которая выводит:

- список игроков в порядке  убывания  их возраста;

- список игроков у которых  вес превышает норму Х, а  рост меньше, чем У.

Х, У-  вводятся с клавиатуры.

30

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

- команду, которая имеет больше  всех поражений; 

- табельную таблицу команд, расположив  из в порядке убывания набранных очков. За 1 победу – 2 очка, за 1 ничью – 1 очко, за 1 проигрыш -0 очков.

Информация о работе Программирование с использованием записей и файлов