Задан массив данных следующей структуры:
Фамилия; Год рождения; Адрес;
Мужчина: 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;
}
Answers & Comments
Відповідь:
Надіюсь допомогла!!!(УКРАЇНА)
Пояснення:
Для вывода таблицы с информацией о каждом человеке можно воспользоваться функцией setw() из библиотеки iomanip. Эта функция позволяет установить ширину выводимого поля, что позволит выровнять столбцы таблицы. Вот пример, как можно модифицировать код для вывода таблицы:
#include <iostream>
#include <iomanip>
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 << "\nСписок людей:" << endl;
cout << setw(4) << "№" << setw(20) << "Фамилия" << setw(10) << "Год рожд." << setw(20) << "Адрес" << setw(10) << "Пол" << setw(10) << "Военный" << setw(10) << "Дети" << setw(10) << "Замужем" <<