Вопрос задан 08.06.2023 в 14:10. Предмет Информатика. Спрашивает Гафуров Юсуф.

Задан массив данных следующей структуры: Фамилия; Год рождения; Адрес; Мужчина: 1) военный; 2)

заработная плата Женщина: 1) количество детей, 2) замужем или нет, 3) заработная плата. Составить программу с использованием структуры данных, которая обеспечивает ввод полученной информации, вывод ее в виде таблицы и обнаружение разницы между максимальной и минимальной заработной платой мужчин и женщин.В С++
0 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;

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

cpp
#include <iostream> #include <string> #include <vector> struct Person { std::string surname; int birthYear; std::string address; char gender; // 'M' for male, 'F' for female union { struct { bool isMilitary; double salary; } maleData; struct { int numChildren; bool isMarried; double salary; } femaleData; }; }; int main() { std::vector<Person> people; // Ввод информации о людях int numPeople; std::cout << "Введите количество людей: "; std::cin >> numPeople; for (int i = 0; i < numPeople; ++i) { Person person; std::cout << "Введите фамилию: "; std::cin >> person.surname; std::cout << "Введите год рождения: "; std::cin >> person.birthYear; std::cout << "Введите адрес: "; std::cin >> person.address; std::cout << "Введите пол (M - мужчина, F - женщина): "; std::cin >> person.gender; if (person.gender == 'M') { std::cout << "Военный? (1 - да, 0 - нет): "; std::cin >> person.maleData.isMilitary; std::cout << "Введите заработную плату: "; std::cin >> person.maleData.salary; } else if (person.gender == 'F') { std::cout << "Введите количество детей: "; std::cin >> person.femaleData.numChildren; std::cout << "Замужем? (1 - да, 0 - нет): "; std::cin >> person.femaleData.isMarried; std::cout << "Введите заработную плату: "; std::cin >> person.femaleData.salary; } people.push_back(person); } // Вывод информации в виде таблицы std::cout << "\nИнформация о людях:\n"; std::cout << "---------------------------------------------------------\n"; std::cout << "Фамилия\t\tГод рождения\tАдрес\t\t\tПол\t\tЗарплата\n"; std::cout << "---------------------------------------------------------\n"; for (const Person& person : people) { std::cout << person.surname << "\t\t" << person.birthYear << "\t\t" << person.address << "\t\t" << (person.gender == 'M' ? "Мужчина\t\t" : "Женщина\t\t"); if (person.gender == 'M') { std::cout << (person.maleData.isMilitary ? "Военный\t" : "
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос