Реферат: Автоматизация расчета начислений заработной платы в строительном управлении N 151

a[i,j,5]:=round(t[i,j,1]*(1.5*t[i,j,6]+2*t[i,j,7]));end

else begin balls[i,j]:=balls[i,j]+t[i,j,1]*(t[i,j,6]+t[i,j,7])/8/kol_d;

a[i,j,5]:=round(t[i,j,1]*(1.5*t[i,j,6]+2*t[i,j,7])/8/kol_d);end;

{Расчет баллов}

balls[i,j]:=balls[i,j]*ktu[i,j];

if a[i,j,6]<>0 then br:=br+balls[i,j] else bi:=bi+balls[i,j];

for h:=3 to 5 do fzp:=fzp-a[i,j,h];{Уменьшение ФЗП}

end;

{writeln (' bi: ',round(bi),' br: ',round(br));}


{ Надбавка по КТУ }

nkr:=0.75*fzp/br;nki:=0.25*fzp/bi;

{writeln('fzp ',round(fzp));}


p:=0;

q:=1;

{ Цикл оптимизации}

repeat

if round (oc_m+oc_m*1.5*nki)> round(tar_rab*8*kol_d+tar_rab*8*kol_d*1.5*nkr)

then begin p:=p+q; q:=q/10; end;


p:=p-q;

nkr:=(1-p)*fzp/br;

nki:=p*fzp/bi;

{ writeln (round (oc_m+oc_m*1.5*nki),' ',round(tar_rab*8*kol_d+tar_rab*8*kol_d*1.5*nkr));

writeln ('oc_m ',round(oc_m),' nki ',round( nki));

writeln ('oc_m ',round(oc_m),' nkr ',round( nkr));}

until round (oc_m+oc_m*1.5*nki)<> round(tar_rab*8*kol_d+tar_rab*8*kol_d*1.5*nkr);


{writeln ('ok ',round (oc_m+oc_m*1.5*nki),' ',round(tar_rab*8*kol_d+tar_rab*8*kol_d*1.5*nkr));

writeln ('ok nkr : ',round(nkr) ,' nki : ',nki);}


{ Зарплата по КТУ выпл. рабочим }

for i:=1 to 3 do

for j:=1 to kol_vo[i] do a[i,j,7]:=round(nkr*balls[i,j]);


{ Зарплата по КТУ выпл. ИТР }

for j:=1 to kol_vo[i] do a[4,j,7]:=round(nki*balls[4,j]);


{ Итоговое суммирование }


for i:=1 to 4 do

for j:=1 to kol_vo[i] do begin

a[i,j,17]:=0;a[i,j,20]:=0;

for h:=3 to 5 do a[i,j,17]:=a[i,j,17]+a[i,j,h];

for h:=7 to 16 do a[i,j,17]:=a[i,j,17]+a[i,j,h];

for h:=17 to 19 do a[i,j,20]:=a[i,j,20]+a[i,j,h];

end;


end;

end.


Файл, отвечающий за вывод данных в выводные таблицы.

Unit4.pas


unit unit4;


interface

uses unit1;


procedure vivod;


implementation

procedure vivod ;

var i,j,h:integer;

begin

{Вывод в таблицу}


for i:=1 to 4 do begin

str(i,s);assign(f,'vihod\'+s+'-'+mw+'.txt');rewrite(f);

s:='Таблица заработной платы по ' +s+' участку на '+mes[n_mes]+' месяц';

writeln(f,s);


{Создание шапки таблицы}

assign(f1,'vhod/shapka');reset(f1);

for j:=1 to 6 do begin readln(f1,z);writeln(f,z);end;close(f1);


for j:=1 to kol_vo[i] do begin {Вывод данных в таблицу}

write(f,'|');write(f,j:2);write(f,'|');

write(f,fio[i,j]:16);write(f,'|');

for h:=3 to 5 do begin write(f,a[i,j,h]:8);write(f,'|');end;

str(round(balls[i,j]),s);write(f,s:8);write(f,'|');

for h:=7 to 20 do begin write(f,a[i,j,h]:8);write(f,'|');end;

write(f,j:2);writeln(f,'|');

end;

close(f);

end;


{readln;}


end;

end.


Список идентификаторов, используемых в программе:

n_mes -№ месяца;

conv -перем.-конвектор;

f,f1 -текстовые;

z,s,mw:string;x,yl -дополнительные переменные;

kol_d,tar_rab, fzp,oc_m -Исходная информация;

kol_vo[1..4] -Количество работников в группе;

ktu[1..4,1..20] -КТУ;

fio[1..4,1..20] -Фамилия, Имя, Очество работника;

a[1..4,1..20,3..20] -Выходная информация из таблицы;

t:[1..4,1..20,1..7] -Тариф, оклад и табель;

balls[1..4,1..20] of extended -Баллы работников;

br,bi -Суммы баллов рабочих и ИТР;

i,j,g,h,c; -переменные-счетчики;

nkr,nki,p,q -Нормативные коэффициенты, Доля ИТР,Перем.-счетчик;

fr,fi -Средства распред. по КТУ рабочим и ИТР;

mes -наименование месецев;


Дополнительно:

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


Инструкции пользователя.


Создание входной информации:

Перед запуском программы необходимо создать соответствующие входные файлы в директории VHOD на основе уже имеющихся файлов. При работе в Windows, пользователю рекомендуется создавать их при помощи стандартного редактора Write (WordPad). Каждому участку в каждом месяце соответствует два файла. Формат файлов должен строго соответствовать формату уже имеющихся файлов, сохраняя структуру таблицы. Наименование файлов должно соответствовать следующим стандартам:

-Имя первого файла: X-1-Y.txt , где X- номер участка, а Y- номер месяца.

-Имя второго файла: X-2-Y.txt , где X- номер участка, а Y- номер месяца.

Запуск программы:

Запуск программы осуществляется после запуска Windows или эмулятора Windows 3.1 в случае использования OS/2 или MAC. Запускающий файл- файл pr1.exe. После запуска программы перед пользователем появляется ее интерфейс.

Пользование программой:

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

Просмотр выходной информации:

Выходные таблицы находятся в поддиректории VIHOD. Каждому участку в каждом месяце соответствует определенный файл:

-Имя файла: X-1-Y.txt , где X- № участка, а Y- № месяца.

При работе в Windows, пользователю рекомендуется просматривать их при помощи стандартного редактора Write (WordPad), или Notepad.

Дополнительные операции:

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