x2311

Untitled

Jun 7th, 2022
961
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.08 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <sstream>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8. struct User_info {
  9.     string last_name = ""; //фамилия
  10.     int house_number = 0; //номер дома
  11.     int debt_apartment = 0; //заборгованість за квартиру
  12. };
  13.  
  14. /**
  15.  *  Створити файл структур із полями: прізвище, номер дому, заборгованість за квартиру.
  16.  *  Упорядкувати цей файл за зростанням номеру дому, а в межах одного дому – за
  17.  *  зростанням заборгованості.
  18.  *
  19.  * @return
  20.  */
  21. int main() {
  22.     ifstream file("user_info.txt");
  23.     string line;
  24.     vector<User_info> user;
  25. // запись информации о пользователе
  26.     while (getline(file, line)) {
  27.         stringstream ss(line);
  28.         User_info info_user;
  29.         ss >> info_user.last_name;
  30.         ss >> info_user.house_number;
  31.         ss >> info_user.debt_apartment;
  32.         user.push_back(info_user);
  33.     }
  34. //  Упорядкувати цей файл за зростанням номеру дому, а в межах одного дому – за
  35. //  зростанням заборгованості.
  36.     for (int i = 0; i < int(user.size()); i++) {
  37.         for (int j = 0; j < int(user.size()) - 1; j++) {
  38.             if (user[j + 1].house_number > user[j].house_number) {
  39.                 swap(user[j], user[j + 1]);
  40.             } else if (user[j + 1].house_number == user[j].house_number &&
  41.                        user[j + 1].debt_apartment < user[j].debt_apartment) {
  42.                 swap(user[j], user[j + 1]);
  43.             }
  44.         }
  45.  
  46.     }
  47.     // вывод результата на экран
  48.     for (int i = int(user.size()) - 1; i >= 0; i--) {
  49.         cout << "Last name : " << user[i].last_name << endl
  50.              << "House number:" << user[i].house_number << endl
  51.              << "Debt for the apartment:" << user[i].debt_apartment << endl << endl;
  52.     }
  53.  
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment