VDV-1501 (663347), страница 2

Файл №663347 VDV-1501 (Автоматизация расчета начислений заработной платы в строительном управлении N 151) 2 страницаVDV-1501 (663347) страница 22016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

z:=Edit1.Text;

writeln(f,z);{val(z,n_mes,conv);}

system.close(f);

Unit2.vvod;

Unit3.prog;

Unit4.vivod;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='0';

Edit2.Text:='0';

Edit3.Text:='0';

Edit4.Text:='0';

Edit5.Text:='0';

system.assign(f,'vhod\base.dat');

reset(f);

readln(f,z);val(z,fzp,conv);{ФЗП}

Edit3.Text:=FloatToStr(fzp);

readln(f,z);val(z,kol_d,conv); {Кол-во дней}

Edit2.Text:=IntToStr(kol_d);

readln(f,z);val(z,tar_rab,conv); {Тариф рабочего 5-го разряда}

Edit5.Text:=IntToStr(tar_rab);

readln(f,z);val(z,oc_m,conv); {Оклад мастера}

Edit4.Text:=FloatToStr(oc_m);

readln(f,z);val(z,n_mes,conv);

Edit1.Text:=IntToStr(n_mes);

system.close(f);

end;

end.

Файл, отвечающий за идентификацию переменных.

Unit1.pas

unit unit1;

interface

{ Раздел констант }

const mes:array [1..12] of string [8]=('Январь','Февраль','Март','Апрель','Май',

'Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');

{ Описание переменных }

VAR n_mes:integer;{N месяца}

conv:integer; {перем.-конвектор}

f,f1:system.text;

z,s,mw:string;x,y:real; {дополнительные переменные}

kol_d,tar_rab: integer; {Исходная информация}

fzp,oc_m:extended; {Исходная информация}

kol_vo:array[1..4] of integer; {Количество работников в группе}

ktu:array[1..4,1..20] of real; {КТУ}

fio:array[1..4,1..20] of string[16]; {ФИО}

a:array[1..4,1..20,3..20] of longint; {Выходная информация}

t:array[1..4,1..20,1..7] of real; {Тариф/оклад и табель}

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

br,bi:extended; {Сумма баллов}

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

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

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

implementation

end.

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

Unit2.pas

unit unit2;

interface

uses unit1;

procedure vvod;

implementation

procedure vvod;

var i,j,g,h:integer;

begin

{ Считывание данных из первой таблицы }

for i:=1 to 4 do kol_vo[i]:=0;

for i:=1 to 4 do begin

str(i,s);assign(f,'vhod\'+s+'-1-'+mw+'.txt');reset(f);

for j:=1 to 7 do readln(f,z); {пропустить шапку таблицы}

repeat readln(f,z);kol_vo[i]:=kol_vo[i]+1;

j:=pos('|',z);z:=copy(z,j+1,250); {Пропускаем номер}

j:=pos('|',z);fio[i,kol_vo[i]]:=copy(z,1,j-1);z:=copy(z,j+1,250); {ФИО}

j:=pos('|',z);val(copy(z,1,j-1),ktu[i,kol_vo[i]],conv);z:=copy(z,j+1,300);{КТУ}

{Разряд работника}

j:=pos('|',z);val(copy(z,1,j-1),a[i,kol_vo[i],6],conv);z:=copy(z,j+1,300);

{Тариф/оклад работника}

j:=pos('|',z);val(copy(z,1,j-1),t[i,kol_vo[i],1],conv);z:=copy(z,j+1,300);

{Табель времени работника}

j:=pos('|',z);val(copy(z,1,j-1),t[i,kol_vo[i],2],conv);z:=copy(z,j+1,300);

j:=pos('|',z);val(copy(z,1,j-1),t[i,kol_vo[i],3],conv);z:=copy(z,j+1,300);

{Выходные работника}

j:=pos('|',z);val(copy(z,1,j-1),t[i,kol_vo[i],4],conv);z:=copy(z,j+1,300);

j:=pos('|',z);val(copy(z,1,j-1),t[i,kol_vo[i],5],conv);z:=copy(z,j+1,300);

{ Сверхурочные работника}

j:=pos('|',z);val(copy(z,1,j-1),t[i,kol_vo[i],6],conv);z:=copy(z,j+1,300);

j:=pos('|',z);val(copy(z,1,j-1),t[i,kol_vo[i],7],conv);

until eof(f);

close(f);end;

{ Считывание данных из второй таблицы }

for i:=1 to 4 do begin

str(i,s);assign(f,'vhod\'+s+'-2-'+mw+'.txt');reset(f);

for g:=1 to 7 do readln(f,z); {пропустить шапку таблицы}

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

readln(f,z);j:=pos('|',z);z:=copy(z,j+1,250);

j:=pos('|',z);z:=copy(z,j+1,250);

for h:=8 to 10 do begin j:=pos('|',z);val(copy(z,1,j-1),x,c);

a[i,g,h]:=round(x);fzp:=fzp-a[i,g,h];z:=copy(z,j+1,250);end;

j:=pos('|',z);val(copy(z,1,j-1),x,c);

a[i,g,18]:=round(x);z:=copy(z,j+1,250);

for h:=11 to 12 do begin j:=pos('|',z);val(copy(z,1,j-1),x,c);

a[i,g,h]:=round(x);fzp:=fzp-a[i,g,h];z:=copy(z,j+1,250);end;

j:=pos('|',z);val(copy(z,1,j-1),x,c);a[i,g,19]:=round(x);

for h:=13 to 16 do begin z:=copy(z,j+1,250);j:=pos('|',z);

val(copy(z,1,j-1),x,c);a[i,g,h]:=round(x);fzp:=fzp-a[i,g,h];end;

end;

close(f);end;

end;

end.

Файл, отвечающий за основной расчет.

Unit3.pas

unit unit3;

interface

uses unit1;

procedure prog;

implementation

procedure prog;

var i,j,h:integer;

begin

br:=0;

bi:=0;

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

if a[i,j,6]=0 then balls[i,j]:=t[i,j,1]*t[i,j,2]/kol_d

else balls[i,j]:=t[i,j,1]*t[i,j,3];

a[i,j,3]:=round(balls[i,j]);

{Выходные}

if a[i,j,6]=0 then begin a[i,j,4]:=round(1.5*t[i,j,1]*t[i,j,4]/kol_d);

balls[i,j]:=balls[i,j]+t[i,j,1]*t[i,j,4]/kol_d;end

else begin balls[i,j]:=balls[i,j]+t[i,j,1]*t[i,j,5];

a[i,j,4]:=round(1.5*t[i,j,1]*t[i,j,5]);end;

{Сверхурочные}

if a[i,j,6]<>0 then begin balls[i,j]:=balls[i,j]+t[i,j,1]*(t[i,j,6]+t[i,j,7]);

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

Характеристики

Тип файла
Документ
Размер
69 Kb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7033
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее