Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб3.docx
Скачиваний:
12
Добавлен:
14.12.2018
Размер:
22.82 Кб
Скачать

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";

}

}

Выводы

Входе выполнения лабораторной работы была написана программа реализующая базу данных на основе хеш-таблиц. Программа используе обектно-ориентированный подход

Соседние файлы в предмете Теория алгоритмов и автоматов