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