C/C++
Помогите написать код на С++
В населенном пункте проживает N человек. О каждом известны фамилия-имя-отчество, возраст, пол. Ввести информацию о жителях данного пункта и посчитать количество женщин и мужчин, вывести информацию о тех, кого больше. Отсортировать массив структур по фамилиям жителей, вывести отсортированный массив
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void clear(istream& inp) {
inp.ignore(numeric_limits<streamsize>::max(), '\n');
}
class Person {
public:
int get_sex()const {
return sex;
}
private:
int age;
int sex;
string name;
friend bool operator<(const Person& a, const Person& b) {
return a.name < b.name;
}
friend istream& operator>>(istream& inp, Person& p) {
cout << "Ф.И.О.: ";
getline(inp, p.name);
cout << "Возраст: ";
cin >> p.age;
do {
cout << "Пол (1 - для мужского, 0 - для женского): ";
inp >> p.sex;
} while (p.sex < 0 || p.sex > 1);
clear(inp);
return inp;
}
friend ostream& operator<<(ostream& out, const Person& p) {
return out << p.name << ", " << p.age << ", " << (p.sex ? "мужской" : "женский");
}
};
int main() {
system("chcp 1251 > nul");
cout << "Количество жителей: ";
size_t length;
cin >> length;
clear(cin);
vector<Person> persons(length);
for (auto& person : persons) cin >> person;
sort(persons.begin(), persons.end());
auto male = 0U;
auto female = 0U;
system("cls");
for (const auto& person : persons) {
cout << person << '\n';
person.get_sex() ? ++male : ++female;
}
cout << "\nМужчин: " << male << "\nЖенщин: " << female << '\n';
system("pause > nul");
}
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void clear(istream& inp) {
inp.ignore(numeric_limits<streamsize>::max(), '\n');
}
class Person {
public:
int get_sex()const {
return sex;
}
private:
int age;
int sex;
string name;
friend bool operator<(const Person& a, const Person& b) {
return a.name < b.name;
}
friend istream& operator>>(istream& inp, Person& p) {
cout << "Ф.И.О.: ";
getline(inp, p.name);
cout << "Возраст: ";
cin >> p.age;
do {
cout << "Пол (1 - для мужского, 0 - для женского): ";
inp >> p.sex;
} while (p.sex < 0 || p.sex > 1);
clear(inp);
return inp;
}
friend ostream& operator<<(ostream& out, const Person& p) {
return out << p.name << ", " << p.age << ", " << (p.sex ? "мужской" : "женский");
}
};
int main() {
system("chcp 1251 > nul");
cout << "Количество жителей: ";
size_t length;
cin >> length;
clear(cin);
vector<Person> persons(length);
for (auto& person : persons) cin >> person;
sort(persons.begin(), persons.end());
auto male = 0U;
auto female = 0U;
system("cls");
for (const auto& person : persons) {
cout << person << '\n';
person.get_sex() ? ++male : ++female;
}
cout << "\nМужчин: " << male << "\nЖенщин: " << female << '\n';
system("pause > nul");
}
Похожие вопросы
- Помогите написать код
- Помогите написать код с файлами C++
- Помогите написать код с файлами C++
- Программирование на C++ .Помогите написать код.
- ПРОШУ, ПОМОГИТЕ НАПИСАТЬ КОД C++
- Помогите написать код решения уравнения, желательно на с++
- Помогите написать код (как можно примитивнее)
- Помогите написать код c++
- Помогите написать код на Си, по теме "строки".
- Помогите написать код C++