Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Дан текс1товый файл, содержащий список фамилий. В списке
- //содержатся мужские и женские фамилии (признаком женской фамилии
- //является наличие окончания – а). Разработать программу, которая сначала
- //выводила мужские фамилии, отсортированные в алфавитном порядке, затем
- //женские, отсортированные в обратном порядке. Результаты работы
- //программы выводятся в файл
- #include "pch.h"
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <vector>
- #include <algorithm>
- #include <Windows.h>
- using namespace std;
- bool isFemale(string surname) {
- return (surname.back() == 'а');
- }
- bool compare(string a, string b) {
- return (a < b);
- }
- void check(ifstream &file, vector<string> &male_surnames, vector<string> &female_surnames) {
- string surname;
- while (file >> surname) {
- if (isFemale(surname))
- female_surnames.push_back(surname);
- else
- male_surnames.push_back(surname);
- }
- }
- void sort_all(vector<string>& male_surnames, vector<string>& female_surnames) {
- sort(male_surnames.begin(), male_surnames.end(), compare);
- sort(female_surnames.begin(), female_surnames.end(), compare);
- reverse(female_surnames.begin(), female_surnames.end());
- }
- void print_all(vector<string>& male_surnames, vector<string>& female_surnames) {
- cout << "Мужские фамилии:" << endl;
- for (string name : male_surnames)
- {
- cout << name << endl;
- }
- cout << "Женские фамилии:" << endl;
- for (string name : female_surnames)
- cout << name << endl;
- }
- void save(vector<string>& male_surnames, vector<string>& female_surnames) {
- ofstream out("C:\\Users\\User128\\source\\repos\\ConsoleApplication13\\output.txt");
- for (string name : male_surnames)
- out << name << endl;
- for (string name : female_surnames)
- out << name << endl;
- out.close();
- }
- vector<string> male_surnames, female_surnames;
- int main() {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- ifstream file("C:\\Users\\User128\\source\\repos\\ConsoleApplication13\\input.txt");
- if (!file.is_open()) {
- cout << "Error opening file!" << endl;
- return 0;
- }
- check(file, male_surnames, female_surnames);
- sort_all(male_surnames, female_surnames);
- print_all(male_surnames, female_surnames);
- save(male_surnames, female_surnames);
- file.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement