
Файл Teacher.H:
#include <iostream>
#include <fstream>
#include <ctime>
#include "C:\Users\Freddy\Desktop\OOP_2014\lab6_2\lab6_2\Tax.h"
using namespace std;
class Teacher
{
protected:
string name, surname, middle;
unsigned int number, year;
float oldSalary, salary, surcharge, allowance, aid, vacationPay; // оклад, доплата, надбавка, мат помощь, оплата отпуска
Tax tax;
public:
Teacher();
Teacher(string n, string s, string m, unsigned int N);
void Init(unsigned int y, float sal, float allow, float ai, float vacPay);
void SetNumber(unsigned int N);
void SetYear(unsigned int y);
void SetSurcharge(float s);
void SetAllowance(float a);
void SetAid(float a);
void SetVacationPay(float p);
string GetName();
string GetSurname();
string GetMiddle();
unsigned int GetNumber();
unsigned int GetYear();
float GetOldSalary();
float GetSalary();
float GetSurcharge();
float GetAllowance( );
float GetAid();
float GetVacationPay();
float GetTax();
virtual void ReadInfo(string path);
virtual void SaveInfo(string path) const;
};
Тестирование задания 2:
Задание 3:
файл Dot.cpp:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Dot.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
Dot::Dot(int x, int y)
{
X = x;
Y = y;
}
файл Dot.h:
//---------------------------------------------------------------------------
#ifndef DotH
#define DotH
class Dot
{
public:
int X, Y;
Dot(int x, int y);
};
#endif
файл Graph.cpp:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Graph.h"
#include <Unit1.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
Graph::Graph(TImage *Image, TListBox *ListBox)
{
img = Image;
list = ListBox;
Clear();
}
void Graph::AddDot(Dot *dot)
{
dots.push_back(*dot);
}
void Graph::Draw(){}
void Graph::Clear()
{
img->Canvas->Pen->Color = clWhite;
img->Canvas->Rectangle(0, 0, img->Width, img->Height);
}
void Graph::Save(string path)
{
ofstream out(path.c_str(), ios::trunc);
if(out.is_open())
{
for(int i=0; i<dots.size(); ++i)
out<<dots[i].X<<" "<<dots[i].Y<<endl;
}
out.close();
}
void Graph::Load(string path, TListBox *list)
{
ifstream in(path.c_str(), ios::binary);
if(in.is_open())
{
in.seekg(0, ios::end);
int size = (int)(in.tellg()/sizeof(int));
in.seekg(0, ios::beg);
for(int i=0; i<=size; i+=2)
{
AddDot (new Dot(0, 0));
in>>dots[i/2].X;
in>>dots[i/2].Y;
}
}
in.close();
switch(type)
{
case DOT:
for(int i=0; i<dots.size(); ++i)
list->Items->Add(AnsiString(dots[i].X) + "; " + AnsiString(dots[i].Y));
break;
case LINE: for(int i=0; i<dots.size(); i+=2)
list->Items->Add("(" + AnsiString(dots[i].X) + "; " + AnsiString(dots[i].Y) + "), (" + AnsiString(dots[i+1].X) + "; " + AnsiString(dots[i+1].Y) + ")");
break;
case POLY: for(int i=0; i<dots.size(); ++i)
list->Items->Add(AnsiString(dots[i].X) + "; " + AnsiString(dots[i].Y)); break;
default: break;
}
Draw();
}