Сведения о расходе горючего на автобазах города
Рефераты >> Программирование и компьютеры >> Сведения о расходе горючего на автобазах города

Функция 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, флажок. Используется при проверке названия автобазы.


Страница: