С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 39
1

Отсортировать и вывести в файл сотрудников в порядке убывания окладов, по алфавиту (использовать sort)

09.11.2020, 23:02. Показов 737. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Отсортировать и вывести в файл сотрудников в порядке убывания окладов, по алфавиту (использовать sort).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2020, 23:02
Ответы с готовыми решениями:

Вывести на экран и в отдельный файл список сотрудников по отделам в порядке убывания стажа
Создать файл, содержащий информацию о сотрудниках предприятия. Каждая запись содержит: фамилию,...

Отсортировать элементы вектора в порядке убывания, не используя встроенные функции, включая sort()
Здравствуйте! Прошу помощи. Есть вектор: А=(1 3 6 4 8 3) Надо отсортировать элементы в порядке...

Массив строк отсортировать в лексикографическом порядке (возможно ли использовать std::sort?)
У меня есть такая задача: надо массив строк отсортировать в лексикографическом порядке. Так вот,...

Вывести списки сотрудников по отделам в порядке убывания стажа
Delphi

4
329 / 149 / 33
Регистрация: 29.06.2019
Сообщений: 1,429
10.11.2020, 20:38 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm> 
 
using namespace std;
 
struct employee
{
    int ID;
    string Surname;
    double salary;
    
    friend ostream &operator<<(ostream &stream, const employee &ob);
};
 
ostream &operator<<(ostream &stream, const employee &ob)
{
    stream << ob.Surname << ' ' << ob.salary << '\n';
    return stream;
}
 
std::vector<employee> nn = {
    {1, "A", 100},
    {2, "D", 49.55},
    {3, "V", 59.1}
};
 
bool operator < (const employee& emp1, const employee& emp2)
{
    return emp1.salary > emp2.salary;
}
 
int main()
{
    // создать файл для записи
    ofstream out("test.txt");
 
    if(!out) {
        cout << "Файл открыть невозможно\n";
        return 1;
    }
    
    // отсортировать сотрудников  
    std::sort(nn.begin(), nn.end()); 
 
    // вывод на консоль и в файл
    for (int i = 0; i < nn.size(); ++i){
    //std::cout << nn[i].salary << " " << nn[i].Surname << " " << nn[i].ID << '\n';
        std::cout << nn[i];
        out << nn[i];
    }
 
    // закрыть файл
    out.close();
    
  return 0;
}
Добавлено через 6 минут
P.S. вместо перегрузки оператора< можно в main'e сделать std::sort с лямбдой
C++
1
2
3
4
5
std::sort(nn.begin(), nn.end(), [](const employee& emp1, const employee& emp2) -> bool
    { 
        return emp1.salary > emp2.salary;
    }
);
Добавлено через 3 минуты
Цитата Сообщение от Аня20 Посмотреть сообщение
по алфавиту
не делала
1
329 / 149 / 33
Регистрация: 29.06.2019
Сообщений: 1,429
11.11.2020, 08:09 3
Цитата Сообщение от Аня20 Посмотреть сообщение
по алфавиту
переопределение оператора< такое
C++
1
2
3
4
5
6
7
bool operator < (const employee& emp1, const employee& emp2)
{
        if (emp1.salary > emp2.salary ||
        emp1.salary==emp2.salary && emp1.Surname<emp2.Surname )
    return true;
    else return false;
}
- пример отсюда
1
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
11.11.2020, 10:35 4
Как вариант.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
struct employee
{
    int ID;
    string m_surname;
    double m_salary;
 
    friend ostream &operator<<(ostream &stream, const employee &ob);
};
 
ostream &operator<<(ostream &stream, const employee &ob)
{
    stream << ob.m_surname << ' ' << ob.m_salary << '\n';
    return stream;
}
 
std::vector<employee> nn = {
    {1, "Ba", 100},
    {2, "Bu", 49.55},
    {3, "Bc", 59.1},
    {1, "Bm", 100},
    {2, "Bp", 49.55},
    {3, "Bf", 59.1},
    {1, "Aa", 10},
    {2, "Au", 10},
    {3, "Ac", 11}
};
 
bool operator < (const employee& emp1, const employee& emp2)
{
    bool ret=false;
    if(emp1.m_salary < emp2.m_salary) ret= true;
    if(emp1.m_salary == emp2.m_salary)  ret= emp1.m_surname < emp2.m_surname;
    return ret ;
}
 
int main()
{
std::sort(nn.begin(), nn.end()) ;
for(const auto &el:nn)std::cout<<el<<'\n' ;
 
return 0;
}
1
329 / 149 / 33
Регистрация: 29.06.2019
Сообщений: 1,429
12.11.2020, 19:22 5
Цитата Сообщение от JeyCi Посмотреть сообщение
переопределение
перегрузка - хотела сказать
0
12.11.2020, 19:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2020, 19:22
Помогаю со студенческими работами здесь

Вывести список сотрудников по отделам в порядке убывания стажа
Информация о сотрудниках предприятия содержит: - Ф.И.О.; - номер отдела; - должность; - дату...

Вывести списки сотрудников по отделам в порядке убывания стажа.
Информация о сотрудниках предприятия содержит: Ф.И.О., номер отдела, должность, дату начала работы....

Вывести списки сотрудников по отделам в порядке убывания стажа в DataGridView
Задание: Информация о сотрудниках предприятия содержит: Ф.И.О., номер отдела, должность, дату...

Структуры: вывести список сотрудников по отделам в порядке убывания стажа
сейчас новичок в программировании народ помогите пожалуйста где у меня тут ошибка? задание: ....

Дан файл. Надо отсортировать этот файл в порядке убывания длин его строк
Помогите, плиз. Очень надо. Дан файл. Надо отсортировать этот файл в порядке убывания длин его...

Отсортировать столбцы матрицы в порядке убывания и вывести результат на экран
Дан текстовый файл, в нем числа 3x3. Задача: отсортировать столбцы матрицы в порядке убывания и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru