Автоматизация работы отдела кадров

0
4

МИНИСТЕРМТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН

КАЗАХСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ                  

 ИМ. Т. РЫСКУЛОВА

                        

   Кафедра: «Прикладная информатика»

КУРСОВАЯ РАБОТА

По дисциплине:

«Алгоритм языков программирования»

На тему: 

«Автоматизация работы отдела кадров»

Выполнил (а):

Садырбаев О. Е.

Проверила:

                                                                                                 Ст.преподаватель

                                                                                      Тимофеева Е.П.

Алматы 2008

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

1 Основные возможности и характеристики языка TURBO PASCAL 4

1.1 Типы данных языка……..…………………………………… 4

1.2 Структура программы………..……………………………… 6

1.3 Массивы, процедуры и функции…………………………….. 7

1.4 Модули……………………………………………….………. 9

1.5 Записи файлы…………………………………………………         10

2 Программная часть……………………………………………….            14

        2.1 Постановка задачи…………………………………………           14

2.2 Программный код………………………………………….       14

2.2 Объяснение работы программы…………………………..        19

        2.4 Инструкция пользователю…………………………………           24

Заключение……………………………………………………………          26

Список использованной литературы ……………………………….          27

Введение

Паскаль − замечательный язык программирования, который относительно прост в изучении, довольно ясен и логичен и, будучи первым изучаемым языком программирования, приучает к хорошему стилю. Паскаль воспитывает дисциплину структурного программирования и программирования вообще лучше, чем другие языки программирования, такие, как, например Бейсик.

Пакет Turbo Pascal 7.0 обладает ограниченными возможностями и позволяет работать только в обычном режиме MS DOS. Начинающему программисту, по-видимому,  целесообразно начать изучение языка и среды именно с этого пакета.

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

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

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

Данная курсовая носит название «Автоматизация работы отдела кадров». Состоит из двух крупных частей: 

  1. Основные возможности и характеристики языка TURBO PASCAL
  2. Проектная часть, в которой непосредственно представлена сама программа.

     В первой части описываются основные составляющие языка  TURBO PASCAL: типы данных, массивы, процедуры, функции, записи и файлы. Приводятся примеры применения всех этих типов. 

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

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

    Для более наглядного представления курсовой работы некоторые данные и примеры приведены в виде рисунков, схем и таблиц. 

Название литературы и авторы указаны в списке использованной литературы.

1 Основные возможности и характеристики языка TURBO PASCAL

1.1 Типы данных языка

Основные символы языка-буквы, цифры и специальные символы составляют его алфавит. ТУРБО ПАСКАЛЬ включает следующий набор основных символов:

1) 26 латинских строчных и 26 латинских прописных букв:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

a b c d e f g h i j k l m n o p q r s t u v w x y z

2) _ подчеркивание

3) 10 цифр:

0 1 2 3 4 5 6 7 8 9

4) знаки операций:

+ – * / = <> < > <= >= := @

5) ограничители:

. , ‘ ( ) [ ] (. .) { } (* *) .. : ;

6) спецификаторы:

^ # $

7) служебные (зарезервированные) слова:

 Кроме перечисленных, в набор основных символов входит пробел. Пробелы нельзя использовать внутри сдвоенных символов и зарезервированных слов.

     Обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня. В языке ПАСКАЛЬ существуют скалярные и структурированные типы данных.

К скалярным типам относятся стандартные типы и типы, определяемые пользователем.

Стандартные типы включают целые, действительные, символьный, логические и адресный типы. Типы, определяемые пользователем, – перечисляемый и интервальный.

Структурированные типы имеют четыре разновидности: массивы, множества, записи и файлы.

Кроме перечисленных, TURBO PASCAL включает еще два типа – процедурный и объектный.

Логический тип определен таким образом, что FALSE < TRUE. Это позволяет применять к булевским операндам все операции отношения.

1.2 Структура программы

 Программа на языке ПАСКАЛЬ состоит из заголовка, разделов описаний и раздела операторов.

Заголовок программы содержит имя программы, например:

 Program PRIM;

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

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

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

 В разделе описания переменных необходимо определить тип всех переменных, используемых в программе:

 var P,Q,R: Integer;

A,B: Char;

F1,F2: Boolean;

 Раздел операторов представляет собой составной оператор, который содержит между служебными словами

 begin…….end

последовательность операторов. Операторы отделяются друг от друга символом ;.

Текст программы заканчивается символом точка.

Кроме описаний и операторов ПАСКАЛЬ – программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.

В языке ПАСКАЛЬ количество базовых конструкций увеличено до шести, это:

-следование;

-ветвление;

-цикл с предусловием;

-цикл с постусловием;

-цикл с параметром;

-вариант.

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

1.3 Массивы, процедуры и функции

 Массивы представляют собой ограниченную упорядоченную совокупность однотипных величин. Каждая отдельная величина называется компонентой массива. Тип компонент может быть любым, принятым в языке ПАСКАЛЬ, кроме файлового типа. Тип компонент называется базовым типом.

Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле.         Первый индекс определяет номер строки, второй – номер столбца. Двумерные массивы хранятся в памяти ЭВМ по строкам.

Первый способ – с использованием типизированных констант, например:

 type Dim10= Array[1..10] of Real;

 const

raM10: Dim10 = ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3 );

 При инициализации двумерных массивов значения компонент каждого из входящих в него одномерных массивов записывается в скобках:

 type Dim3x2= Array[1..3,1..2] of Integer;

     Символьная строка может быть либо строковой константой, либо строковой переменной. Строковая константа, или строка, представляет собой совокупность символов, заключенную в апострофы. Строка – это элементарная конструкция языка ПАСКАЛЬ. Строковые константы могут входить в состав выражений. Как и числовые константы, они могут быть описаны в разделе описания констант.

Строковые переменные – это одномерные упакованные массивы символов, для описания которых в TURBO PASCAL введен тип String.

Например, если строка содержит до 30 символов, ее тип будет определен как

 type s= String[30];

Алгоритм решения задачи проектируется путем декомпозиции всей задачи в отдельные подзадачи. Обычно подзадачи реализуются в виде подпрограмм.

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

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

     Во многих задачах, особенно в задачах вычислительной математики, необходимо передавать имена процедур и функций в качестве параметров. Для этого в TURBO PASCAL введен новый тип данных – процедурный или функциональный, в зависимости от того, что описывается.

Описание процедурных и функциональных типов производится в разделе описания типов:

type

FuncType = Function(z: Real): Real;

ProcType = Procedure (a,b: Real; var x,y: Real);

Для завершения работы программ, процедур и функций без предварительного перехода по меткам к закрывающему end в TURBO PASCAL введены процедуры Exit и Halt.

1.4 Модули

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

Модуль содержит описания типов данных, переменных и других объектов, а также подпрограммы, которые используются в различных программах. Подпрограмму имеет смысл включать в состав модуля в том случае, когда она реализует действие, которое приходится выполнять достаточно часто. Доступ к описаниям, функциям и процедурам модуля обеспечивает оператор использования Uses, в котором указывается имя модуля. Этот оператор размещается в разделе описаний программы, сразу после заголовка. Если в программе используется не один модуль, а несколько, необходимо указать имена всех модулей, перечислив их через запятую. Исключением является модуль System, ссылка на который необязательна. Этот модуль содержит, в частности, процедуры файлового ввода/вывода, процедуры и функции для работы со строками и некоторые другие.

Модуль начинается заголовком

unit unit_name;

где unit_name – имя модуля, которое выбирается в соответствии с правилами Паскаля. Файл, содержащий модуль, обязан иметь то же имя, что и модуль.

В Турбо Паскале имеется восемь стандартных модулей, в которых содержится большое число разнообразных типов, констант, процедур и функций. Этими модулями являются SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, TURBO3 и GRAPHS. Модули GRAPH, TURBOS и GRAPHS содержатся в одноименных ТPU-файлах, остальные входят в состав библиотечного файла TURBO.TPL. Лишь один модуль SYSTEM подключается к любой программе автоматически, все остальные становятся доступны только после указания их имен в списке, следующем за словом USES. 

1.5 Записи файлы 

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

Описание записи в языке ПАСКАЛЬ осуществляется с помощью служебного слова RECORD, вслед за которым описываются компоненты записи. Завершается описание записи служебным словом END.

Ф А Й Л Ы

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

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

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

Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.

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

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

‘A:LAB1.DAT’

‘c:ABC150pr.pas’

‘lab3.pas’.

С файловой системой TURBO PASCAL связано понятие буфера ввода вывода. Ввод и вывод данных осуществляется через буфер. Буфер – это область в памяти, которая выделяется для каждого файла. При записи в файл вся информация сначала направляется в буфер и там накапливается до тех пор, пока весь объем буфера не будет заполнен. Только после этого или после специальной команды сброса происходит передача данных на внешнее устройство. При чтении из файла данные вначале считываются в буфер, причем данных считывается не столько, сколько запрашивается, а сколько поместится в буфер.

Механизм буферизации позволяет более быстро и эффективно обмениваться информацией с внешними устройствами.

Для работы с файлами в программе необходимо определить файловую переменную. TURBO PASCAL поддерживает три файловых типа: текстовые файлы, компонентные файлы, бестиповые файлы.

признаком конца строки.

Особое место в языке ПАСКАЛЬ занимают текстовые файлы, компоненты которых имеют символьный тип. Для описания текстовых файлов в языке определен стандартный тип Тext:

 var TF1, TF2: Text;

 Текстовые файлы представляют собой последовательность строк, а строки – последовательность символов. Строки имеют переменную длину, каждая строка завершается 

Рассмотренные ранее средства работы с файлами обеспечивают последовательный доступ.

TURBO PASCAL позволяет применять к компонентным и бестиповым файлам, записанным на диск, способ прямого доступа. Прямой доступ означает возможность заранее определить в файле блок, к которому будет применена операция ввода – вывода. В случае бестиповых файлов блок равен размеру буфера, для компонентных файлов блок – это одна компонента файла.

Прямой доступ предполагает, что файл представляет собой линейную последовательность блоков. Если файл содержит n блоков, то они нумеруются от 1 через 1 до n. Кроме того, вводится понятие условной границы между блоками, при этом условная граница с номером 0 расположена перед блоком с номером 1, граница с номером 1 расположена перед блоком с номером 2 и, наконец, условная граница с номером n находится после блока с номером n.

Реализация прямого доступа осуществляется с помощью функций и процедур FileSize, FilePos, Seek и Truncate.

Функция FileSize( var f ): Longint возвращает количество блоков в открытом файле f.

Функция FilePos( var f ): Longint возвращает текущую позицию в файле f. Позиция в файле – это номер условной границы. Для только что открытого файла текущей позицией будет граница с номером 0. Это значит, что можно записать или прочесть блок с номером 1. После чтения или записи первого блока текущая позиция переместится на границу с номером 1, и можно будет обращаться к ьлоку с номером 2. После прочтения последней записи значение FilePos равно значению FileSize.

Процедура Seek( var f; N: Longint) обеспечивает назначение текущей позиции в файле (позиционирование). В параметре N должен быть задан номер условной границы, предшествующей блоку, к которому будет производиться последующее обращение. Например, чтобы работать с блоком 4, необходимо задать значение N, равное 3. Процедура Seek работает с открытыми файлами.

Процедура Truncate( var f ) устанавливает в текущей позиции признак конца файла и удаляет (стирает) все последующие блоки.

Работа с адресными переменными (указателями) будет рассмотрена позже, сейчас отметим, что для получения значения адреса какой-либо переменной введена унарная операция.

2 Программная часть

2.1 Описание поставленной задачи.

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

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

2.2 Программный код.

PROGRAM DP32;

  USES  CRT;

  TYPE

     UKAZ=^sot;

    sot=RECORD

     fam:string;

     nom:integer;

     dol:string;

     god: integer;

     NEXT,OLD:UKAZ;

  END;

  sotr=RECORD

  fam:string;

     nom:integer;

     dol:string;

     god: integer;

  eND;

  VAR

     ZAGOL,TEK1,TEK2,ZVENO:UKAZ;

     F:FILE OF sot;

     A:sot;

     S:string;

     I,N,W:INTEGER;

     nom1:integer;

     PROCEDURE CFILE;

       BEGIN

          ASSIGN(F,’sotr.DAT’);

          REWRITE(F);

          WRITELN(‘ Skolko sotrudnikov  vvodit v bazu ?’);

          READLN(N);

          FOR I:=1 TO N DO

            BEGIN

               WRITELN(I,’- iyi sotrudnik’);

               WRITELN(‘ Familiya ?’);

               READLN(A.fam);

               writeln(‘Nomer otdela’);

               readln(a.nom);

               writeln(‘Doljnost’);

               readln(a.dol);

               WRITELN(‘Vremya nachala raboty ?’);

               READLN(A.god);

               WRITE(F,A);

          END;

          CLOSE(F);

      END;

  PROCEDURE CPIC;

    BEGIN

       ASSIGN(F,’sotr.DAT’);

       RESET(F);

       NEW(ZAGOL);

       TEK1:=ZAGOL;

       TEK1^.NEXT:=TEK1;

       TEK1^.OLD:=TEK1;

       WHILE NOT EOF(F) DO

          BEGIN

            READ(F,A);

            NEW(ZVENO);

            ZVENO^.fam:=A.fam;

            zveno^.nom:=a.nom;

            ZVENO^.dol:=A.dol;

            zveno^.god:=a.god;

            ZVENO^.NEXT:=ZAGOL;

            TEK1^.NEXT:=ZVENO;

            ZAGOL^.OLD:=ZVENO;

            ZVENO^.OLD:=TEK1;

            TEK1:=ZVENO;

       END;

     CLOSE(F);

   END;

 PROCEDURE PRINT;

   BEGIN

     CLRSCR;

     WRITELN(‘Faniliya     Nomer otdela    Diljnost   Vremya nachala raboty’);

     WRITELN(‘+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++’);

     TEK1:=ZAGOL^.NEXT;

     WHILE TEK1<>ZAGOL DO  BEGIN

      WRITELN(TEK1^.fam:10,»,tek1^.nom:15,»,TEK1^.dol:12,»,TEK1^.god:20,»);

      TEK1:=TEK1^.NEXT;

     END;

     WRITELN(‘||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ‘);

     WRITELN(‘ Najmite  ENTER’);

     READLN;

   END;

 PROCEDURE ZFILE;

   BEGIN

     ASSIGN(F,’sotr.DAT’);

     REWRITE(F);

     RESET(F);

     TEK1:=ZAGOL^.NEXT;

     WHILE TEK1<>ZAGOL DO

        BEGIN

           A.fam:=TEK1^.fam;

           a.nom:=tek1^.nom;

           A.dol:=TEK1^.dol;

           A.god:=TEK1^.god;

           WRITE(F,A);

           TEK1:=TEK1^.NEXT;

        END;

     CLOSE(F);

   END;

 PROCEDURE SORT;

 var q:integer;

 s:integer;

 d:integer;

   BEGIN

     CLRSCR;

     N:=0;

     d:=0;

     s:=0;

     TEK1:=ZAGOL^.NEXT;

      WHILE TEK1<>ZAGOL DO

        BEGIN

          N:=N+1;

          TEK1:=TEK1^.NEXT;

        END;

     TEK2:=ZAGOL^.NEXT;

     WHILE TEK2<>ZAGOL DO

       BEGIN

         TEK2:=TEK2^.NEXT;

         TEK1:=ZAGOL;

         FOR I:=2 TO N DO

           BEGIN

              TEK1:=TEK1^.NEXT;

              IF TEK1^.god>TEK1^.NEXT^.god THEN

                BEGIN

                  A.fam:=TEK1^.fam;

                  a.nom:=tek1^.nom;

                  A.dol:=TEK1^.dol;

                  A.god:=TEK1^.god;

                  TEK1^.fam:=TEK1^.NEXT^.fam;

                  tek1^.nom:=tek1^.next^.nom;

                  TEK1^.dol:=TEK1^.NEXT^.dol;

                  TEK1^.god:=TEK1^.NEXT^.god;

                  TEK1^.NEXT^.fam:=A.fam;

                  tek1^.next^.nom:=a.nom;

                  TEK1^.NEXT^.dol:=A.dol;

                  TEK1^.NEXT^.god:=A.god;

                  END;

          END;

     END;

          WRITELN(‘Familiya    Nomer otdela    Doljnost     Vremya nachala raboty’);

              WRITELN(‘+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ‘);

              TEK1:=ZAGOL^.NEXT;

              WHILE TEK1<>ZAGOL DO  BEGIN

              WRITELN(TEK1^.fam:10,»,tek1^.nom:15,»,TEK1^.dol:12,»,TEK1^.god:20,»);

              TEK1:=TEK1^.NEXT;

              END;

              WRITELN(‘||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ‘);

              Writeln;

              WRITELN(‘ Najmite  ENTER’);

              readln;

 END;

 BEGIN

   WHILE W < 6 DO

      BEGIN

         CLRSCR;

         WRITELN(‘ Vi mojete :’);

         WRITELN(‘1 – Sozdat fail’);

         WRITELN(‘2 – Zagruzit spisok ‘);

         WRITELN(‘3 – Zapisat spisok v fail ‘);

         WRITELN(‘4 – Napechatat spisok ‘);

         WRITELN(‘5 – Sortirovka spiska po gorodu ‘);

         WRITELN(‘6 – Viiti iz programmi ‘);

         WRITELN(‘ Vashi deistviya ?’);

         READLN(W);

         CASE W OF

           1:CFILE;

           2:CPIC;

           3:ZFILE;

           4:PRINT;

           5:SORT;

         END;

     END;

 END.

2.3 Объяснение работы программы.

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

pastedGraphic.png

Основные процедуры и функции работы с типизированными файлами предназначены для объединения программы с файлом на магнитном диске и организации процессов чтения – записи информации из файла.

Типизированные файлы предполагают наличие специальной конструкции служебных слов при описании файловой переменной – FILE OF. Например:

VAR

F1 : FILE OF INTEGER;

F2 : FILE OF TOVAR;

где F1, F2 – файловые переменные, представляющие собой в первом случае массив произвольной длины целых чисел, а во втором случае – массив произвольной длины записей типа TOVAR.

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

Перечень основных процедур и функций работы с файлами начнем с процедуры «связывающей» имя файловой переменной с именем файла на маг­нитном диске.

ASSIGN(F,NAME:STRING);

где NAME – полное имя файла (с указанием пути), если файл не на­ходится в текущем каталоге.

Например:

ASSIGN(F,’C:CKLAD.DAT’);

Файловая переменная F «связывается» с именем файла CKLAFD.DAT, который должен находиться (если он уже имеется) в корневом каталоге диска C: или будет там находиться после его создания из программы.

A:=’CKLAD.DAT’;

ASSIGN(F,A);

Строковой переменной A присвоено имя файла CKLAD.DAT и файловая переменная F «связывается» с этим именем. При этом файл должен нахо­диться (или будет находиться) в текущем каталоге (обычно каталог TP7). Таким образом процедура ASSIGN должна предшествовать всем остальным процедурам и функциям для работы с этим файлом.

Процедура создания файла на магнитном диске.

REWRITE(F);

На магнитном носителе, в каталоге определенном именем файла, соз­дается новый файл длиной 0 байт с именем заданном в процедуре ASSIGN. Если в этом каталоге уже существовал файл с таким именем и расширени­ем, то он стирается. Созданный файл автоматически открывается для опе­раций чтения – записи.

Процедура открытия существующего файла для операций чтения – за­писи:

RESET(F);

Эта процедура обычно используется вместо процедуры REWRITE(F), если файл уже создан.

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

CLOSE(F);

Если вы пытаетесь закрыть уже закрытый файл или еще не открытый файл, то Турбо-Паскаль выдаст сообщение об ошибке.

Непосредственная запись или чтение информации из файла осущест­вляется с помощью процедур READ и WRITE. Но необходимо отметить, что обращение к файлу осуществляется через буфер, и размер буфера типизи­рованных файлов соответствует записи файловой переменной. Поэтому в программе необходимо использовать специальную переменную (того же ти­па, что и файловая переменная) для организации обмена информацией этой переменной с файловой. Например:

VAR

F : FILE OF TOVAR;

A : TOVAR;

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

READ(F,A);

WRITE(F,A);

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

Процедура перемещения указателя используемой записи:

SEEK(F,N);

где F – файловая переменная;

N – номер текущей записи.

Все записи в файле располагаются в возрастающем порядке и имеют сплошную нумерацию. Файл начинается с записи, имеющей номер 0. При создании или открытии файла текущий указатель используемой записи ав­томатически устанавливается на нулевую запись. Использование операций READ или WRITE с файловой переменной увеличивает значение текущего указателя на единицу. Если необходимо выполнить операцию с конкретной записью файла, то перед обращением к файлу необходимо установить теку­щий указатель на требуемую запись. Например, после открытия файла не­обходимо прочитать 10 по счету запись.

ASSIGN(F,’CKLAD.DAT’);

RESET(F);

SEEK(F,9);

READ(F,A);

В процедуре SEEK мы использовали цифру 9, так как ей соответству­ет 10 по счету запись файла. READ(F,A) – читает нужную запись в пере­менную A и значения полей этой переменной становятся доступными прог­рамме. Текущий указатель при этом автоматически переходит на следующую запись (то есть увеличивается на единицу).

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

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

При сплошном просмотре файлов часто используют функцию EOF(F) – END OF FILE. Эта функция в обычном состоянии имеет значение FALSE, но если текущий указатель достиг конца файла (больше записей нет), то функция принимает значение TRUE. Ее еще называют функцией признака конца файла и часто используют в операторах цикла с условием при рабо­те с файлами.

Здесь мы рассмотрели основные процедуры и функции для работы с файлами. Их мы использовали и в нашей программе.

Пункт создать файл – он вызывает процедуру создания файла. Как было сказано выше ее надо вызывать если файла еще не существует или вы хотите стереть всю информацию с файла и начать новый.

Пункт загрузить список – он вызывает процедуру считывания файла. 

Пункт записать список – он вызывает процедуру записи в файл.

Пункт напечатать список – вызывает процедуру, которая выводить список на экран компьютера.

 

2.4 Инструкция пользователю.

Запустив программу вы увидите меню, которое поможет вам быстро ориентироваться в программе.

pastedGraphic.png

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

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

Записать список в файл – сохранение данных в файл.

Напечатать список – вывести полную информацию о цехах и продукции, которую они произвели.

pastedGraphic_1.png

 

Выход из программы – завершает работу программы.

Заключение

Завершается рассмотрение основ программирования на Турбо Паскале. Среди них вычисления и обработка информации, использование объектно-ориентированного программирования – словом, те задачи, с которыми приходится сталкиваться профессиональному программисту. Турбо Паскаль был выбран как наилучший язык программирования для обучения основам профессионального программирования.

Турбо Паскаль – достаточно «старый» программный продукт. Следует заметить, однако, что Паскаль – это живой язык. Известны, используются или находятся в стадии разработки компиляторы и среды разработки программ на Паскале для различных операционных систем,  в том числе и бурно развивающейся операционной системы Linux. Эти системы иногда частично, а иногда и в значительной мере совместимы с Турбо Паскалем, а следовательно, накопленный опыт может быть использован и для серьезной, профессиональной работы по разработке программ.

Список использованной литературы

  1. Абрамов С.А.,Зима Е.В. Начала информатики. – М.: “Наука”,1989
  2. Абрамов В.Г.,Трифонов Н.П.,Трифонова Г.Н. Введение в язык Паскаль. – М.: “Наука”,1992
  3. Англо-русский словарь по программированию и информатике. – М.:Русский язык,1990
  4. Боон К. Паскаль для всех. – М.:Энергоатомиздат,1988
  5. Буч Г. Объектно-ориентированное проектирование с примерами  применения . – Киев, Диалектика, 1992
  6. Васильев П.П. Турбо-Паскаль – мой друг. – М.: Компьтер, ЮНИТИ, 1995
  7. Вирт Н. Алгоритмы+ структуры данных = программы. – М.: Мир,1985