Перейти к содержанию

Решите Задачу !!!


Рекомендуемые сообщения

Типизированные файлы

1. Создать файл, содержащий сведения о месячной заработной плате рабочих завода. Каждая запись содержит поля - фамилия рабочего, наименование цеха, размер заработной платы за месяц. Количество записей - произвольное.

2. Вычислить общую сумму выплат за месяц по цеху Х, а также среднемесячный заработок рабочего этого цеха. вывести ведомость для начисления заработной платы рабочим этого цеха.

Ссылка на комментарий

Язык-то какой?

Если Delphi, как-то так (не проверял):


worker = record
name : string[20];
manuf : string[20];
salary : integer;
end;

var
fHandler : file of worker;
_worker : worker;

procedure TForm1.FormCreate(Sender : TObject);
begin
AssignFile(fHandler, 'workers.dat')
if not (FileExists('workers.dat')) then
Rewrite(fHandler);
end;

procedure TForm1.Button1Click(Sender : TObject);
var sName, sManuf : string;
iSalary : integer;
begin
Reset(fHandler);
sName := Edit1.Text;
sManuf := Edit2.Text;
iSalary := StrToInt(Edit3.Text);
_worker.name := sName;
_worker.manuf := sManuf;
_worker.salary := iSalary;
Write(fHandler, _worker);
CloseFile(fHandler);
ShowMessage('Entry was added to file!');
end;

procedure TForm1.Button2Click(Sender : TObject);
var sManuf : string;
iSalarySumm, iWorkersCount : integer;
begin
sManuf := Edit2.Text;
iSalarySumm := 0;
iWorkersCount := 0;
Reset(fHandler);
while not (eof(fHandler)) do
begin
Read(fHandler, _worker);
if (_worker.manuf <> sManuf) then
continue;
inc(iSalarySumm, _worker.salary);
inc(iWorkersCount);
end;
CloseFile(fHandler);
ShowMessage('Total salary for ' + sManuf + ' manufactory: ' + IntToStr(iSalarySumm));
ShowMessage('Avg. salary: ' + FloatToStrF((iSalarySumm / iWorkersCount), fffixed, 0, 3));
end;
type

На форме 3 эдита, 2 баттона. 1й эдит - имя, 2й - название цеха, 3й - зарплата. 1я кнопка - добавляет запись, 2я - ищет в файле инфу по 2му заданию.

Ну и эвенты соответствующие назначить.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...