Сведения о расходе горючего на автобазах городаРефераты >> Программирование и компьютеры >> Сведения о расходе горючего на автобазах города
Функция 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, флажок. Используется при проверке названия автобазы. |