- •Автоматизация расчета среднесписочной численности работников организации
- •230105.51 Программное обеспечение вычислительной техники и автоматизированных систем
- •Содержание
- •Введение
- •1. Состав предприятия.
- •Персонал предприятия
- •1.2. Количественная характеристика персонала
- •2. Расчет по автоматизации показателей численности кадров
- •2.1 Экономическое решение задачи
- •3. Составление программы по автоматизации и исчислению численности кадров организации.
- •3.1. Листинг программы
- •3.2. Блок-схема программы
- •Заключение
- •Список литературы
- •Приложения
2. Расчет по автоматизации показателей численности кадров
2.1 Экономическое решение задачи
Данные задачи:
Автоматизировать расчет среднесписочной численности работников организации в марте т.г., если 45 работников отработали полный календарный месяц; 15 работников отработали 25 календарных дней; 11 работников отработали 20 календарных дней; 7 работников отработали 11 календарных дней.
Программа автоматизированного расчета среднесписочной
численности работников организации предназначена для
автоматизированного расчета среднесписочной численности
рабочих за месяц.
Исходными данными являются численность работников, которые
отработали полный календарный месяц и численность
работников, отработавших определенное количество
календарных дней.
Формула расчета выглядит следующим образом:
Чсп = сумма(Чдн) /Д,
где
Чсп - среднесписочная численность за месяц,
Чдн - численность за каждый день периода,
Д - количество дней в периоде. Полученные ручным подсчетом результаты совпадают с результатами работы разработанной программы.
3. Составление программы по автоматизации и исчислению численности кадров организации.
3.1. Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
trudoemkost: TEdit;
Label1: TLabel;
Label2: TLabel;
obem: TEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
fond: TEdit;
koef: TEdit;
uvelichenie: TEdit;
Label6: TLabel;
yavka: TEdit;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Button1: TButton;
procedure N6Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure trudoemkostKeyPress(Sender: TObject; var Key: Char);
procedure obemKeyPress(Sender: TObject; var Key: Char);
procedure fondKeyPress(Sender: TObject; var Key: Char);
procedure koefKeyPress(Sender: TObject; var Key: Char);
procedure uvelichenieKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
Function getFloat(Str : String): Real;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.N6Click(Sender: TObject);
begin
Halt;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
trudoemkost.Text := '3,5';
obem.Text := '3400';
fond.Text := '1820';
koef.Text := '1,03';
uvelichenie.Text := '15';
yavka.Text := '';
end;
procedure TForm1.N4Click(Sender: TObject);
begin
trudoemkost.Text := '';
obem.Text := '';
fond.Text := '';
koef.Text := '';
uvelichenie.Text := '';
yavka.Text := '';
end;
procedure TForm1.N5Click(Sender: TObject);
var chislo1, chislo2 : Real;
begin
if ((trudoemkost.Text = '') or (obem.Text = '') or (fond.Text = '') or (koef.Text = '') or (uvelichenie.Text = '')) then
ShowMessage('Введите все данные')
else
begin
chislo1 := getFloat(trudoemkost.Text)*getFloat(obem.Text)/(getFloat(fond.Text) * getFloat(koef.Text));
chislo2 := getFloat(trudoemkost.Text)*getFloat(obem.Text) * (getFloat(uvelichenie.Text)/100 + 1)/(getFloat(fond.Text) * getFloat(koef.Text));
if chislo1 = chislo2 then yavka.Text := 'не изменится (' + FloatToStr(round(chislo1)) + ' чел.)';
if chislo1 > chislo2 then yavka.Text := 'уменьшится с ' + FloatToStr(round(chislo1)) + ' чел. до ' + FloatToStr(round(chislo2)) + ' чел. на ' + FloatToStr(round(chislo1 - chislo2)) + ' чел.';
if chislo1 < chislo2 then yavka.Text := 'увеличится с ' + FloatToStr(round(chislo1)) + ' чел. до ' + FloatToStr(round(chislo2)) + ' чел. на ' + FloatToStr(round(chislo2 - chislo1)) + ' чел.';
end;
end;
Function TForm1.getFloat(Str: String): Real;
begin
Result := 0;
if Length(Str) > 0 then
begin
try
Result := StrToFloat(Str);
except
Result := 0;
end;
end;
end;
procedure TForm1.trudoemkostKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8, #44]) then Key := #0;
with trudoemkost do
if (Pos(',', Text) > 0) AND (Key = #44) then Key:=#0;
end;
procedure TForm1.obemKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8, #44]) then Key := #0;
with obem do
if (Pos(',', Text) > 0) AND (Key = #44) then Key:=#0;
end;
procedure TForm1.fondKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8, #44]) then Key := #0;
with fond do
if (Pos(',', Text) > 0) AND (Key = #44) then Key:=#0;
end;
procedure TForm1.koefKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8, #44]) then Key := #0;
with koef do
if (Pos(',', Text) > 0) AND (Key = #44) then Key:=#0;
end;
procedure TForm1.uvelichenieKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8, #44, #45]) then Key := #0;
with uvelichenie do
begin
if (Pos(',', Text) > 0) AND (Key = #44) then Key:=#0;
if ((Pos('-', Text) > 0) OR (Length(Text) > 0)) AND (Key = #45) then Key:=#0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
N5Click(Sender);
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Form2.Show;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw;
type
TForm2 = class(TForm)
WebBrowser1: TWebBrowser;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormShow(Sender: TObject);
begin
WebBrowser1.Navigate(extractfilepath(paramstr(0))+'spravka.mht');
end;
end.