Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2017, 07:16   #1
Anton19901505
Пользователь
 
Регистрация: 08.01.2017
Сообщений: 26
По умолчанию Delphi помогите доработать код

Информация о сотрудниках фирмы включает: Ф.И.О., табельный номер, количество проработанных часов за месяц, почасовый тариф. Рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере. Вывести размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 12 % от суммы заработка.

Цитата:
unit Lab_Rab_6;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit4: TEdit;
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label6: TLabel;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Type
TWorker = record
FIO:string[100];
number:integer;
hoursouble;
tarifouble;
zpouble;
end;

var
Fz: file of TWorker;
Ft:textfile;
nomerzap:integer;
filenameZ,filenameT:string;
work:array[1..100]of Tworker;



var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := '';
Edit2.Text := '';
Edit3.Text := '';
Edit4.Text := '';
Memo1.Clear;
Button1.Hide; //Сделать невидимой кнопку "Ввести запись"
nomerzap:=0;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
nomerzap:=nomerzap+1;
with work[nomerzap] do begin
Fio:=Edit1.Text;
number:=strtoint(edit2.Text);
hours:=strtoint(edit3.Text);
tarif:=strtoint(edit4.Text);
zp:=(hours*tarif);

Memo1.Lines.Add(fio+' '+IntToStr(number)+' '+ FloatToStr(hours)+' '+FloatToStr(tarif));
end;
write(fz,work[nomerzap]);
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
OpenDialog1.Title := 'Создать новый файл';

// Изменение заголовка окна диалога
if OpenDialog1.Execute then
// Выполнение стандартного диалога выбора имени файла
begin
Memo1.Lines.Add('ФИО сотрудника'+' '+'Табельный номер'+' '+ 'Кол-во отработанных часов'+' '+'Почасовый тариф');
FileNameZ := OpenDialog1.FileName;
// Возвращение имени дискового файла
AssignFile(Fz, FileNameZ);
// Связывание файловой переменной Fz с именем файла
Rewrite(Fz); //Создание нового файла
Button1.Show; //Сделать видимой кнопку "Ввести запись"
end;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
//Выполнение стандартного диалога выбора имени файла
begin
FileNameZ := OpenDialog1.FileName;
// Возвращение имени дискового файла
AssignFile(Fz, FileNameZ);
// Связывание файловой переменной Fz с именем файла
Reset(Fz); //Открытие существующего файла
end;
While not EOF(fz) do
begin
nomerzap:=nomerzap+1;
Read(fz,work[nomerzap]);
with work[nomerzap] do
Memo1.Lines.Add(fio+' '+IntToStr(number)+' '+ FloatToStr(hours)+' '+FloatToStr(tarif));
end;
Button1.Show; //Сделать видимой кнопку "Ввести запись"
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
CloseFile(fz);
// Закрытие файла записей при нажатии на кнопку "Close"
end;


procedure TForm1.Button4Click(Sender: TObject);
var
i,j:word;
wr:Tworker;
begin
for I:=1 to nomerzap-1 do
for j:=i+1 to nomerzap do
if work[i].zp < work[j].zp then begin
wr:=work[i];
work[i]:=work[j];
work[j]:=wr;
end;
memo1.Clear;
for i:=1 to nomerzap do
with work[i] do
Memo1.Lines.Add(IntToStr(i)+' '+fio+' '+FloatToStrf(zp,fffixed,4,2));
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 nomerzap do
with work[i] do Writeln(Ft,i:4,'. ',fio,zp:8:2);
CloseFile(Ft);
end;

end.
Вложения
Тип файла: rar 6.rar (182.7 Кб, 8 просмотров)
Anton19901505 вне форума Ответить с цитированием
Старый 06.08.2017, 09:22   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Цитата:
Сообщение от Anton19901505 Посмотреть сообщение
за вычетом подоходного налога, который составляет 12 % от суммы заработка
А не 13% ???

Цитата:
Сообщение от Anton19901505 Посмотреть сообщение
hoursouble;
tarifouble;
zpouble;
Ой, какие улыбочки .
В следующий раз оформляй тегом
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доработать код C++ max.sokol Помощь студентам 5 18.12.2015 19:18
Помогите доработать код и исправить ошибки Kcilika Общие вопросы C/C++ 3 19.11.2015 15:16
Помогите доработать код со строками Оксана33 Общие вопросы по Java, Java SE, Kotlin 4 24.09.2015 13:06
Доработать код ferrum88 Помощь студентам 0 23.11.2010 20:14