/*Разработать на языке C++ 32x / 64x разрядные библиотеки(DLL) для работы со
справочником филиальной структуры компании.DLL должна включать следующие
функции : создание нового филиала, редактирование данных филиала, удаление филиала,
просмотр данных филиала, построения «дерева» филиалов.Выполнить демонстрацию
работы DLL на любом языке программирования высокого уровня.Справочник филиальной
структуры должен содержать следующие поля : уникальный идентификатор филиала,
идентификатор филиала родителя, наименование филиала, город, строка подключения к
AD, логин пользователя для доступа к AD, пароль данного пользователя, минимальный
порог оценок, максимальный порог оценок, IP, имеющие доступ к тестированию,
уведомлять об окончании занятий за дней, шаблон рассылки сообщений при добавлении
слушателя в группу, шаблон рассылки сообщений при регистрации пользователя.*/
#include <iostream>
#include <vector>
#include <string.h>
#include <iterator>
#define N 16
using namespace std;
class Catalog {
public:
long int id, parentid;
char name[N];
char city[N];
char login[N] = { "admin" };
char pass[N] = { "111" };
int minevaluation, maxevaluation;
char ip[N];
char **test;
int start() {
char *p, *l;
cout << endl << "Login: ";
cin >> l;
cout << endl << "Password: ";
cin >> p;
if (!_stricmp(l, login) && !_stricmp(p, pass)) return 1;
else return 0;
};
void dayover() {
cout << endl << "The workday is over.";
};
void newlistener() {
cout << endl << "Added a new listener.";
};
void newuser() {
cout << endl << "Registered a new user.";
};
};
class ContainerCatalog {
vector<Catalog> catalogs;
void addcatalog(Catalog &obj) {
catalogs.push_back(obj);
};
public:
void contents() {
Catalog *c = new Catalog;
cout << endl << "Enter id: "; cin >> c->id;
cout << endl << "Enter parent id: "; cin >> c->parentid;
cout << endl << "Enter the name of filial: "; cin >> c->name;
cout << endl << "Enter city: "; cin >> c->city;
cout << endl << "Enter ip: "; cin >> c->ip;
cout << endl << "Enter max. evaluation: "; cin >> c->maxevaluation;
cout << endl << "Enter min. evaluation: "; cin >> c->minevaluation;
//ip's for users that have access to test
int amips;
int len = N;
cout << endl << "Enter amounts of ip's u need to save: "; cin >> amips;
c->test = new char*[amips + 1];
for (int i = 0; i < (amips + 1); i++) c->test[i] = new char[len];
for (int i1 = 0; i1 < (amips + 1); i1++) cin.getline(c->test[i1], len);
cout << endl << "Сreation has been completed successfully";
addcatalog(*c);
};
void watch() {
int number;
cout << endl << "Enter the number of Catalog that u need to watch: "; cin >> number;
cout << endl << "Filial id: " << catalogs.at(number).id;
cout << endl << "Parent filial id: " << catalogs.at(number).parentid;
cout << endl << "Filial name: " << catalogs.at(number).name;
cout << endl << "City: " << catalogs.at(number).city;
cout << endl << "Minevaluation/maxevaluation: " << catalogs.at(number).minevaluation << " " << catalogs.at(number).maxevaluation;
cout << endl << "Ip: " << catalogs.at(number).ip;
cout << endl << "Having access to testing: ";
for (int i = 0; i < sizeof(catalogs.at(number).test); i++)
cout << endl << catalogs.at(number).test[i];
};
};
int main() {
ContainerCatalog cc;
cc.contents();
cc.watch();
system("Pause");
}