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

  • Просмотров 3435
  • Скачиваний 318
  • Размер файла 20
    Кб

3.1 -OS/2; MAC, поддерживающих 16-bit-ный код и кодировку Windows3.1- Windows NT, Windows 95. Тексты программ (в приложении). Главный запускающий файл программы. Pr1.dpr program Pr1; uses Forms, Start in 'START.PAS' {Form1}, unit1 in 'UNIT1.PAS', unit2 in 'UNIT2.PAS', unit3 in 'UNIT3.PAS', unit4 in 'UNIT4.PAS'; {$R *.RES} begin Application.CreateForm(TForm1, Form1); Application.Run; end. Файл определяющий ввод дополнительной информации через интерфейс программы. Start.pas unit Start; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,Unit1,Unit2,Unit3,Unit4; type TForm1 =

class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit1: TEdit; Label4: TLabel; Edit2: TEdit; Label5: TLabel; Edit3: TEdit; Label6: TLabel; Edit4: TEdit; Label7: TLabel; Edit5: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin str(n_mes,mw); system.assign(f,'vhod\base.dat'); rewrite(f); z:=Edit3.Text; writeln(f,z);{val(z,fzp,conv);}{ФЗП} z:=Edit2.Text; writeln(f,z);{val(z,kol_d,conv);} {Кол-во дней} z:=Edit5.Text; writeln(f,z);{val(z,tar_rab,conv);} {Тариф рабочего 5-го разряда} z:=Edit4.Text;

writeln(f,z);{val(z,oc_m,conv);} {Оклад мастера} 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); {Тариф/оклад работника}