Тема: Допоможіть(С++(структури))
ось все завдання
Розробіть програму «Компанія». Компанія складається з 3 відділів. Кожен відділ має свою назву, рейтинг. В кожному відділі працює певна кількість працівників(від 2 до 10). Працівник має унікальний ідентифікатор, ім’я, прізвище, вік, посаду, стаж роботи, заробітну плату, дату нарождення(рік, місяць, день). Реалізуйте такі можливості:
Друк всіх працівників.
Друк всіх працівників певного відділу.
Пошук працівника по ідентифікатору.
Пошук працівника по імені.
Пошук працівника по прізвищу.
Пошук працівника по даті народження.
Пошук працівника з найбільшою заробітною платою.
Пошук відділу з найвищим рейтингом.
Пошук працівників по першій букві прізвища.
Пошук всіх працівників, яким залишилось менше 15 років до пенсії, якщо пенсійний вік починається в 60 років.
Пошук всіх працівників, в яких є надбавка до зарплати(надбавка начислюється, якщо стаж роботи 5 і більше років).
Редагування даних працівника(пошук по прізвищу і перезаписування нових даних).
Сортування всіх працівників потрібного відділу по прізвищу.
Сортування всіх працівників потрібного відділу по стажу роботи.
Сортування всіх працівників потрібного відділу по заробітній платі.
Добавлення нового працівника в потрібний відділ.
Добавлення нового відділу.
Видалення працівника по ідентифікатору.
Видалення працівника по прізвищу.
Видалення всіх працівників.
ось завдання яке зараз виконую
Пошук працівників по першій букві прізвища.
ось весь код
#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 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;
}
} while (choice > 0);
system("pause");
}
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);
}
ось код завдання
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);
}
}
ось помилка
"int strcmp (const char *, const char *)": неможливо перетворити аргумент 1 з "char" в "const char *" ряд 114