Файл Unit1.H:
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Menus.hpp>
#include <Dialogs.hpp>
#include <C:\Users\Freddy\Desktop\OOP_2014\lab6_2\lab6_2\AssistProfessor.h>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPanel *MainPanel;
TMainMenu *File;
TMenuItem *File1;
TMenuItem *New1;
TMenuItem *Open1;
TMenuItem *SaveAs;
TMenuItem *Save1;
TMenuItem *Load1;
TLabel *Name;
TEdit *EditName;
TLabel *Surname;
TEdit *EditSurname;
TLabel *Middle;
TEdit *EditMiddle;
TButton *ApplyButton;
TLabel *SalaryLabel;
TLabel *SurchargeLabel;
TLabel *AllowanceLabel;
TLabel *AidLabel;
TLabel *VacationPayLabel;
TEdit *EditSalary;
TEdit *EditSurcharge;
TEdit *EditAllowance;
TEdit *EditAid;
TEdit *EditVacationPay;
TLabel *TaxLabel;
TLabel *TotalLabel;
TLabel *TaxOut;
TLabel *Total;
TLabel *NumberLabel;
TEdit *EditNumber;
TLabel *YearLabel;
TEdit *EditYear;
TComboBox *ComboBox;
TMenuItem *N1;
TMenuItem *N2;
TMenuItem *N3;
TSaveDialog *SaveDialog;
TOpenDialog *OpenDialog;
void __fastcall ApplyButtonClick(TObject *Sender);
void __fastcall SaveAsClick(TObject *Sender);
void __fastcall Load1Click(TObject *Sender);
void __fastcall Save1Click(TObject *Sender);
void __fastcall New1Click(TObject *Sender);
void __fastcall Open1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
Teacher *t;
AnsiString path;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Файл Teacher.Cpp:
#include "Teacher.h"
Teacher::Teacher()
{
name = "";
surname = "";
middle = "";
number = 0;
Init(0, 0, 0, 0, 0);
}
Teacher::Teacher(string n, string s, string m, unsigned int N)
{
name = n;
surname = s;
middle = m;
number = N;
Init(0, 0, 0, 0, 0);
}
void Teacher::Init(unsigned int y, float sal, float allow, float ai, float vacPay)
{
oldSalary = sal;
time_t t;
time(&t);
int sur = (localtime(&t)->tm_year + 1900) - year;
if(sur >= 20)
surcharge = 30;
else if(sur >= 10)
surcharge = 20;
else if(sur >= 3)
surcharge = 10;
year = y;
allowance = allow;
aid = ai;
vacationPay = vacPay;
salary = sal + (sal*surcharge)/100.0 - (sal*6.1)/100.0 + allowance;
tax = Tax(salary);
salary -= tax.GetTax();
}
void Teacher::SetNumber(unsigned int N) { number = N; }
void Teacher::SetYear(unsigned int y) { year = y;}
void Teacher::SetSurcharge(float s) { surcharge = s; }
void Teacher::SetAllowance(float a) { allowance = a; }
void Teacher::SetAid(float a) { aid = a; }
void Teacher::SetVacationPay(float p) { vacationPay = p; }
unsigned int Teacher::GetNumber() { return number; }
unsigned int Teacher::GetYear() { return year; }
float Teacher::GetOldSalary() { return oldSalary; }
float Teacher::GetSalary() { return salary; }
float Teacher::GetSurcharge() { return surcharge; }
float Teacher::GetAllowance( ) { return allowance; }
float Teacher::GetAid() { return aid; }
float Teacher::GetVacationPay() { return vacationPay; }
float Teacher::GetTax() { return tax.GetTax(); }
string Teacher::GetName() { return name; }
string Teacher::GetSurname() { return surname; }
string Teacher::GetMiddle() { return middle; }
void Teacher::ReadInfo(string path)
{
ifstream in(path.c_str(), ios::in);
if(in.is_open())
{
in>>name;
in>>surname;
in>>middle;
in>>number;
in>>year;
in>>oldSalary;
in>>salary;
in>>surcharge;
in>>allowance;
in>>aid;
in>>vacationPay;
float t;
in>>t;
tax.SetTax(t);
in.close();
}
}
void Teacher::SaveInfo(string path) const
{
ofstream out(path.c_str(), ios::trunc);
if(out.is_open())
{
out<<name<<endl;
out<<surname<<endl;
out<<middle<<endl;
out<<number<<endl;
out<<year<<endl;
out<<oldSalary<<endl;
out<<salary<<endl;
out<<surcharge<<endl;
out<<allowance<<endl;
out<<aid<<endl;
out<<vacationPay<<endl;
out<<tax.GetTax()<<endl;
}
out.close();
}
