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