• Задан массив данных следующей структуры:Фамилия; Год рождения; Адрес; Мужчина: 1) военный; 2) заработная плата Женщина: 1) количество детей, 2) замужем или нет, 3) заработная плата. Составить программу с использованием структуры данных, которая обеспечивает ввод полученной информации, вывод ее в виде таблицы и обнаружение разницы между максимальной и минимальной заработной платой мужчин и женщин.В С++Как вывести(сделать) таблицу, которая будет нормально выглядеть из этого кода!!!!!!!#include #include #include 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;for (int i = 0; i < numPeople; i++)cout<< i+1<<" surname:"< 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 << "\nРазница между максимальной и минимальной заработной платой мужчин и женщин: " << diff << endl;}

Ответы 1

  • cout << i+1 << "\t" << people[i].name << "\t" << people[i].birthYear << "\t" << people[i].address << "\t";

    if (people[i].isMale) {

    cout << "M\t" << people[i].isMilitary << "\t\t\t";

    } else {

    cout << "F\t" << people[i].numChildren << "\t" << people[i].isMarried << "\t";

    }

    cout << people[i].salary << endl;Для вывода таблицы из этого кода можно использовать манипуляторы форматирования вывода, такие как setw() и setprecision(). Например, для вывода таблицы с именем, годом рождения и заработной платой людей можно использовать следующий код:

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

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

    cout << left << setw(20) << "Имя" << setw(10) << "Год" << setw(15) << "Заработная плата" << endl;

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

    cout << left << setw(20) << people[i].name << setw(10) << people[i].birthYear << fixed << setprecision(2) << setw(15) << people[i].salary << endl;

    }

    В этом коде setw() используется для задания ширины каждого поля в таблице, setprecision() - для вывода двух знаков после запятой в столбце с заработной платой, а left - для выравнивания текста по левому краю.

    Чтобы вывести таблицу, содержащую также информацию о поле, количестве детей и замужестве, можно добавить соответствующие столбцы и изменить ширину столбцов в соответствии с требуемым форматом.

    Например:

    cout << left << setw(20) << "Имя" << setw(10) << "Год" << setw(10) << "Пол" << setw(10) << "Дети" << setw(10) << "Замуж" << setw(15) << "Заработная плата" << endl;

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

    cout << left << setw(20) << people[i].name << setw(10) << people[i].birthYear << setw(10) << (people[i].isMale ? "М" : "Ж") << setw(10) << (people[i].isMale ? "-" : to_string(people[i].numChildren)) << setw(10) << (people[i].isMale ? "-" : (people[i].isMarried ? "Да" : "Нет")) << fixed << setprecision(2) << setw(15) << people[i].salary << endl;

    }

    Здесь to_string() используется для преобразования количества детей в строку для вывода в таблицу.

    answer img
    answer img
    answer img
    answer img
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years