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";
}
}
Выводы
Входе выполнения лабораторной работы была написана программа реализующая базу данных на основе хеш-таблиц. Программа используе обектно-ориентированный подход