Задан массив данных следующей структуры:
Фамилия; Год рождения; Адрес;
Мужчина: 1) военный; 2) заработная плата
Женщина: 1) количество детей, 2) замужем или нет, 3) заработная плата.
Составить программу с использованием структуры данных, которая обеспечивает ввод полученной информации, вывод ее в виде таблицы и обнаружение разницы между максимальной и минимальной заработной платой мужчин и женщин.В С++

Ответы

Ответ дал: pupkinll2016
0

Приведенный ниже код на C++ демонстрирует решение задачи с использованием структуры данных. Он запрашивает у пользователя информацию о людях, используя структуру Person, сохраняет данные в массив и выводит таблицу всех людей. Затем программа находит максимальную и минимальную заработную плату среди мужчин и женщин и выводит разницу.

Объяснение:

#include <iostream>

#include <string>

using namespace std;

// Структура данных для человека

struct Person {

string name;

int birthYear;

string address;

bool isMale;

bool isMilitary; // только для мужчин

int numChildren; // только для женщин

bool isMarried; // только для женщин

double salary; // только для мужчин и женщин

};

int main() {

const int MAX_PEOPLE = 100; // максимальное количество людей в базе данных

Person people[MAX_PEOPLE]; // массив для хранения информации о людях

int numPeople = 0; // текущее количество людей в базе данных

// Запрос информации о каждом человеке у пользователя

while (numPeople < MAX_PEOPLE) {

cout << "Введите информацию о человеке #" << numPeople + 1 << endl;

// Общая информация о человеке

cout << "Фамилия: ";

cin >> people[numPeople].name;

cout << "Год рождения: ";

cin >> people[numPeople].birthYear;

cout << "Адрес: ";

cin >> people[numPeople].address;

// Информация о поле и занятости

char gender;

cout << "Пол (M/F): ";

cin >> gender;

people[numPeople].isMale = (gender == 'M');

if (people[numPeople].isMale) {

cout << "Военный? (0/1): ";

cin >> people[numPeople].isMilitary;

} else {

cout << "Количество детей: ";

cin >> people[numPeople].numChildren;

cout << "Замужем? (0/1): ";

cin >> people[numPeople].isMarried;

}

// Информация о заработной плате

cout << "Заработная плата: ";

cin >> people[numPeople].salary;

// Запрос на продолжение ввода информации

char response;

cout << "Добавить еще человека? (Y/N): ";

cin >> response;

if (response != 'Y' && response != 'y') {

break;

}

numPeople++;

}

// Вывод таблицы с информацией о каждом человеке

cout << "Список людей:" << endl;

cout << "Фамилия\tГод рождения\tАдрес\tПол\tЗанятость\tДети\tЗамужем\tЗаработная плата" << endl;

for (int i = 0; i < numPeople; i++) {

cout

// Поиск максимальной и минимальной заработной платы среди мужчин и женщин

double maxMaleSalary = 0.0;

double minMaleSalary = numeric_limits<double>::max(); // начальное значение - максимальное возможное число

double maxFemaleSalary = 0.0;

double minFemaleSalary = numeric_limits<double>::max();

for (int i = 0; i < numPeople; i++) {

if (people[i].isMale) {

if (people[i].salary > maxMaleSalary) {

maxMaleSalary = people[i].salary;

}

if (people[i].salary < minMaleSalary) {

minMaleSalary = people[i].salary;

}

} else {

if (people[i].salary > maxFemaleSalary) {

maxFemaleSalary = people[i].salary;

}

if (people[i].salary < minFemaleSalary) {

minFemaleSalary = people[i].salary;

}

}

}

// Вычисление разницы между максимальной и минимальной заработной платой мужчин и женщин

double diff = maxMaleSalary - minMaleSalary - (maxFemaleSalary - minFemaleSalary);

cout << "Разница между максимальной и минимальной заработной платой мужчин и женщин: " << diff << endl;


melfoy: Спасибо,но тут нет обнаружения разницы между максимальной и минимальной заработной платой мужчин и женщин.
pupkinll2016: дописал
Вас заинтересует