Другие языки программирования и технологии

Программа на C++

Помогите, пожалуйста написать программу на C++, где каждая строка массива содержала бы информацию о работнике предприятия: "номер
подразделения", "табельный номер работника", "Количество рабочих дней в месяце", "Количество часов в
первый рабочий день месяца", "Количество часов во второй рабочий день месяца", .."Количество часов в
последний рабочий день месяца". Рабочий день отмечается как 8 часов. Спасибо огромное, заранее
Кц 74
Кц 74
107
Откройте для себя структуры и вектора!
#include <string>
#include <vector>
struct Worker {
short days_in_month;
std::string division_number;
std::string personnel_number;
std::vector<short> hours;
};
https://msdn.microsoft.com/ru-ru/library/64973255.aspx
ВМ
Вячеслав Межов
66 056
Лучший ответ
На основе кода Николая Веселухи, что указан выше я написал только заполнение вектора экземплярами структуры.
>Откройте для себя структуры и вектора
Полностью поддерживаю. Рекомендую всем изучать вектора особенно.

#include < iostream >
#include < string >
#include < vector >
#include < algorithm >

using namespace std;

struct Worker {
short days_in_month;
string division_number;
string personnel_number;
vector < short > hours;
};

struct In
{
Worker operator()()
{
static int u = 1;
Worker t;
cout << "Рабочий " << u << endl;
++u;
cout << "Введите количество рабочих дней в месяце ";
cin >> t.days_in_month;
cout << "Введите номер подразделения ";
cin >> t.division_number;
cout << "Введите табельный номер ";
cin >> t.personnel_number;
vector < short > s(t.days_in_month);
int k = 1;
auto z = [&s, k]() mutable
{
short h;
cout << "Введите количество часов в " << k << " рабочий день месяца ";
++k;
cin >> h;
return h;
};
generate(s.begin(), s.end(), z);
t.hours = s;
return t;
}
}Inn;

void main()
{
setlocale(LC_ALL, "rus");
cout << "Введите число рабочих ";
int n;
cin >> n;
vector < Worker > WW(n);
generate(WW.begin(), WW.end(), Inn);
cin.get(); cin.get();
}
Андрей Петров
Андрей Петров
8 552