Field.H
#pragma
once
#include<utility>
using
namespace std;
class
Field{
public:
int
key;
Field(int
key);
virtual
string toString();
};
Field::Field(int
key)
{
this->key
= key;
}
string
Field::toString()
{
return
"Key: " + to_string(key);
}
Newfield.H
#pragma
once
#include"Field.h"
#include
"reference.h"
using
namespace std;
class
OwnerField: public Field
{
public:
string
name;
string
adress;
OwnerField(int
key, string name, string adress);
virtual
string toString();
};
OwnerField::OwnerField(int
key, string name, string adress):Field(key)
{
this->name
= name;
this->adress
= adress;
}
string
OwnerField::toString()
{
return
"Key: " + to_string(key) + "; Name: " + name + ";
Adress: " + adress;
}
class
VehicleField: public Field
{
public:
int
number;
string
color;
VehicleField(int
key, int number, string color);
virtual
string toString();
};
VehicleField::VehicleField(int
key, int number, string color):Field(key)
{
this->number
= number;
this->color
= color;
}
string
VehicleField::toString()
{
return
"Key: " + to_string(key) + "; Number: " +
to_string(number) + "; Colour: " + color;
}
class
PlaceField: public Field
{
public:
int
number;
reference
owner;
reference
vehicle;
PlaceField(int
key, int number, reference owner, reference vehicle);
virtual
string toString();
};
PlaceField::PlaceField(int
key, int number, reference owner, reference vehicle):Field(key)
{
this->number
= number;
this->owner
= owner;
this->vehicle
= vehicle;
}
string
PlaceField::toString()
{
return
"Key: " + to_string(key) + "; Number: " +
to_string(number) + "\n\tOwner:\n\t" +
getFromRefTable(owner) + "\n\tVehicle:\n\t" +
getFromRefTable(vehicle);
}
References.H
#pragma
once
#include
<iostream>
#include
"DBTable.h"
struct
reference{
int
key;
DBTable*
refTable;
};
reference
make_ref(int key, DBTable* t)
{
reference
r;
r.key
= key;
r.refTable
= t;
return
r;
}
string
getFromRefTable(reference r)
{
try{
return
r.refTable->getByKey(r.key)->toString();
}catch(int
e){
return
"Linked row not exist";
}
}
Выводы
Входе
выполнения лабораторной работы была
написана программа реализующая базу
данных на основе хеш-таблиц. Программа
используе обектно-ориентированный
подход