ОГЛАВЛЕНИЕ
ГЛАВА 1
1.1 Постановка задачи и ее экономическая сущность
1.1.1 Формальная постановка задачи расчета
заработной платы
1.1.2 Требования к программной реализации
1.2 Технология решения задачи
1.2.1 Сущность АРМ
1.2.2 Типовая структура АРМ
1.2.3 Классификация АРМ
1.2.4 Выбор средств для реализации
ГЛАВА 2
2.1 Сценарий диалога с пользователем
2.2 Структура комплекса АРМ "Бухгалтер
2.3 Схема модуля вычисления заработной платы
2.4 Описание модулей программы
ГЛАВА 3
3.1 Надежность программного изделия
3.1.1 Основные определения
3.1.2 Модель Миллса
3.2 Эффективность программного изделия
3.2.2 Оценка эффективности программного комплекса
3.3 Тестирование комплекса
Основные обозначения
Список литературы
- 4 -
ГЛАВА 1
1.1 Постановка задачи и ее экономическая сущность.
Очевидно, что в работе бухгалтерии профсоюзного комитета ВУЗа есть много
технической, рутинной работы, которая хорошо поддается автоматизации.
Хранение документов в виде компьютерных данных на диске безусловно
более целесообразно, чем хранение их в классическом виде, то есть в виде
бумаг. Значительно упрощается поиск нужного документа, имеется возможность
хранить данные за много лет и не путаться в них, сильно упрощается изменение
любого документа, составление многочисленных справок.
Всю работу бухгалтерии можно разделить на несколько основных подпунктов:
1. Работа со справочной и нормативной информацией. В качестве основных
тут можно отметить справочник различных начислений сотрудникам,
справочник сотрудников с хранящимися в нем фамилией сотрудника,
его табельным номером, окладом,полем, показывающим, является ли он
членом профсоюза, обоснованием оклада, справочник налогов с
- 5 -
хранящимися названием и размером налога, справочником по тарифной
сетке, и другие.
Необходимо поддерживать своевременное изменение этой информации,
организовать гибкую систему справок.
2. Ведение записной книжки бухгалтера. Эта книжка как бы дублирует
Главную книгу и служит для контроля. В ней отражаются любой приход
или расход денег. По этой книге каждый месяц необходимо подводить
баланс и проверять, сколько денег осталось на каждом из счетов.
3. Расчет платежной ведомости организации. При подсчете заработной
платы необходимо учитывать файл, в котором хранятся начисления
сотрудникам за почасовую работу. Следует автоматизировать
вычитание разнообразных налогов, учитывать льготы различным
категориям сотрудников. Система должна следить за фондом
заработной платы, автоматически предупреждать пользователя
при перерасходе фонда, и наоборот, учитывать экономию фонда
и учитывать эту экономию в дальнейшем. Программа должна
тщательно документировать все свои действия и выдавать отчеты,
по которым можно было всегда ревизовать ее деятельность.
4. Ведение файла, в котором отражается выдача различных льгот
в подведомственной организации. Должно быть возможно путем
несложного запроса выяснить, сколько и каких льгот получал
каждый конкретный сотрудник за какой-то период времени.
5. Работа с банками. Необходимо автоматизироваь учет и хранение
банковских документов, как-то: платежные поручения,банковские
обьявления, выписки из банка на каждую проведенную операцию
- 6 -
6. Работа с главной книгой. Пользуясь различными введенными
документами, программа должна генерировать записи в главной
книге, подсчитывать баланс по ней, позволять просматривать
главную книгу для контроля.
1.1.1. Формальная постановка задачи расчета заработной платы.
????????????????? Фонд
?Государственный? зарплаты
?Комитет ???????? Профсоюзные ???????????????
?по народному ? ? взносы ?Банк ?
?образованию ? ? ???????????????????????????????
? ? ? ? ?счет профкома? ?
? ? ? ? ??????????????? ?
????????????????? ? ? ? ? ?
? ? ??????????????? ?
? ? ?
????????????? ?
?МЭСИ ?????????? ?
? ?Профком ???????????????????
?????????????????????? Фонд зарплаты
профкома
- 7 -
N1
K = 1% * ЗП[i] (1)
i=1
где К - сумма проф.взносов, поступающих на счет МЭСИ.
N1 - количество сотрудников института - членов профсоюза.
ЗП[i] - Заработная плата i-го сотрудника.
i1
K |NMB ---> K | NП (2)
(Перевод со счета МЭСИ на счет профкома)
где K - проф. фонд в банке.
K ---> K[mi] - Сохранение фонда за каждый месяц.
_
K - Фонд зарплаты профкома.
_
Кmin = ((1/3)*K[mi-2]+(1/3)*К[mi-1]+(1/3)*K[mi])/3 (3)
_
Kmin - Минимальная граница фонда заработной платы.
_
Кmax - Максимальная граница фонда заработной платы.
_ _
Kmax = Kmin + W[mi] * (1/3) (4)
W[mi] = Внебюджетные поступления.
_ _ _
K = K - 0.036*K - 0.26*0.054*K (5)
Отчисления на медицинское страхование и социальное страхование.
N2
_
K > Q[i] (6)
i=1
Q[i] - оклад i-го сутрудника профкома.
N2 - Количество сотрудников профкома.
- 8 -
Q[i]>Q~[i] (7)
Q`[i] - Оклад, полагающийся i-му сотруднику по его разряду.
Если (6) или (7) не выполняются, то профсоюзный комитет не
может содержать столько сотрудников.
M[mi,k]
Q1[k] = Q[k] + P[k,j] (8)
j=1
Q1[k] - Промежуточное значение - оклад k-го сотрудника
вместе с начислениями
P[k,j] - j-е начисление k-му сотруднику.
M[mi,k] - Количество начислений k-му сотруднику в mi-ом месяце.
T[mi,k]
Q2[k] = Q1[k] - H[k,j] (9)
j=1
Q1[k] - Промежуточное значение - оклад k-го сотрудника
вместе с начислениями
P[k,j] - j-е начисление k-му сотруднику.
M[mi,k] - Количество начислений k-му сотруднику в mi-ом месяце.
Q2[k] - Промежуточное значение - оклад к-го сотрудника
вместе с начислениями и удержаниями.
H[k,j] - j-е удержание с k-го сотрудника.
- 9 -
T[mi,k] - Количество удержаний с k-го сотрудника в mi-ом месяце.
U[k]
S[k] = Q2[k] - V[j]*Q2[k] (10) *
J=1
S[k] - Окончательная сумма для выдачи k-му сотруднику.
V[j] - Значение J-го налога.
U[k] - Множество налогов, применимых к k-му сотруднику.
* - вообще говоря, U[k] может формироваться достаточно
сложным образом, но в конкретном случае оно отличается от
U (всего множества налогов) только подоходными налогами
в зависимости от совокупного дохода k-го сотрудника за
предыдущий год.
1.1.2 Требования к информационной технологии.
Вся система должна обладать надежностью, необходимо предусмотреть
самые неожиданные действия пользователя, и, если они неправильны,
программа должна обьяснить, как именно сделать то, чего хочет
пользователь.
Так как программа имеет дело с материальными ценностями,
необходимозащищать апрограмму и данные от несанкционированного
доступа и изменения. Специфика работы бухгалтерии показывает,
- 10 -
что удобнее всего это сделать при помощи двухуровневой системы
паролей. Один пароль находится у председателя профкома, второй
- у бухгалтера. При введении одного из паролей система должна
позволять просматривать, но не изменять данные, при двух
правильно введенных паролях - позволять и просматривать, и
изменять дакнные. Если ни один пароль не был введен правильно,
то система должна идентифицировать пользователя как "чужого" и
отказаться с ним работать.
Должна существовать возможность перевода документов с машинных
носителей в обычный вид.
Система должна работать на машинах, совместимых с IBM PC,
под управлением дисковой операционной системы MS-DOS.
1.2 Технология решения задачи.
На современном этапе автоматизации управления общественным
производством наиболее перспективным является автоматизация
планово-управленческих функций на базе персональных ЭВМ,
установленных непосредственно на рабочих местах специалистов.
Эти системы получили широкое распространение в организационном
управлении под названием автоматизированных рабочих мест(АРМ).
Специфика деятельности бухгалтерии профсоюзного комитета ВУЗа
позволяет выбрать методом решения создание автоматизированного
рабочего места(АРМ). Это позволит использовать систему людям,
не имеющим специальных знаний в области программирования, и
одновременно позволит дополнять систему по мере надобности.
- 11 -
1.2.1 Сущность АРМ.
Автоматизированное рабочее место (АРМ) можно определить как
комплекс информационных ресурсов, программно-технических и
организационно-технологических средств индивидуального и кол-
лективного пользования, обьединенных для выполнения определенных
функций профессионального работника управления.
С помощью АРМ специалист может обрабатывать тексты, посылать и
принимать сообщения, хранящиеся в памяти ЭВМ, участвовать в сове-
щаниях, организовывать и вести личные архивы документов,выполнять
расчеты и получать готовые результаты в табличной и графической
форме. Обычно процессы принятия решений и управления в целом реали-
зуются коллективно, но необходима проблемная реализация АРМ управ-
ленческого персонала, соответствующая различным уровням управления
и реализуемым функциям. Подготовка информации для принятия решений,
собственно принятие решений и их реализация могут иметь много общего
в разлиных экономических службах предприятия. Также многие функции
являются являются типовыми для многих предприятий. Это позволяет
создавать гибкие, перестраиваемые структуры управления.
В основу конструирования АРМ положены следующие основные принципы:
1. Максимальная ориентация на конечного пользователя, достигаемая
созданием инструментальных средств адаптации АРМ к уровню подготовки
пользователя, возможностей его обучения и самообучения.
2. Формализация профессиональных знаний, то есть возможность
предоставления с помощью АРМ самостоятелно автоматизировать новые
функции и решать новые задачи в процессе накопления опыта работы
с системой.
- 12 -
3. Проблемная ориентация АРМ на решение определенного класса
задач, обьединенных общей технологией обработки информации,
единством режимов работы и эсплуатации, что характерно для
специалистов экономических служб.
4. Модульность построения, обеспечивающая сопряжение АРМ с
другими элементами системы обработки информации, а также
модификацию и наращивание возможностей АРМ без прерывания его
функционирования.
5. Эргономичность, то есть создание для пользователя комфортных
условий труда и дружественного интерфейса общения с системой.
1.2.2. Типовая структура АРМ.
Создание АРМ для систем организационного управления предполагает
проведение их структуризации и параметризации на стадии
проектирования. Структуризация АРМ включает описание среды
функционирования: обеспечивающих и функциональных подсистем и
связей между ними, интерфейсов с пользователем и техническими
средствами, средств информационного и программного обеспечения
Параметризация предусматривает выделение и исследование параметров
выделение и исследование параметров технических, программных
и информационных средств, удовлетворяющих требованиям и ограничениям,
сформированным при структуризации
Структурно АРМ включает функциональную и обеспечивающую части.
Функциональная часть определяет содержание конкретного АРМ и
включает описание совокупности взаимосвязанных задач, отражающих
- 13 -
особенности автоматизируемых функций деятельности пользователя.
В основе разработки функционального обеспечения лежат требования
пользователя к АРМ и его функциональная спецификация, включающая
описание входной и выходной информации, средств и методов
достижения достоверности и качества информации, применяемых
носителей, интерфейсов связи. Обычно сюда же относятся описания
средств защиты от несанкционированного доступа, восстановления
системы в сбойных ситуациях, управление в нестандартных случаях.
Обеспечивающая часть включает традиционные виды обеспечения:
информационное, программное, техническое, технологическое,
и другие.
Информационное обеспечение включает описание организации
информационной базы, регламентирует информационные связи,
предопределяет состав и содержание всей системы информационного
отображения.
Программное обеспечение АРМ подразделяется на общее и
функциональное. Общее программное обеспечение поставляется в
комплекте с ПЭВМ и включает операционные системы, прикладные
программы, расширяющие возможности операционных систем,
программные средства диалога и другие. Общее ПО предназначено
для управления работой процессора, организации доступа к памяти,
периферийным устройствам, запуска и управления процессором,
выполнения прикладных программ, обеспечения выполнения программ
на языках высокого уровня.
Функциональное программное обеспечение предназначено для
автоматизации решения функциональных задач, включает универсальные
программы и функциональные пакеты. При проектировании этих
программных средств необходимо соблюдать принципы ориентации
разработки на конкретного пользователя. Совокупность требований
- 14 -
к программному и техническому обеспечению отображается на
множестве функций пользователя, и это позволяет решать проблему
профессиональной ориентации на пользователя.
Техническое обеспечение АРМ представляет собой комплекс
технических средств обработки информации на базе ПЭВМ,
предназначенный для автоматизации функций специалиста в
предметной и проблемной областях его профессиональных интересов.
АРМ специалиста сферы организационного упрвления обычно
базируется на ПЭВМ индивидуального или коллективного пользования.
Технологическое обеспечение АРМ предназначено для организации
технологического процесса использования АРМ применительно к
комплексу решаемых задач, соответствующих функциям специалиста.
Технологический процесс представляет собой совокупность
функциональных работ, включающих обеспечение ввода, контроля,
редактирования и манипулирования данными, накопление, хранение,
поиск, защиту, получение выходных документов. В связи с тем,
что пользователь является, как правило, участнирком некоторого
коллектива и выполняет в нем определенную работу, необходимо
предусмотреть технологическое взаимодействие исполнителей
при решении задач, обеспечить условие совместной работы
специалистов. Эти положения должны отражаться в
квалификационных требованиях и должностных инструкциях
пользователей АРМ.
- 15 -
1.2.3 Классификация АРМ.
В основу классификации АРМ может быть положен ряд класси-
фикационных признаков. С учетом областей применения возможна
классификация АРМ по функциональному признаку :
1. АРМ административно - управленческого персонала;
2. АРМ проектировщика радиоэлектронной аппаратуры, автомати-
зированных систем управления и т.д.
3. АРМ специалиста в области экономики, математики, физики,
и т. д.
4. АРМ производственно-технологического назначения.
Важным классификационным признаком АРМ является режим его
эксплуатации, по которому выделяются одиночный, групповой и
сетевой режимы эксплуатации. В первом случае АРМ реализуется
на обособленной ПЭВМ, все ресурсы который находятся в
монопольном распоряжении пользователя. Такое рабочее место
ориентировано на решение нестандартных, специфических задач,
и для его реализации применяются ЭВМ небольшой мощности.
При групповом режиме эсплуатации на базе одной ЭВМ
реализуется несколько рабочих мест, обьединенных по принципу
административной или функциональной общности. В этом случае
требуются уже более мощные ЭВМ и достаточно сложное
программное обеспечение. Групповой режим эсплуатации обычно
используется для организации распределенной обработки данных
в пределах отдельного подразделения или организации для
обслуживания стабильных групп специалистов и руководителей.
- 16 -
Сетевой режим эксплуатации АРМ обьединяет достоинства
первого и второго. В этом случае каждое АРМ строится на базе
одной ЭВМ, но в то же время имеется возможность использовать
некоторые общие ресурсы вычислительной сети.
Одним из подходов к классификации АРМ является их
систематизация по видам решаемых задач. Возможны следующие
группы АРМ:
1. Для решения информационно-вычислительных задач;
2. Для решения задач подготовки и ввода данных;
3. Для решения информационно-справочных задач;
4. Для решения задач бухгалтерского учета;
5. Для решения задач статистической обработки данных;
6. Для решения задач аналитических расчетов;
Обоснованное отнесения АРМ к определенной группе будет
способствовать более глубокому и тщательному анализу,
возможности сравнительной оценки различных однотипных АРМ
с целью выбора наиболее предпочтительного.
1.3 Выбор технических средств для реализации.
Для реализации программного комплекса выберем систему программирования
Borland Pascal ver. 7.0.
Этот выбор позволит, во-первых, создать эффективный программный код,
а во-вторых, позволит сделать систему открытой и впоследствии
дополняемой. Поскольку вся обработка ведется внутри системы,
- 17 -
представляется нецелесообразным использовать какой-либо стандартный
формат данных, такой, как, например, DBASE-формат. Использование
этих форматов сильно замедлит работу с данными, увеличит их обьем
и не даст никаких очевидных преимуществ.
Для упорядочения файлов системы представляется разумным создать
файл-каталог системы, в котором будет храниться имя каждого файла
базы, его структура. Это позволит жестко не встраивать в систему
форматы файлов, то есть позволит изменять форматы файлов, не
перекомпилируя системы.
Для системы необходимы поля трех типов - числовой, строковый и дата.
В файле-каталоге при перечислении полей указывается тип поля и
максимальный размер этого поля при выводе.
В систему имеет смысл встроить систему " Архив". Так как данные
системы нужно хранить длительное время, то, чтобы не загружать
данными файлы, имеет смысл базу разделить на текущие данные,
которые подвергаются изменению, и архив, который не изменяется.
Текущий файл можно записать в архив, поставив ему в соответствие
уникальный ключ-дату. Таким образом, ситуация напоминает обычную
картотеку - данные делятся на текущие, лежащие на столе, и архив,
который лежит в папках на полках.
- 18 -
ГЛАВА 2
2.1 Сценарий диалога с системой.
В начале работы программа спрашивает пароли, чтобы определить
статус пользователя и его полномочия. Система спрашивает
последовательно два пароля, известных соответсвенно
председателю профкома и бухгалтеру. При правильном вводе
одного из паролей пользователь получает доступ к просмотру, но
не изменению данных системы. Если оба пароля введены правильно,
то система позволяет просматривать и изменять данные, если же
оба пароля введены неправильно, то система отказывает пользователю
в доступе.
Непосредственно после ввода паролей на экране появляется
приветствие пользователя и запрос сегодняшней даты. Эта дата
используется по умолчанию при вводе в полях, имеющих тип
"Дата". В этом запросе пользователь может либо подтвердить ту
дату, которая стоит на машине по умолчанию, нажатием "Enter" либо
ввести новую дату, если дата на машине установлена неправильно.
После этого на экране высвечивается главное меню системы
( Экран 1). При помощи стрелок управления курсором пользователь
выбирает интересующий его пункт.
Выбор первого пункта означает, что пользовательжелает просмотреть
нормативно - справочную информацию, использующуюся в системе. При
выборе этого пункта на экране высвечивается меню нормативно-справочной
информации ( Экран 2). В зависимости от выбора пользователя ему
предоставляется возможность просмотреть и редактировать тот или иной
справочник. Отмена режима справочников осуществляется клавишей
ESC. В этом случае система возвращается в предыдущее меню.
- 19 -
Выбор второго пункта означает, что пользователь хочет работать
с записной книжкой бухгалтера, в которой хранятся дааные о выдаче
кредитов, материальной помощи и так далее. ( Экран 3).
Пользователь может вводить новые данные в записную книжку( выбор
первого пункта), или осуществлять поиск в текущих данных (выбор
пункта 2). В этом режиме пользователь вводит табельный номер
интересующего его сотрудника и получает список всех выданных этому
сотруднику льгот. Выход из режима осуществляется клавишей ESC.
Выбор третьего пункта дает возможность пользователю рассчитать
заработную плату сотрудников профкома( Экран 4). В этом режиме
пользователь может просматривать и редактировать файл начислений
(выбор первого пункта меню), файл взысканий с сотрудников (второй
пункт), список сотрудников с окладами (третий пункт), просматривать
общий фонд заработной платы( четвертый пункт), а также поэтапно
рассчитывать заработную плату. Сначала пользователь может посчитать
оклад сотрудников вместе со всеми начислениями (пятый пункт). При
этом система запросит у него дату, которая показывает, за какой
месяц начисляется зарплата. Он может также посчитать все взыскания
с сотрудников за этот месяц. Для этого пользователь должен выбрать
6-й пункт меню и ввести дату, за которую считаются взыскания.
Пользователь может отдельно посчитать налоги, вычитаемые с
заработной платы (седьмой пункт) или получить сразу полную
ведомость. При выборе девятого пункта система подсчитывает экономию
фонда заработной платы в каком-дибо году. Выход из режима
осуществляется клавишей ESC.
- 20 -
Выбирая четвертый пункт Главного меню, пользователь выбирает
работу с ведомостью заработной платы ( Экран 5). В этом режиме
пользователь может просмотреть ведомость, причем если ведомость не
была рассчитана, то система рассчитает ее, распечатать ведомость,
занести ее в архив, найти ведомость в архиве. Выход из режима
осуществляется клавишей ESC.
При выборе пятого пункта меню пользователь получает возможность
работать с банковскими документами ( Экран 6). Он может вводить и
просматривать платежные поручения, банковские выписки, банковские
обьявления на взнос.
При выборе шестого пункта пользователь выбирает работу с главной
книгой бухгалтера ( Экран 7). В этом режиме он может приказать системе
добавить в главную книгу данные по последней ведомости заработной
платы, добавить данные по последним платежным поручениям, просмотреть
главную книгу.
Выбор седьмого пункта меню дает возможность пользователю просмотреть
сальдо счетов.( Экран 8) Для того, чтобы система подсчитывала сальдо во
какому-нибудь конкретному счету, он должен находиться в списке счетов.
В этом режиме пользователь может рассчитать текущее сальдо, просмотреть
его, занести сальдо в архив или найти его в архиве. При поиске или
занесении в архив сальдо у пользователя спрашивается уникальный
ключ-дата, который будет будет связан с этим сальдо.
В режиме редактирования любого файла данных системы пользователь
имеет возможность получить справку об активных в данный момент клавишах
с помощью нажатия F1. Также пользователь может изменить по своему
выбору размеры и местоположение на экране окна, в котором происходит
- 21 -
редактирование файла данных. Пользователь может одновременно открыть
еще несколько файлов данных одновременно, если ему нужно просмотреть
какие-то данные прямо в процессе редактирования. Пример: Пользователь
вводит очередные начисления сотрудникам. При вводе табельного номера
он забывает, какой у интересующего его сотрудника табельный номер. В
этом случае ему нужно нажать клавишу F10, выбрать из предлагаемого
списка ( Экран 9 ) пункт " Cписок сотрудников", и на экране появится
окно с номером 2, в котором будет отражаться файл сатрудников. Теперь
пользователь должен нажать Ctrl - F5 для перехода в режим
изменения размера окна, расположить первое и второе окна так, чтобы они
не перекрывались, и продолжать вводить файл начислений. При этом список
сотрудников с их фамилиями будут у него перед глазами.
- 22 -
2.2 Структура программного комплекса.
????????????????
? ?
? main ?
? ?
????????????????
?
??????????????????????????????????????????????????????????????????????
? ? ? ? ? ? ? ?
? ????????????? ? ?????????????? ????????????? ? ????????????
? ? Spr_work ? ? ? saldo_work?? ? Regimes ? ? ? bank ?
? ????????????? ? ?????????????? ????????????? ? ????????????
?????????????????? ???????????????????????????? ? ????????????? ?
1 2 3 4 5 6 7? ? Greatbook ??? salarywork ? ? ? Copybook ? ?
? ???????????????????????????? ? ????????????? ?
? ? ? ? ? ? ?
8 ?????? ????????? ? ??????????????? ? 8
28 8 8 14 12 13 ? 8 14 22 23 24 ?
?????????????????? ?
2 9 8 10 11 12 13 14 5 ?
1 ? 3 4 ? 8
? ? ? ? ?
? ? ? ? ?
???????????? ??????????????? ???????????? ???????????? ???????????
? load_crc ? ?check_begin ? ? ? ? ? ? good ?
? ? ? ? ?querryparo? ?creatcrc ? ?morning ?
???????????? ??????????????? ???????????? ???????????? ???????????
?6 ?7 ?8 ?9
? ? ? ?
??????????????? ????????????? ????????????????????????????
?loadwindow ? ?savewindow ? ? global ?? salary ?
? ? ? ? ? ?? ?
??????????????? ????????????? ????????????????????????????
?
? ?
11? 12 13? ??????????????????? 14
? ? ? 15 16 17 18 ? ?21 ?
? ? ? 19 20 ?
?????????????? ?????????????????????????????????? ??????????????
?checksalary1? ?Load_data_file ??save_data_file ? ? input_key ?
?????????????? ?????????????????????????????????? ??????????????
- 23 -
15? 16? 17? 18?
? ? ? ?
?????????????????? ?????????????? ???????????? ????????????
? readfileinfo ? ?writetable ? ?readtable ? ?edittable ?
?????????????????? ?????????????? ???????????? ? ?
????????????
19? 20? 21? ?????????????
? ? ? 17 25 16 ?
??????????????? ??????????????? ??????????????? 26
? printtable ? ? creatfield ? ? clearfield ?
??????????????? ??????????????? ???????????????
22? 23? 24? 25 ? 26?
? ? ? ? ?
?????????????? ?????????? ???????????? ?????????????? ?????????????
? add ? ? sub ? ? nalogs ? ? help ? ?editwindow ?
?????????????? ?????????? ???????????? ?????????????? ?????????????
27? 28
? ?
?????????????? ??????????????
? search ? ? great ?
?????????????? ??????????????
- 24 -
2.3 Схема модуля вычисления зарплаты.
?
?????????????????
?открыть f1,f4 ?
?n = fsize (f1) ?
?????????????????
6 ?
?????????????????да 7
? конец файла? ????????
?????????????????
?
????????????????????
? считываем в маs ?
? 1 запись ?
????????????????????
?
?????????????????
?ww=0 xx =0 ?
?????????????????
?????????????????
?открываем файл ?
?начислений F2 ?
? ?
?????????????????
?
?????????????
? конец f2 ???????????????????????
????????????? ?
?????????????????????????? ?
?cчитываем из F2 rr ? ? ?
????????????????????? ? ?
?????????????????????? нет ? ?
? mas.tab = rr.tab?????????? ?
?????????????????????? ?
?да ?
??????????????????????????? ?
? inc(ww,rr.sum) ? ?
??????????????????????????? ?
? ?
?????????????????????????????????????
?открываем F3 ?
?файл взысканий ?
????????????????????
?
?
?????????????????
? конец F3 ???????????????????
????????????????? ?
????????????????????????? ?
?cчитываем из F3 rr ? ? ?
????????????????????? 8 ?
2 3
- 25 -
2 8 3
?????????????????????? нет ? ?
? mas.tab = rr.tab?????????? ?
?????????????????????? ?
?да ?
??????????????????????????? ?
? inc(xx,rr.sum) ? ?
??????????????????????????? ?
? ?
????????????????????????????
???????????????????????
?s.tab = mas.tab ?
?s.name = mas.name ?
?s.okl = mas.oklad ?
?s.plus = ww ?
?s.minuis = xx ?
???????????????????????
?
?????????????????????????? нет
? есть ли декларация? ????????
? dekl ? ?
?????????????????????????? ?
? да ????????????????
? 4 ? dekl = 0 ?
? ?
????????????????
?4
- 26 -
4
?
????????????????????????????? да ????????????????????????
?dekl < 10000000 ??????? s.pn =(s.okl+ ww - ???>
????????????????????????????? ???????????????????????? ?
?????????????????????????? ?
? s.pn = (s.okl+ ww - ? ?
? - xx - ? ?
? - 833333) *0.2+? ?
? +100000 ? ?
?????????????????????????? ?
? ?
??????????????????????????????????????????????
??????????????????????????
?s.penf = (s.okl+ ww - ?
?- xx)*0.01 ?
??????????????????????????
?
??????????????????????????????
?s.itog = s.okl+ww[i] -xx[i]-?
?-s.pn - p.penf ?
??????????????????????????????
??????????????????????????????
? запись s ?
??????????????????????????????
6 ?
???????????????
?7
????????????????????
? конец ?
????????????????????
- 27 -
2.4 Описание mодулей и процедур программы.
???Главная программа
?
?
?? работа со справочниками?????????????????????????
? ?
?? работа с записной книжкой ???????????????????????
? ??
?? вычисление заработной платы ?????????????????????
? ???
?? операции с расчетной ведомостью ????????????? ???
? ? ???
?? работа c банковскими документами????????????? ???
? ?? ???
?? работа с главной книгой?????????????????????? ???
? ??? ???
?? работа с сальдо счетов??????????????????????? ???
???? ???
???? ???
подсчет сальдо ????? ???
(saldo) ???? ???
просмотр сальдо ????? ???
global ???? ???
запись сальдо в архив ????? ???
save_data_file ???? ???
чтение сальдо из архива ????? ???
load_data_file ???? ???
печать сальдо ????? ???
printtable ??? ???
??? ???
??? ???
добавление данных по зарплате ???? ???
salary_great_book ??? ???
добавление данных по банку ???? ???
scan_bank_for_great ??? ???
просмотр главной книги ???? ???
global ?? ???
?? ???
?? ???
ввод платежных поручений ??? ???
global ?? ???
ввод обьявлений на взнос ??? ???
global ?? ???
ввод выписок из банка ??? ???
global ? ???
? ???
? ???
- 28 - ? ???
? ???
получение ведомости ?? ???
salary ? ???
просмотр ведомости ?? ???
global ? ???
занесение в архив ?? ???
save_data_file ? ???
чтение из архива ?? ???
loads_data_file ? ???
печать ведомости ? ???
printtable ???
???
просмотр файла начислений ????
global ???
просмотр файла взысканий ????
global ???
расчет начислений ????
add ???
расчет взысканий ??? ?
sub ??
??
ввод в записную книжку ???
global ??
поиск в записной книжке ???
search ?
?
справочник начислений ??
global ?
справочник налогов ??
global ?
спроавосчник общих налогов ??
global ?
справочник разрядов ??
global ?
справочник минимальной зарплаты ??
read_min_salary ?
таблица аудита ??
global
- 29 -
????????????????????????????????????????????????????????????????????????
? Модуль ? Назначение ? Вход.файл ? Выход.файл ?
? ? ? ? ?
? spr_work ? Работа со справочной ? salary.dat ? salary.dat ?
? ? информацией ? spr2.arm ? spr2.arm ?
? ? ? spr3.arm ? spr3.arm ?
? ? ? spr4.arm ? spr4.arm ?
? ? ? spr5.arm ? spr5.arm ?
? ? ? spr6.arm ? spr6.arm ?
? ? ? audit.arm ? audit.arm ?
? ? ? ? ?
?Saldo_work ?Работа с сальдо счетов ? great.arm ? saldo.arm ?
? ? ? saldo.arm ? saldo.ind ?
? ? ? saldo.ind ? saldo.sav ?
? ? ? saldo.sav ? prn ?
? ? ? ? ?
? Great ? Работа с главной книгой ? Great.arm ? great.arm ?
? ? ? bank3.arm ? prn ?
? ? ? sal.arm ? ?
? ? ? ? ?
? copybook ? Работа с записной ? copybook.arm ?copybook.arm ?
? ? книгой бухгалтера ? ? ?
? ? ? ? ?
?salary_work? Работа с расчетной ? sal.arm ? sal.arm ?
? ? ведомостью ? sal.sav ? sal.sav ?
? ? ? sal.ind ? sal.ind ?
? ? ? ? ?
? salary ? Создание ведомости ? salary3.arm ? sal.arm ?
? ? ? ? ?
? add ? Расчет насчислений ? spr1.arm ? salary1.arm ?
? ? ? spsotr.arm ? ?
? ? ? ? ?
? sub ? Расчет вычетов ? spr2.arm ? salary2.arm ?
? ? ? salary1.arm ? ?
? ? ? ? ?
? nalogs ? Вычет налогов ? salary2.arm ?salary3.arm ?
? ? ? spnal.arm ? ?
? search ? Поиск в записной книге ? Copybook.arm ? ttt.arm ?
? ? ? ? ?
? bank.arm ? Работа с банковскими? bank1.arm ? bank1.arm ?
? ? документами ? bank2.arm ? bank2.arm ?
? ? ? bank3.arm ? bank3.arm ?
?cck_salary1? Проверка на соответствие? spsotr.arm ? ?
? ? окладов разрядам ? spr6.arm ? ?
? ? ? ? ?
? ? ? ? ?
?chk_slalry2?Проверка на соответствие ? spsotr.arm ? ?
? ?окладов фонду зарплаты ? fonds.dat ? ?
? ? ? ? ?
????????????????????????????????????????????????????????????????????????
- 30 -
Модуль Windenv
Процедура Savewindow(x1,y1,x2,y2:byte;
var a:buffertype)
Сохраняет в оперативной памяти содержимое прямоугольной
области экрана.
x1,y1,x2,y2 - Координаты области экрана.
а - переменная, в которую заносится адрес области ОП.
Процедура loadwindow(x1,y1,x2,y2:byte;
var a:buffertype)
Восстанавливает прямоугольную область экрана, предварительно
сохраненную процедурой Savewindow, и освобождает оперативную
память, в которй хранилась область.
Область экрана должна иметь ту же форму, но, вообще говоря,
не обязательно те же координаты, что и сохраненная.
x1,y1,x2,y2 - Координаты области на экране.
а - адрес в оперативной памяти, где хранится область.
Модуль Inter
Функция Max(a,b:integer):integer
Возвращает максимум из чисел a и b.
Функция Min(a,b:integer):integer
Возвращает минимум из чисел а и b.
- 31 -
Процедура curs_off
Делает курсор на экране невидимым.
Процедура Error(s:string);
Создает в центре экрана окно красного цвета необходимого
размера и выводит в него сообщение об ошибке, после чего
ждет нажатия на любую клавишу.
s - Сообщение об ошибке.
Процедура Input(x,y,l:byte;var s:string;w:settype)
Расширенная процедура ввода. Позволяет вводить строчку
заданной длины, отслеживая недопустимые символы. Позволяет
использовать клавиши "Влево","Вправо", Del,Backspase.
Позволяет использовать строку по умолчанию, есть возмож-
ность Undo.
x,y - Координаты вводимой строки на экране.
l - Максимальная длина вводимой строки.
s - Строка по умолчанию. В ней же возвращается введенная
строка. Если в течении ввода была нажата клавиша
ESC, возвращается пустая строка.
w - Множество допустимых символов.
- 32 -
Модуль Files2
Функция FOpen(FName:string;FMode:Word):Word
Открывает безтиповый файл. Возвращает заголовок файла.
В случае ошибки внутренняя переменная Fsuccess прини-
мает значение False.
Fname - Имя файла.
Fmode - Режим (0 - только для чтения,1 - только для записи,
2 - и для чтения, и для записи.)
Функция FCreate(FName:String;FAttr:Word):Word
Создает безтиповый файл. Возвращает заголовок файла.
В случае ошибки внутренняя переменная Fsuccess принимает
значение False.
FName - Имя файла.
FAttr - атрибуты создаваемого файла.
Функция FRead(Handle,Segment,Offset,Bytes:Word):Word
Читает из безтипового файла блок. В случае ошибки чтения внутренняя
переменная Fsuccess принимает значение False. Возвращает количество
реально прочитанных байтов.
Наndle - Заголовок файла.
Segment - Сегментная часть адреса в оперативной памяти, в которую
производится чтение.
- 33 -
Offset - Смещение этой области относительно сегмента в оперативной
памяти.
Bytes - Сколько байтов необходимо прочитать.
Функция FWrite(Handle,Segment,Offset,Bytes:Word):Word
Записывает в безтиповый файл блок памяти. В случае ошибки записи
внутренняя переменная Fsuccess принимает значение false. Возвращает
количество реально записанных байтов.
Наndle - Заголовок файла.
Segment - Сегментная часть адреса в оперативной памяти, из которой
происходит чтение.
Of