Построение модели организационной структуры фирмы
XLS2: TMenuItem;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
lbledtSumCred: TLabeledEdit;
lbledtYRate: TLabeledEdit;
lbledtSrok: TLabeledEdit;
lbledtAnnuitet: TLabeledEdit;
btnAnnuitetCount: TButton;
Label1: TLabel;
rgVozrast: TRadioGroup;
rgReg: TRadio
Group;
rgTrud: TRadioGroup;
rgDoc: TRadioGroup;
rgStazh: TRadioGroup;
rgCred: TRadioGroup;
rgChild: TRadioGroup;
rgArmy: TRadioGroup;
rgIncome: TRadioGroup;
Label2: TLabel;
pnlVozrast: TPanel;
pnlReg: TPanel;
pnlTrud: TPanel;
pnlDoc: TPanel;
pnlStazh: TPanel;
pnlCred: TPanel;
pnlIncome: TPanel;
pnlChild: TPanel;
pnlArmy: TPanel;
btnCheckClient: TButton;
XPManifest1: TXPManifest;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
cbxFamMembers: TComboBox;
Label8: TLabel;
lbledtRentPay: TLabeledEdit;
lbledtCredPay: TLabeledEdit;
lbledtEduPay: TLabeledEdit;
lbledtAlimPay: TLabeledEdit;
lbledtOthersPay: TLabeledEdit;
btnFixPayCount: TButton;
lbledtFreeIncome: TLabeledEdit;
N1: TMenuItem;
lbledtTotalIncome: TLabeledEdit;
lbledtProvedIncome: TLabeledEdit;
Label9: TLabel;
cbxProvedIncome: TComboBox;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
cbxClient: TComboBox;
cbxAccVol: TComboBox;
cbxPropCost: TComboBox;
cbxShare: TComboBox;
cbxExpense: TComboBox;
cbxPrePaid: TComboBox;
btnCurrentIncomeCount: TButton;
lbledtCurrentIncome: TLabeledEdit;
lbledtCarPrice: TLabeledEdit;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
cbxPos: TComboBox;
cbxSpec: TComboBox;
cbxStazh: TComboBox;
cbxLastStazh: TComboBox;
cbxJobChange: TComboBox;
cbxCareer: TComboBox;
cbxEdu: TComboBox;
cbxAge: TComboBox;
cbxCredHistory: TComboBox;
btnAverageIncomeCount: TButton;
lbledtAverageIncome: TLabeledEdit;
Label26: TLabel;
lbledtPOD: TLabeledEdit;
lbledtPSD: TLabeledEdit;
lbledtKLCI: TLabeledEdit;
pnlPOD: TPanel;
pnlPSD: TPanel;
pnlKLCI: TPanel;
Button1: TButton;
procedure btnAnnuitetCountClick(Sender: TObject);
procedure btnCheckClientClick(Sender: TObject);
procedure btnFixPayCountClick(Sender: TObject);
procedure btnCurrentIncomeCountClick(Sender: TObject);
procedure btnAverageIncomeCountClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
// Вспомогательные глобальные переменные
// для хранения основных рассчетных параметров заемщика
gSummaCredita : real;
gCarprice : real;
gAnnuitet : real; // размер аннуитета
gCurrentIncome : real; // текущий доход
gAverageIncome : real; // ожидаемый доход
gFreeIncome : real;
implementation
{$R *.dfm}
//
// Рассчет аннуитетного платежа
//
procedure TForm1.btnAnnuitetCountClick(Sender: TObject);
var
yrate,mrate,carprice,summacredita,annuitet : real;
srok : integer;
begin
gAnnuitet:=0;
try
carprice:=StrToFloat(lbledtCarPrice.Text);
except
on EConvertError do
begin
MessageDlg('Стоимость автомобиля введена не верно!', mtWarning, [mbOk], 0);
Exit;
end;
end;
gCarPrice:=carprice;
try
summacredita:=StrToFloat(lbledtSumCred.Text);
except
on EConvertError do
begin
MessageDlg('Сумма кредита введена не верно!', mtWarning, [mbOk], 0);
Exit;
end;
end;
gSummaCredita:=summacredita;
if (summacredita > carprice) or ((summacredita/carprice) > 0.8) then
begin
MessageDlg('Сумма кредита не может превышать стоимость или составлять > 80% от нее !', mtWarning, [mbOk], 0);
Exit;
end;
try
yrate:=StrToFloat(lbledtYRate.Text)/100;
except
on EConvertError do
begin
MessageDlg('Процентная ставка введена не верно!', mtWarning, [mbOk], 0);
Exit;
end;
end;
try
mrate:=yrate / 12;
except
on EZeroDivide do
begin
MessageDlg('Проверьте корректность данных!', mtWarning, [mbOk], 0);
Exit;
end;
end;
try
srok:=StrToInt(lbledtSrok.Text);
except
on EConvertError do
begin
MessageDlg('Срок кредитования введен не верно!', mtWarning, [mbOk], 0);
Exit;
end;
end;
if (srok > 0) then
try
annuitet:=(summacredita*mrate)/(1-(1/exp((srok-1)*ln(1+mrate))));
except
on EInvalidOp do
begin
MessageDlg('Проверьте корректность данных!', mtWarning, [mbOk], 0);
Exit;
end;
on EZeroDivide do
begin
MessageDlg('Проверьте корректность данных!', mtWarning, [mbOk], 0);
Exit;
end;
end
else
begin
MessageDlg('Проверьте корректность данных!', mtWarning, [mbOk], 0);
Exit;
end;
gAnnuitet:=annuitet;
lbledtAnnuitet.Text:=FloatToStr(Round(annuitet));
end;
//
// Проверка выполнения минимальных требований к заемщику
//
procedure TForm1.btnCheckClientClick(Sender: TObject);
begin
if (rgVozrast.ItemIndex = 0) then
pnlVozrast.Caption:='V'
else
pnlVozrast.Caption:='X';
if (rgReg.ItemIndex = 0) then
pnlReg.Caption:='V'
else
pnlReg.Caption:='X';
if (rgTrud.ItemIndex = 0) then
pnlTrud.Caption:='V'
else
pnlTrud.Caption:='X';
if (rgDoc.ItemIndex = 0) then
pnlDoc.Caption:='V'
else
pnlDoc.Caption:='X';
if (rgStazh.ItemIndex = 0) then
pnlStazh.Caption:='V'
else
pnlStazh.Caption:='X';
if (rgCred.ItemIndex = 0) then
pnlCred.Caption:='V'
else
pnlCred.Caption:='X';
if (rgIncome.ItemIndex = 0) then
pnlIncome.Caption:='V'
else
pnlIncome.Caption:='X';
if (rgChild.ItemIndex = 0) then
pnlChild.Caption:='V'
else
pnlChild.Caption:='X';
if (rgArmy.ItemIndex = 0) then
pnlArmy.Caption:='V'
else
pnlArmy.Caption:='X';
end;
//
// Рассчет свободного дохода
//
procedure TForm1.btnFixPayCountClick(Sender: TObject);
var
famMembers : integer;
rentPay, credPay, eduPay, alimPay, othersPay,fixPay,famKoef,freeIncome : real;
begin
try
famMembers:=StrToInt(cbxFamMembers.Text); // проверить на 0
except
on EConvertError do
begin
MessageDlg('Кол-во сожителей введено не верно!', mtWarning, [mbOk], 0);
Exit;
end;
end;
case famMembers of
0 : famKoef:=0.1;
1 : famKoef:=0.2;
2 : famKoef:=0.4;
3 : famKoef:=0.5;
4 : famKoef:=0.6;
5 : famKoef:=0.7;
end;
Другие рефераты на тему «Экономико-математическое моделирование»:
- Основные понятия и методы экономико-математического моделирования
- Особенности развития Российской экономики в условиях формирования рыночных отношений
- Программная реализация алгоритмов поиска в глубину и ширину в неориентированных графах
- Решение задач о планировании перевозок
- Моделирование экономики
Поиск рефератов
Последние рефераты раздела
- Выборочные исследования в эконометрике
- Временные характеристики и функция времени. Графическое представление частотных характеристик
- Автоматизированный априорный анализ статистической совокупности в среде MS Excel
- Биматричные игры. Поиск равновесных ситуаций
- Анализ рядов распределения
- Анализ состояния финансовых рынков на основе методов нелинейной динамики
- Безработица - основные определения и измерение. Потоки, запасы, утечки, инъекции в модели