C/C++
Решить задачу с++. Структуры.
Создать список работников предприятия (количество запрашивается с клавиатуры), содержащий: фамилию, стаж работы и заработную плату. Вывести этот список в виде таблицы. Получить список тех, у кого заработная плата ниже прожиточного минимума (4000 рублей), если таких нет, то вывести сообщение об этом
#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
using namespace std;
struct Worker {
string surname;
int experience;
int wages;
};
// оператор ввода
istream& operator >> (istream& c_in, Worker& worker) {
return c_in >> worker.surname >> worker.experience >> worker.wages;
}
// оператор вывода
ostream& operator << (ostream& c_out, const Worker& worker) {
c_out << setw(15) << worker.surname;
c_out << setw(6) << worker.experience;
return c_out << setw(10) << worker.wages;
}
int main() {
int num_workers = 0, ind = 1;
cin >> num_workers;
vector<Worker> workers(num_workers);
for (auto& worker : workers) {
cout << "Введите фамилию, стаж работы и заработную плату " << ind++ << "-го рабочего: \n";
cin >> worker;
}
int count = 0;
cout << "\nВсе работники: \n";
for (const auto& w : workers) {
cout << w << "\n";
count += w.wages < 4000;
}
if (count != 0) {
cout << "\n" << count << " работников с заработной платой ниже прожиточного минимума: \n";
for (const auto& w : workers) {
if (w.wages < 4000) cout << w << "\n";
}
} else {
cout << "\nРаботников с заработной платой ниже прожиточного минимума нет. \n";
}
}
#include <iomanip>
#include <vector>
#include <string>
using namespace std;
struct Worker {
string surname;
int experience;
int wages;
};
// оператор ввода
istream& operator >> (istream& c_in, Worker& worker) {
return c_in >> worker.surname >> worker.experience >> worker.wages;
}
// оператор вывода
ostream& operator << (ostream& c_out, const Worker& worker) {
c_out << setw(15) << worker.surname;
c_out << setw(6) << worker.experience;
return c_out << setw(10) << worker.wages;
}
int main() {
int num_workers = 0, ind = 1;
cin >> num_workers;
vector<Worker> workers(num_workers);
for (auto& worker : workers) {
cout << "Введите фамилию, стаж работы и заработную плату " << ind++ << "-го рабочего: \n";
cin >> worker;
}
int count = 0;
cout << "\nВсе работники: \n";
for (const auto& w : workers) {
cout << w << "\n";
count += w.wages < 4000;
}
if (count != 0) {
cout << "\n" << count << " работников с заработной платой ниже прожиточного минимума: \n";
for (const auto& w : workers) {
if (w.wages < 4000) cout << w << "\n";
}
} else {
cout << "\nРаботников с заработной платой ниже прожиточного минимума нет. \n";
}
}
#include <iostream>
#include <string>
using namespace std;
struct rp
{
string surname; // фамилия
double experience; // стаж
double salary; // зарплата
};
void data_entry (struct rp list[], int size)
{ // ввод данных в структуру
for (int x=0; x<size; x++)
{
cout << "Введите фамилию: ";
cin >> list[x].surname;
cout << "Введите стаж (лет): ";
cin >> list[x].experience;
cout << "Введите зарплату (руб.): ";
cin >> list[x].salary;
}
}
void print_min(struct rp list[], int size, const int min)
{ // Печатать список сотрудников с зарплатой ниже минимума.
int count = 0;
for (int x = 0; x < size; x++)
{
if (list[x].salary < min)
{
cout << list[x].surname << '\t';
cout << list[x].experience << '\t';
cout << list[x].salary << endl;
count++;
}
}
if (!count)
{
cout << "Нет сотрудников с зарплатой меньше "
<< "прожиточного минимума." << endl;
}
}
int main()
{
const int min = 4000;
int size;
cout << "Введите число сотрудников: ";
cin >> size;
rp list[size];
data_entry (list, size);
print_min(list, size, min);
return 0;
}

#include <string>
using namespace std;
struct rp
{
string surname; // фамилия
double experience; // стаж
double salary; // зарплата
};
void data_entry (struct rp list[], int size)
{ // ввод данных в структуру
for (int x=0; x<size; x++)
{
cout << "Введите фамилию: ";
cin >> list[x].surname;
cout << "Введите стаж (лет): ";
cin >> list[x].experience;
cout << "Введите зарплату (руб.): ";
cin >> list[x].salary;
}
}
void print_min(struct rp list[], int size, const int min)
{ // Печатать список сотрудников с зарплатой ниже минимума.
int count = 0;
for (int x = 0; x < size; x++)
{
if (list[x].salary < min)
{
cout << list[x].surname << '\t';
cout << list[x].experience << '\t';
cout << list[x].salary << endl;
count++;
}
}
if (!count)
{
cout << "Нет сотрудников с зарплатой меньше "
<< "прожиточного минимума." << endl;
}
}
int main()
{
const int min = 4000;
int size;
cout << "Введите число сотрудников: ";
cin >> size;
rp list[size];
data_entry (list, size);
print_min(list, size, min);
return 0;
}

Похожие вопросы
- Помогите решить задачу на структуры в Си.
- [C++] Помогите написать задачу на структуры!
- Основы программирования. Решение задач. Обработка структур. Программа.
- Задача на структуры данных, очереди и стек, не могу понять что делаю нет так?
- Решите задачу на с++, или хотя бы скажите идею как это вообще решать пожалуйста.
- Решите задачу на любом языке, или хотя бы скажите идею как это вообще решать пожалуйста.
- Помогите решить задачу по программированию на C++
- Решите задачу на любом языке. Желательно на с++.
- [C++] Задача на структуры
- Помогите решить задачу по C++!