36696

Типизированный файл

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

Информатика, кибернетика и программирование

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

Русский

2013-09-23

87.42 KB

7 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Технологический институт
федерального государственного образовательного учреждения
высшего профессионального образования
«Южный федеральный университет» в г.Таганроге

Факультет автоматики и вычислительной техники

Кафедра Математического обеспечения и применения ЭВМ

   

      

          

              

ОТЧЕТ

по лабораторной работе № 9

по курсу «ПРОГРАММИРОВАНИЕ»

Вариант 6

Выполнил:

студент группы   А-91

Муслимов Р.С.

_____________________

                   (подпись)

Проверил:

Доцент кафедры МОП ЭВМ

Троценко Роман Владимирович

_________________    _________________

              (подпись)                                     (оценка)

«01»  Июня  2012 г.

Содержание

Содержание………………………………………………………………………………………………...2

Введение……………………………………………………………………………………………………3

Задание……………………………………………………………………………………………………..4

Листинг программы………………………………………………………………………………………4

Итог………………………………………………………………………………………………………....6

Введение

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

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

Файловая переменная для типизированного файла задается следующим образом:

var имя_файловой_переменной : file of тип_записи_файла;

Процедуры и функции для работы с типизированными файлами:

assign( var F; FileName:string ) – связывает файловую переменную F с именем файла FileName ;

reset( var F ) – открывает существующий файл F для операций чтения и записи;

rewrite( var F ) – создает новый файл F и открывает его для операций чтения и записи;

close( var F ) – закрывает файл F ;

eof( var F ):boolean – возвращает TRUE, если достигнут конец файла, и FALSE – в против-ном случае;

read( var F; var X1; var X2; … ) – ввод данных из файла F в переменные X1, X2, …, тип которых должен совпадать с типом записи файла. После чтения записи указатель файла устанавливается на запись, следующую за последней прочитанной;

write( var F; X1; X2; … ) – вывод в файл F переменных X1, X2, …, тип которых должен совпадать с типом записи файла. После вывода каждой переменной указатель файла ус-танавливается на запись, следующую за только что выведенной;

filesize( var F ): longint – возвращает количество записей в открытом файле F ;

filepos( var F ): longint – возвращает номер записи открытого файла F, на которой находится указатель;

seek( var F; N: longint ) – устанавливает указатель в открытом файле F на запись с номе-ром N ;

truncate( var F ) – усекает открытый файл F отбрасыванием всех его записей, начиная с текущей, до конца файла.

Запись – это тип данных, состоящий из набора компонентов, называемых полями. Поля могут быть любых допустимых в языке типов.

Описание типа записи и переменной записи:

type имя_типа_записи = record

имя_поля_1: тип_поля_1;

имя_поля_2: тип_поля_2;

...

имя_поля_N: тип_поля_N

end;

var имя_переменной_записи:имя_типа_записи;

 

Обращение к полям переменной записи: имя_переменной_записи.имя_поля

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

Задание

Написать программу, которая выполняет следующие действия по выбору пользователя: 1 – ввод с клавиатуры данных об абонентах городской телефонной станции (данные об одном абоненте: фамилия, имя, отчество, адрес, год рождения, телефон), 2 – ввод данных об абонентах из файла на диске, 3 – вывод данных об абонентах в файл на диске, 4 – по заданному пользователем номеру телефона вывести на экран всю информацию об абоненте, 5 – конец работы. Максимальное количество абонентов – 50. Для представления данных об одном абоненте использовать тип данных record . Использовать типизированный файл, запись которого содержит данные об одном абоненте.

Листинг программы

Program Lab9;

Uses CRT;

Type

  Subscriber = record

     FirstName: string;

     LastName: string;

     MiddleName: string;

     Adress: string;

     NumberOfPhone: real;

     YearOfBirthday: integer;

  End;

Var

  DateAboutSubscriber: Array [1..50] of Subscriber;

  Action, CountOfSubscribe, i: integer;

  FindSub: real;

  InputFile, OutputFile: File of Subscriber;

  OutputFileTXT: text;

  NameOfInputFile, NameOfOutputFile, NameOfOutputFileTXT: string;

  PrintedOnScreen: boolean;

Begin

While Action <> 5 Do

Begin

  writeln('Выберите нужное действие:',#10,

  '1 - Внос новых абонентов с клавиатуры;',#10,

  '2 - Ввод абонентов из файла;',#10,

  '3 - Вывод всех абонентов в файл на диске;',#10,

  '4 - Поиск абонента по номеру телефона;',#10,

  '5 - Завершение работы',#10);

  readln(Action);

  Case Action Of

  1:                                        {Ввод новых абонентов с клавиатуры}

  Begin

     writeln('Введите колличество вносимых абонентов:');

     readln(i);

     While (i > 50) and (i < 1) Do

     Begin

        writeln('Количество абонентов должно быть не более 50!');

        readln(i);

     End;

     CountOfSubscribe := i;

     For i := 1 to CountOfSubscribe Do

     Begin

        writeln('Введите имя абонента:');

        readln(DateAboutSubscriber[i].FirstName);

        writeln('Введите фамилию абонента:');

        readln(DateAboutSubscriber[i].LastName);

        writeln('Введите отчество абонента:');

        readln(DateAboutSubscriber[i].MiddleName);

        writeln('Введите адрес абонента:');

        readln(DateAboutSubscriber[i].Adress);

        writeln('Введите телефонный номер абонента:');

        readln(DateAboutSubscriber[i].NumberOfPhone);

        writeln('Введите год рождения абонента:');

        readln(DateAboutSubscriber[i].YearOfBirthday);

     End;

     writeln;

  End;                                       {Ввод абонентов из файла на диске}

  2:

  Begin

     writeln('Введите имя файла на диске:');

     readln(NameOfInputFile);

     assign(InputFile, NameOfInputFile);

     reset(InputFile);

     i:=1;

     While (not Eof(InputFile)) and (i<>50) Do

     Begin

        read(InputFile, DateAboutSubscriber[i]);

        inc(i);

     End;

     CountOfSubscribe := i;

     close(InputFile);

     writeln;

  End;

  3:                                          {Вывод абонентов в файл на диске}

  Begin

     writeln('Введите имя создаваемого файла:');

     readln(NameOfOutputFile);

     NameOfOutputFileTXT := NameOfOutputFile + '.txt';

     assign(OutputFile, NameOfOutputFile);

     rewrite(OutputFile);

     assign(OutputFileTXT, NameOfOutputFileTXT);

     rewrite(OutputFileTXT);

     for i := 1 to CountOfSubscribe do

     Begin

        write(OutputFile, DateAboutSubscriber[i]);

        writeln(OutputFileTXT, i, '. Имя: ', DateAboutSubscriber[i].FirstName);

        writeln(OutputFileTXT, '   Фамилия: ', DateAboutSubscriber[i].LastName);

        writeln(OutputFileTXT, '   Отчество: ', DateAboutSubscriber[i].MiddleName);

        writeln(OutputFileTXT, '   Адрес: ', DateAboutSubscriber[i].Adress);

        writeln(OutputFileTXT, '   Телефонный номер: ', DateAboutSubscriber[i].NumberOfPhone);

        writeln(OutputFileTXT, '   Год рождения: ', DateAboutSubscriber[i].YearOfBirthday);

        writeln(OutputFileTXT, '');

     End;

     close(OutputFile);

     close(OutputFileTXT);

     writeln;

  End;

  4:                                       {Поиск абонентов по номеру телефона}

  Begin

     i := 1;

     PrintedOnScreen := FALSE;

     writeln('Введите телефонный номер искомого абонента:');

     readln(FindSub);

     writeln;

     While (PrintedOnScreen = FALSE) and (i <> 50) Do

     Begin

        If DateAboutSubscriber[i].NumberOfPhone = FindSub Then

        Begin

           writeln('Имя абонента:', DateAboutSubscriber[i].FirstName);

           writeln('Фамилия абонента:', DateAboutSubscriber[i].LastName);

           writeln('Отчество абонента:', DateAboutSubscriber[i].MiddleName);

           writeln('Адрес абонента:', DateAboutSubscriber[i].Adress);

           writeln('Телефонный номер абонента:', DateAboutSubscriber[i].NumberOfPhone);

           writeln('Год рождения абонента:', DateAboutSubscriber[i].YearOfBirthday);

           PrintedOnScreen := TRUE;

        End;

     inc(i);

     End;

     writeln;

  End;

End;

End;

Writeln('Работа завершена, нажмите любую клавишу...');

Readln;

End.

Итог.

  В ходе выполнения лабораторной работы №9 мы познакомились с типизированными файлами и записями, научились работать с ними и использовать при создании различных программ.

  

  На этом этапе, лабораторную работу №9 можно считать завершённой.

Страница 6


 

А также другие работы, которые могут Вас заинтересовать

46495. Пятилетняя гражданская война. Политика военного коммунизма 17.51 KB
  При этом остававшийся экономический потенциал не обновлялся на протяжении всего периода войны и представлял собою полуразвалившееся оборудование и транспорт. Сельское хозяйство производило продукции на 40 меньше чем до войны. Одним из главных итогов гражданской войны стали глубочайшие социальные изменения в российском обществе. Вместе с тем итоги гражданской войны включали не только результаты разрушительных процессов но и определенное созидающее начало.
46496. Экономический рост и развитие 66 KB
  Вследствие неодновременности выборов работа Государственной думы проходила при неполном составе её пополнение шло в ходе работы. Комиссии Государственной думы работали над законопроектами о неприкосновенности личности свободе совести собраний об отмене смертной казни. В центре внимания II Думы как и ее предшественницы находился аграрный вопрос. Третьеиюньский государственный переворот новое Положение о выборах в Думу в нарушение Основных законов было утверждено царем без санкции Думы и Государственного совета означал поражение...
46497. Рroposition 17.62 KB
  Propositions show up in formal logic as objects of a formal language. A formal language begins with different types of symbols. These types can include variables, operators, function symbols, predicate (or relation) symbols, quantifiers, and propositional constants
46498. Эхинококкоз печени. Клиника, диагностика, методы хирургического лечение 17.71 KB
  Эхинококкоз печени. При перкуссии расширения границ печени.Периоды развития: латентный продромальных явлений прогрессивное увеличение печени период осложнений.
46499. Анализ прибыли предприятия 17.72 KB
  Прибыль предприятия характеризует превышение если наоборот то убыток выручки над расходами является главным показателем эффективности деятельности и отражает цель предпринимательства. В зависимости способа вычисления и направлений распределения различают такие основные виды прибыли предприятия: валовую балансовую прибыль операционную прибыль прибыль от обычной деятельности и прибыль после налогообложения чистую прибыль.Валовая балансовая прибыль Gross Profit разность между чистым доходом от реализации продукции и себестоимостью...
46500. Понятие и методы калькуляции затрат 17.86 KB
  Калькуляция служит основой для определения средних издержек производства и установления себестоимости продукции. Методы калькуляции это методы расчёта издержек производства себестоимости продукции объёма незавершённого производства основанные на калькуляции затрат. Попередельный метод калькуляции это метод исчисления себестоимости применяемый на предприятиях где исходный материал в процессе производства проходит ряд переделов или где из одних исходных материалов в одном технологическом процессе получают различные виды продукции....
46501. Техническое диагностирование. Этапы комплексной диагностики участков МТ. 17.87 KB
  Основными задачами контроля и диагностики МТ являются определение технического состояния на основе комплексного мониторинга в процессе создания и эксплуатации системы оценка и прогнозирование динамики технического состояния с целью обеспечения надежной и безопасной эксплуатации газотранспортной системы. Контроль и мониторинг технического состояния трубопроводных систем включает: получение информации в предэксплуатационный период ранняя диагностика из проектных материалов включая материалы изысканий лабораторных исследований грунтов...
46502. Диаграммы UML 17.91 KB
  Диаграммы UML. UML определяет следующие диаграммы: 1. Диаграммы применения use cse Или диаграммы вариантов использования Представляют собой граф из действующих лиц ctors и их взаимодействие с системой представленное сценариями применения. Диаграммы классов Cодержат набор статических декларативных элементов как например классы типы их связи объединенные в граф.
46503. Обеспечение электробезопасности техническими способами и СЗ 17.91 KB
  При случайном прикосновении для обеспечения электробезопасности применяют: защитные оболочки защитные ограждения временные или стационарные безопасное расположение токоведущих частей изоляцию этих частей и РМ малое U защитное отключение предупредительную сигнализацию блокировку и знаки безопасности; а при прикосновении к нетоковедущим металлическим частям защитное заземление зануление выравнивание потенциала защитное отключение изоляцию нетоковедущих частей электроразделение сети малое U контроль электроизоляции и СИЗ....