#include "fstream.h"
#include "Unit1.h"
#include "darbuotojai.cpp"
#include <vcl.h>
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"
const char inFN[]="darbuotojai.txt";
const char oFN[]="rezultatai.txt";
//---------------------------------------------------------------------------
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ifstream inst(inFN);
int eil_nr=1+count(istreambuf_iterator<char>(inst),istreambuf_iterator<char>(),'\n');
char v[25],
p[25],
g[8];
Darbuotojai Darb;
double darbv,
darbvalsk,
virsv,
darbvsk,
atlygdv,
atlygv,
atlyg;
if(inst.is_open())
{
while(!inst.eof())
{
inst>>v>>p>>g;
for(int i=0; i<=29;i++)
{
inst>>darbv;
}
Darb.SetData(v,p,g,darbv);
Memo1->Lines->Add(Darb.GetData());
}inst.close();
}
else Memo1->Lines->Add("error!");
}
ofstream ost(oFN);
AnsiString darbvalsk,atlygdv,virsv,atlygv,atlyg;
if(ost.is_open()){
for (int i=0;i<eil_nr;i++)
{
Darb.GetData(darbvalsk,atlygdv,virsv,atlygv,atlyg);
Memo1->Lines->Add(darbvalsk+atlygdv+virsv+atlygv+atlyg);
ost<<darbvalsk.c_str()<<"\t"<<atlygdv.c_str()<<"\t"
<<virsv.c_str()<<"\t"<<atlygv.c_str()<<"\t"<<atlyg.c_str()<<endl;
}
ost.close();
} else Memo1->Lines->Add("error!");
//---------------------------------------------------------------------------
//and here is my class
//darbuotojai.h
class Darbuotojai
{
char vardas[25],
pavarde[25],
gimimo_data[8];
double valandos[30],
darbo_val,
virsvalandziai,
viso_val,
atlyginimas_darbo_val,
atlyginimas_virsval,
atlyginimas_visas;
public:
Darbuotojai();
~Darbuotojai();
void SetData(char vard[], char pavard[], char gd[], double val[29]);
void GetData(AnsiString &vard, AnsiString &pavard, AnsiString &gd, double &darbval, double &virsval, double &visval, double &atldval, double &atlvval, double &atlvis);
AnsiString GetData();
};
Darbuotojai::Darbuotojai():darbo_val(0),virsvalandziai(0),viso_val(0),atlyginimas_darbo_val(0),atlyginimas_virsval(0),atlyginimas_visas(0)
{
};
Darbuotojai::~Darbuotojai()
{
};
void Darbuotojai::SetData(char vard[], char pavard[], char gd[], double val[29])
{
strcpy(vardas, vard);
strcpy(pavarde, pavard);
strcpy(gimimo_data, gd);
for (int i=0;i<29;i++)
{
valandos[i]=val[i];
if (valandos[i] <= 8)
{
darbo_val+=valandos[i];
}
else
{
virsvalandziai+=valandos[i]-8;
darbo_val+=valandos[i]-virsvalandziai;
}
}
viso_val=virsvalandziai+darbo_val;
atlyginimas_darbo_val=darbo_val*10;
atlyginimas_virsval=virsvalandziai*15;
atlyginimas_visas= atlyginimas_virsval+atlyginimas_darbo_val;
}
void Darbuotojai::GetData(AnsiString &vard, AnsiString &pavard, AnsiString &gd, double &darbval, double &virsval, double &visval, double &atldval, double &atlvval, double &atlvis)
{
vard=vardas;
pavard=pavarde;
gd=gimimo_data;
darbval=darbo_val;
virsval=virsvalandziai;
visval=viso_val;
atldval=atlyginimas_darbo_val;
atlvval=atlyginimas_virsval;
atlvis=atlyginimas_visas;
}
AnsiString Darbuotojai::GetData()
{
return AnsiString(vardas)+"\t"+AnsiString(pavarde)+"\t"+AnsiString(gimimo_data)+"\t"+AnsiString(valandos[0])
+"\t"+AnsiString(valandos[1])+"\t"+AnsiString(valandos[2])+"\t"+AnsiString(valandos[3])
+"\t"+AnsiString(valandos[4])+"\t"+AnsiString(valandos[5])+"\t"+AnsiString(valandos[6])
+"\t"+AnsiString(valandos[7])+"\t"+AnsiString(valandos[8])+"\t"+AnsiString(valandos[9])
+"\t"+AnsiString(valandos[10])+"\t"+AnsiString(valandos[11])+"\t"+AnsiString(valandos[12])
+"\t"+AnsiString(valandos[13])+"\t"+AnsiString(valandos[14])+"\t"+AnsiString(valandos[15])
+"\t"+AnsiString(valandos[16])+"\t"+AnsiString(valandos[17])+"\t"+AnsiString(valandos[18])
+"\t"+AnsiString(valandos[19])+"\t"+AnsiString(valandos[20])+"\t"+AnsiString(valandos[21])
+"\t"+AnsiString(valandos[22])+"\t"+AnsiString(valandos[23])+"\t"+AnsiString(valandos[24])
+"\t"+AnsiString(valandos[25])+"\t"+AnsiString(valandos[26])+"\t"+AnsiString(valandos[27])
+"\t"+AnsiString(valandos[28])+"\t"+AnsiString(valandos[29]);
}