Платежная ведомость предприятия
Рефераты >> Программирование и компьютеры >> Платежная ведомость предприятия

Функция pech() – вывод на экран содержимое файла.

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

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

Переменные, используемые в функции, опишем в таблице 2.3.6.

Таблица 2.3.6

Принятое имя

Наименование

kol

Переменная типа int, в которой записывается кол-во записей в файле

svalprod

Переменная типа float, для накопительной суммы заработной платы

skolrab

Переменная типа int, для накопительной суммы по удержаниям

sproizv

Переменная типа float, для накопительной суммы по выданной заработной плате.

Функция spisok() – выводится меню работы с односвязным списком, реализована также в конструкции switch()case:

-выбор 1 – функция sozd();

-выбор 2 – функция vstavka ();

-выбор 3 – функция korekt ();

-выбор 4 – функция udalen ();

-выбор 5 – функция prints ();

-выбор 6 – функция soxran ();

-выбор 7 – функция ochistka ();

-выбор 8 – функция vossosdanie ();

При выборе пункта 9 происходит выход из конструкции do{}while(), и выход в головную функцию.

В начале функции, перед циклом, мы создаем нулевой фиктивный элемент списка.

Локальных переменных не объявляется, используются глобальные.

Функция sozd() – создание односвязного списка.

Параметром в функцию передается указатель на начало списка.

В данной функции в цикле вызывается функция vstavka (), пока запрашиваемый ответ не будет 'N', и заполняется список.

Функция vstavka () – добавление записей в односвязный список.

Параметром в функцию передается указатель на начало списка.

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

Переменные, используемые в функции, опишем в таблице 2.3.7.

Таблица 2.3.7

Принятое имя

Наименование

nov

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

tek1

Указатель на переменную типа predpry (структура определен­ная пользователем), используется для хранения информации по текущей фамилии.

b

Переменная типа int, флажок. Используется при проверке фамилии.

Функция korekt () – корректировка записей в односвязном списке.

Параметром в функцию передается указатель на начало списка.

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

Переменные, используемые в функции, опишем в таблице 2.3.8.

Таблица 2.3.8

Принятое имя

Наименование

k

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

b

Переменная типа int, флажок. Используется при проверке фамилии.

Функция udalen () – удаление записей из односвязного списка

Параметром в функцию передается указатель на начало списка.

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

Переменные, используемые в функции, опишем в таблице 2.3.9.

Таблица 2.3.9

Принятое имя

Наименование

nov

Указатель на переменную типа predpry (структура определен­ная пользователем), используется для хранения информации по новой фамилии.

tek1

Указатель на переменную типа predpry (структура определен­ная пользователем), используется для хранения информации по текущей фамилии.

b

Переменная типа int, флажок. Используется при проверке фамилии.

Функция prints () – вывод на экран односвязного списка

Параметром в функцию передается указатель на начало списка.

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

Переменные, используемые в функции, опишем в таблице 2.3.10.

Таблица 2.3.10

Принятое имя

Наименование

svalprod

Переменная типа float используется для хранения накопительной суммы по зарплате.

skolrab

Переменная типа int используется для хранения накопительной суммы по удержаниям.

sproizv

Переменная типа float используется для хранения накопительной суммы выданной заработной платы.

i

Переменная типа int, счетчик. Используется для подсчета количества фамилий.


Страница: