Информация о работниках предприятия включает: ФИО работника, ставку почасовой оплаты, количество отработанных часов за месяц. Вывести информацию о з/пл сотрудников (упорядочить ФИО по алфавиту ), учесть следующее: если сотрудник за месяц отработал более 180 часов – з/пл увеличивается вдвое.
Помогите вывести информацию о з/пл сотрудников (упорядочить ФИО по алфавиту )
Код:
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
tprep=record
name:string[40];
chas:integer;
stavka:array[1..2] of integer;
itog:integer;
end;
var
Form1: TForm1;
fz: file of tprep;
ft:textfile;
prep:array[1..100] of tprep;
nzap:integer;
filenameZ,filenameT:string;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.clear;
button1.hide;
nzap:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
nzap:=nzap+1;
with prep[nzap] do begin
name:=edit1.text;
chas:=strtoint(edit2.text);
stavka[1]:=strtoint(edit3.text);
itog:=((stavka[1])*chas);
if chas>=180 then
begin
itog:=((stavka[1])*chas)*2
end;
memo1.lines.add(name+''+inttostr(chas)+''+inttostr(stavka[1]));
end;
write(fz,prep[nzap]);
edit1.text:='';
edit2.text:='';
edit3.text:='';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
opendialog1.title:='—оздать новый файл';
if opendialog1.Execute then
begin
filenamez:=opendialog1.filename;
assignfile(fz,filenameZ);
rewrite(fz);
end;
button1.show;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if opendialog1.execute then
begin
filenameZ:=opendialog1.filename;
assignfile(fz,filenamez);
reset(fz);
end;
while not eof(fz) do begin
nzap:=nzap+1;
read(fz,prep[nzap]);
with prep[nzap] do
memo1.lines.add(name+' '+inttostr(chas)+' '+inttostr(stavka[1]));
end;
button1.show;
end;
procedure TForm1.Button4Click(Sender: TObject);
var i,j:word;
pr:tprep;
begin
for i:=1 to nzap-1 do
for j:=i+1 to nzap do
if prep[i].itog<prep[j].itog then begin
pr:=prep[i];
prep[i]:=prep[j];
prep[j]:=pr;
end;
memo1.clear;
for i:=1 to nzap do
with prep[i] do
memo1.lines.add(inttostr(i)+' '+name+' '+inttostr(itog));
end;
procedure TForm1.Button5Click(Sender: TObject);
var i:word;
begin
if savedialog1.execute then
begin
filenamet:=savedialog1.filename;
assignfile(ft,filenamet);
rewrite(ft);
end;
for i:=1 to nzap do
with prep[i] do
writeln(ft,i:4,'.',name,itog);
closefile(ft);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
close;
end;
end.