#include <iostream>
using namespace std;
struct Date {
char year[100];
char month[100];
char day[100];
};
struct Worker {
char identificator[100];
char name[100];
char surname[100];
char age[100];
char posada[100];
char staz[100];
char zarplata[100];
Date birthday;
};
struct Compania {
char name[100];
char reitung[100];
Worker* prazivnuk;
int count;
};
void set_Worker(Worker&worker);
void print_Worker(Worker worker);
void print_Date(Date date);
void set_Date(Date&date);
void set_Compania(Compania&compania);
void print_Compania(Compania compania);
void posch_praz_identificator(Worker worker, int identificato);
void posch_praz_name(Worker worker, char* name);
void posch_praz_name1(Compania* compania, char* name, int n);
void posch_praz_identificator1(Compania* compania, int identificato, int n);
void posch_praz_surname(Worker worker, char* surname);
void posch_praz_surname1(Compania* compania, char* surname, int n);
void posch_praz_birthday1(Compania* compania, int n, int year1, int month1, int day1);
void posch_praz_zarplata(Compania* compania, int n);
void posch_praz_birthday(Worker prazivnuk, int year1, int month1, int day1);
void posch_vidil_reitung(Compania* compania, int n);
//void posch_praz_surname_bukv(Worker worker, char* surnam);
//void posch_praz_surname1_bukv(Compania* compania, char* surnam, int n);
//void posch_praz_penc1(Compania* compania, int identificato, int n);
//void posch_praz_penc(Worker worker, int identificato);
//void posch_praz_staz1(Compania* compania, int identificato, int n);
//void posch_praz_staz(Worker worker, int identificato);
void red_praz_surname(Worker&worker, char* surname);
void red_praz_surname1(Compania* compania, char* surname, int n);
//void sort_vidil_surname(Compania*compania, int vidil, int n);
//void sort_vidil_staz(Compania*compania, int vidil, int n);
//void sort_vidil_zarplata(Compania*compania, int vidil, int n);
//void add_praz_vidil(Compania*compania, int vidil, int n);
void add_vidil(Compania*compania, int*n);
//void del_praz_identificator(Compania* compania, int identificato, int n);
//void del_praz_surname(Compania*compania, char *surna, int n);
void del(Compania*compania, int n);
void main() {
int n = 2, cho, choice;
Compania* compania = new Compania[n];
for (int i = 0; i < n; i++) {
set_Compania(compania[i]);
}
do {
cout << "Enter choise: ";
(cin >> choice).get();
switch (choice) {
case 1:
for (int i = 0; i < n; i++) {
print_Compania(compania[i]);
}
break;
case 2:
cout << "Enter vidil: ";
(cin >> cho).get();
print_Compania(compania[cho - 1]);
break;
case 3:
int identificato;
cout << "Enter identificator: ";
(cin >> identificato).get();
posch_praz_identificator1(compania, identificato, n);
break;
case 4:
char name[100];
cout << "Enter name: ";
gets_s(name);
posch_praz_name1(compania, name, n);
break;
case 5:
char surname[100];
cout << "Enter surname: ";
gets_s(surname);
posch_praz_surname1(compania, surname, n);
break;
case 6:
int year1, month1, day1;
cout << "year: ";
cin >> year1;
cout << "month: ";
cin >> month1;
cout << "day: ";
cin >> day1;
posch_praz_birthday1(compania, n, year1, month1, day1);
break;
case 7:
posch_praz_zarplata(compania, n);
break;
case 8:
posch_vidil_reitung(compania, n);
break;
/*case 9:
char surnam[2];
cout << "Enter 1 bukv surname: ";
gets_s(surnam);
posch_praz_surname1_bukv(compania, surnam, n);
break;*/
/*case 10:
posch_praz_penc1(compania, 45, n);
break;*/
/*case 11:
posch_praz_staz1(compania, 5, n);
break; */
case 12:
char surnam[100];
cout << "Enter surname: ";
gets_s(surnam);
red_praz_surname1(compania, surnam, n);
break;
/*case 13:
int vidil;
cout << "Enter vidil: ";
(cin >> vidil).get();
sort_vidil_surname(compania, vidil, n);
break;*/
/*case 14:
int vidil;
cout << "Enter vidil: ";
(cin >> vidil).get();
sort_vidil_staz(compania, vidil, n);
break;*/
/*case 15:
int vidil;
cout << "Enter vidil: ";
(cin >> vidil).get();
sort_vidil_zarplata(compania, vidil, n);
break;*/
/*case 16:
int vidil;
cout << "Enter vidil: ";
(cin >> vidil).get();
add_praz_vidil(compania, vidil, n);
break;*/
case 17:
add_vidil(compania, &n);
break;
/*case 18:
int identificat;
cout << "Enter identificator: ";
(cin >> identificat).get();
del_praz_identificator(compania, identificat, n);
break;*/
/*case 19:
char surna[100];
cout << "Enter surname: ";
gets_s(surna);
del_praz_surname(compania, surna, n);
break;*/
case 20:
del(compania, n);
break;
}
} while (choice > 0);
system("pause");
}
void del(Compania*compania, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < compania[i].count; j++) {
delete[] compania[i].prazivnuk;
}
}
}
//void del_praz_surname(Compania*compania, char *surna, int n) {
// int poschuk, test = 0;
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < compania[i].count - 1; j++) {
// int poschuk = strcmp(compania[i].prazivnuk[j].surname, surna);
// if (poschuk == 0) {
// delete[] compania[i].prazivnuk[j].identificator;
// test = 1;
// compania[i].count--;
// }
// if (test == 1) {
// compania[i].prazivnuk[j] = compania[i].prazivnuk[j + 1];
// }
// }
// }
//}
//void del_praz_identificator(Compania* compania, int identificato, int n) {
// int poschuk, test = 0;
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < compania[i].count - 1; j++) {
// poschuk = atoi(compania[i].prazivnuk[j].identificator);
// if (poschuk == identificato) {
// delete[] compania[i].prazivnuk[j].identificator;
// test = 1;
// compania[i].count--;
// }
// if (test == 1) {
// compania[i].prazivnuk[j] = compania[i].prazivnuk[j + 1];
// }
// }
// }
//}
void add_vidil(Compania*compania, int *n) {
Compania* tmp = new Compania[*n + 1];
tmp = compania;
set_Compania(tmp[*n]);
compania = tmp;
n++;
}
//void add_praz_vidil(Compania*compania, int vidil, int n) {
// Compania* tmp = new Compania[1];
// tmp[1] = compania[vidil];
// set_Worker(tmp[1].prazivnuk[compania[vidil].count]);
// compania[vidil] = tmp[1];
// compania[vidil].count++;
//}
//void sort_vidil_zarplata(Compania*compania, int vidil, int n) {
// Compania* tmp = new Compania[1];
// for (int j = 0; j < compania[vidil].count; j++) {
// int cho = strcmp(compania[vidil].prazivnuk[j].zarplata, compania[vidil].prazivnuk[j + 1].zarplata);
// if (cho > 0) {
// tmp[vidil].prazivnuk[j] = compania[vidil].prazivnuk[j];
// compania[vidil].prazivnuk[j] = compania[vidil].prazivnuk[j + 1];
// compania[vidil].prazivnuk[j + 1] = tmp[vidil].prazivnuk[j];
// }
// }
//}
//void sort_vidil_staz(Compania*compania, int vidil, int n) {
// Compania* tmp = new Compania[1];
// for (int j = 0; j < compania[vidil].count; j++) {
// int cho = strcmp(compania[vidil].prazivnuk[j].staz, compania[vidil].prazivnuk[j + 1].staz);
// if (cho > 0) {
// tmp[vidil].prazivnuk[j] = compania[vidil].prazivnuk[j];
// compania[vidil].prazivnuk[j] = compania[vidil].prazivnuk[j + 1];
// compania[vidil].prazivnuk[j + 1] = tmp[vidil].prazivnuk[j];
// }
// }
//}
//void sort_vidil_surname(Compania*compania, int vidil, int n) {
// Compania* tmp = new Compania[1];
// for (int j = 0; j < compania[vidil].count; j++) {
// int cho = strcmp(compania[vidil].prazivnuk[j].surname, compania[vidil].prazivnuk[j + 1].surname);
// if (cho > 0) {
// tmp[vidil].prazivnuk[j] = compania[vidil].prazivnuk[j];
// compania[vidil].prazivnuk[j] = compania[vidil].prazivnuk[j + 1];
// compania[vidil].prazivnuk[j + 1] = tmp[vidil].prazivnuk[j];
// }
// }
//}
void red_praz_surname1(Compania* compania, char* surname, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < compania[i].count; j++) {
red_praz_surname(compania[i].prazivnuk[j], surname);
}
}
}
void red_praz_surname(Worker&worker, char* surname) {
int cho = strcmp(worker.surname, surname);
if (cho == 0) {
set_Worker(worker);
}
}
//void posch_praz_staz1(Compania* compania, int sta, int n) {
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < compania[i].count; j++) {
// posch_praz_identificator(compania[i].prazivnuk[j], sta);
// }
// }
//}
//void posch_praz_staz(Worker worker, int sta) {
// int poschuk = atoi(worker.staz);
// if (poschuk >= sta) {
// print_Worker(worker);
// }
//}
//void posch_praz_penc1(Compania* compania, int a, int n) {
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < compania[i].count; j++) {
// posch_praz_identificator(compania[i].prazivnuk[j], a);
// }
// }
//}
//void posch_praz_penc(Worker worker, int a) {
// int poschuk = atoi(worker.age);
// if (poschuk == a) {
// print_Worker(worker);
// }
//}
//void posch_praz_surname1_bukv(Compania* compania, char* surnam, int n) {
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < compania[i].count; j++) {
// posch_praz_surname_bukv(compania[i].prazivnuk[j], surnam);
// }
// }
//}
//void posch_praz_surname_bukv(Worker worker, char *surnam) {
// int cho = strcmp(worker.surname[1], surnam);
// if (cho == 0) {
// print_Worker(worker);
// }
//}
void posch_vidil_reitung(Compania* compania, int n) {
int max = 0;
for (int i = 0; i < n; i++) {
int a = atoi(compania[i].reitung);
if (a > max) {
max = a;
}
}
for (int i = 0; i < n; i++) {
int a = atoi(compania[i].reitung);
if (a == max) {
print_Compania(compania[i]);
}
}
}
void posch_praz_zarplata(Compania* compania, int n) {
int max = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < compania[i].count; j++) {
int a = atoi(compania[i].prazivnuk[j].zarplata);
if (a > max) {
max = a;
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < compania[i].count; j++) {
int a = atoi(compania[i].prazivnuk[j].zarplata);
if (a == max) {
print_Worker(compania[i].prazivnuk[j]);
}
}
}
}
void posch_praz_birthday(Worker prazivnuk, int year1, int month1, int day1) {
int year2 = atoi(prazivnuk.birthday.year);
int month2 = atoi(prazivnuk.birthday.month);
int day2 = atoi(prazivnuk.birthday.day);
if (year2 == year1 && month2 == month1 && day2 == day1) {
print_Worker(prazivnuk);
}
}
void posch_praz_birthday1(Compania* compania, int n, int year1, int month1, int day1) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < compania[i].count; j++) {
posch_praz_birthday(compania[i].prazivnuk[j], year1, month1, day1);
}
}
}
void posch_praz_surname1(Compania* compania, char* surname, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < compania[i].count; j++) {
posch_praz_surname(compania[i].prazivnuk[j], surname);
}
}
}
void posch_praz_surname(Worker worker, char* surname) {
int cho = strcmp(worker.surname, surname);
if (cho == 0) {
print_Worker(worker);
}
}
void posch_praz_identificator1(Compania* compania, int identificato, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < compania[i].count; j++) {
posch_praz_identificator(compania[i].prazivnuk[j], identificato);
}
}
}
void posch_praz_name1(Compania* compania, char* name, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < compania[i].count; j++) {
posch_praz_name(compania[i].prazivnuk[j], name);
}
}
}
void posch_praz_name(Worker worker, char* name) {
int cho = strcmp(worker.name, name);
if (cho == 0) {
print_Worker(worker);
}
}
void posch_praz_identificator(Worker worker, int identificato) {
int poschuk = atoi(worker.identificator);
if (poschuk == identificato) {
print_Worker(worker);
}
}
void print_Compania(Compania compania) {
cout << "Name vidil: ";
puts(compania.name);
cout << "Reitung: ";
puts(compania.reitung);
cout << "Count prazivnik: ";
cout << compania.count << "\n";
for (int i = 0; i < compania.count; i++) {
print_Worker(compania.prazivnuk[i]);
}
}
void set_Compania(Compania&compania) {
cout << "Enter name vidil: ";
gets_s(compania.name);
cout << "Enter reitung: ";
gets_s(compania.reitung);
cout << "Enter count prazivnik: ";
(cin >> compania.count).get();
compania.prazivnuk = new Worker[compania.count];
for (int i = 0; i < compania.count; i++) {
set_Worker(compania.prazivnuk[i]);
}
}
void print_Worker(Worker worker) {
cout << "Identifikator: ";
puts(worker.identificator);
cout << "Name worker: ";
puts(worker.name);
cout << "Surname: ";
puts(worker.surname);
cout << "Age: ";
puts(worker.age);
cout << "Posada: ";
puts(worker.posada);
cout << "Staz: ";
puts(worker.staz);
cout << "Zarplata: ";
puts(worker.zarplata);
print_Date(worker.birthday);
}
void set_Worker(Worker&worker) {
cout << "Enter indentifikator: ";
gets_s(worker.identificator);
cout << "Enter name worker: ";
gets_s(worker.name);
cout << "Enter surname: ";
gets_s(worker.surname);
cout << "Enter age: ";
gets_s(worker.age);
cout << "Enter posada: ";
gets_s(worker.posada);
cout << "Enter staz: ";
gets_s(worker.staz);
cout << "Enter zarplata: ";
gets_s(worker.zarplata);
set_Date(worker.birthday);
}
void print_Date(Date date) {
cout << "Year: ";
puts(date.year);
cout << "Month: ";
puts(date.month);
cout << "Day: ";
puts(date.day);
}
void set_Date(Date&date) {
cout << "Enter year: ";
gets_s(date.year);
cout << "Enter month: ";
gets_s(date.month);
cout << "Enter day: ";
gets_s(date.day);
}