Платежная ведомость предприятияРефераты >> Программирование и компьютеры >> Платежная ведомость предприятия
Функция fail() – выводится меню работы с файлами, реализована также в конструкции switch()case:
-выбор 1 – функция sozd();
-выбор 2 – функция dopolnen();
-выбор 3 – функция korr();
-выбор 4 – функция iskl();
-выбор 5 – функция pech();
При выборе пункта 6 происходит выход из конструкции do{}while(), и выход в головную функцию.
Локальных переменных не объявляется, используются глобальные.
В отдельную небольшую функцию выделена функция задержки экрана – функция pause(). Она будет использоваться практически во всех ниже описанных функциях.
Функция sozd() – создание нового файла.
С клавиатуры вводится название файла, проверяется есть ли уже такой файл. Если файла с таким именем нет, то файл создается, и открывается в двоичном режиме на запись.
Информация по фамилиям рабочих заносится с клавиатуры в функции vvod(), и хранится во временной переменной.
Затем проверяется существует ли фамилия с именем, указанным во временной переменной. Если уже есть, то запись не сохраняется, если нет, то сохраняется.
После этого запрашивается продолжать ли ввод по фамилиям рабочих. Если нет, то происходит выход из функции, если да, то возвращаемся на функцию ввод.
Переменные, используемые в функции, опишем в таблице 2.3.2.
Таблица 2.3.2
Принятое имя |
Наименование |
vedread |
Переменная типа predpr (структура определенная пользователем), используется для промежуточного хранения информации по одной фамилии при работе с файлами. |
fname |
Переменная тип char, используется для считывания и хранения имени файла. |
*name |
Указатель на тип char, используется при проверке фамилии рабочих. |
kol |
Переменная типа int, в которой записывается кол-во записей в файле |
k |
Переменная типа int, счетчик. Используется при проверке фамилии рабочих. |
Функция dopolnen() – дополнение записей в уже созданный файл. С клавиатуры вводится название файла, проверяется есть ли файл с таким названием. Если файл есть, то открывается в двоичном режиме на дополнение.
Информация по фамилиям рабочих заносится с клавиатуры в функции vvod(), и хранится во временной переменной.
Затем проверяется существует ли предприятие с именем, указанным во временной переменной. Если уже есть, то запись не сохраняется, если нет, то сохраняется.
После этого запрашивается продолжать ли ввод по фамилиям рабочих . Если нет, то происходит выход из функции, если да, то возвращаемся на функцию ввод.
Переменные, используемые в функции, опишем в таблице 2.3.3.
Таблица 2.3.3
Принятое имя |
Наименование |
vedread |
Переменная типа predpr (структура определенная пользователем), используется для промежуточного хранения информации по одной фамилии при работе с файлами. |
fname |
Переменная тип char, используется для считывания и хранения имени файла. |
*name |
Указатель на тип char, используется при проверке фамилии. |
kol |
Переменная типа int, в которой записывается кол-во записей в файле |
k |
Переменная типа int, счетчик. Используется при проверке фамилии рабочих . |
Функция korr () – корректировка записей в уже созданном файле.
С клавиатуры вводится название файла, проверяется есть ли файл с таким названием. Если файл есть, то открывается в двоичном режиме на чтение.
Затем вводится название корректируемой фамилии.
Поочередно просматриваются записи в файле, и сравниваются текущая фамилия рабочего с введенным с клавиатуры. Если наименования совпадают, то запоминается номер позиции записи в файле.
Новая информация по корректируемой фамилии рабочего заносится с клавиатуры в функции vvod(), записывается во временной переменной, и записывается на место корректируемой записи с
После этого запрашивается продолжать ли корректировку по фамилиям рабочих . Если нет, то происходит выход из функции, если да, то возвращаемся на ввод названия корректируемой фамилии рабочего.
Переменные, используемые в функции, опишем в таблице 2.3.4.
Таблица 2.3.4
Принятое имя |
Наименование |
n |
Переменная тип char, используется для считывания и хранения имени корректируемой фамилии рабочего. |
fname |
Переменная тип char, используется для считывания и хранения имени файла. |
Функция iskl () – удаление записей из уже созданного файла.
С клавиатуры вводится название файла, проверяется есть ли файл с таким названием. Если файл есть, то открывается в двоичном режиме на чтение.
Также организовывается вспомогательный поток данных на запись.
Затем вводится название корректируемой фамилии рабочего.
Поочередно просматриваются записи в файле, и сравниваются текущую фамилию рабочего с введенным с клавиатуры. Если наименования не совпадают, тогда текущая запись записывается во вспомогательный файл, если совпадают то данная запись пропускается.
Когда просмотрены все записи, и если запись с исходным наименованием существовала, то исходный файл удаляется, а вспомогательному файлу, присваивается имя исходного.
Если записи с исходным наименованием не существовало, тогда удаляется вспомогательный файл.
После этого запрашивается продолжать ли удаление фамилий рабочих. Если нет, то происходит выход из функции, если да, то возвращаемся на ввод названия корректируемой фамилии рабочего.
Переменные, используемые в функции, опишем в таблице 2.3.5.
Таблица 2.3.5
Принятое имя |
Наименование |
vspom |
Потоковая переменная тип ofstream, используется для хранения вспомогательного файла. |
isk |
Переменная тип char, используется для считывания и хранения имени удаляемого фамилии рабочего. |
fname |
Переменная тип char, используется для считывания и хранения имени файла. |
col |
Переменная типа int, флажок. Используется при проверке фамилии рабочих . |