Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
1 / 0 / 1
Регистрация: 18.02.2020
Сообщений: 23

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

02.04.2020, 22:28. Показов 5455. Ответов 3

Студворк — интернет-сервис помощи студентам
сейчас новичок в программировании народ помогите пожалуйста где у меня тут ошибка?
задание: . Информация о сотрудниках предприятия содержит:
- Ф.И.О.;
- номер отдела;
- должность;
- дату начала работы.
- Вывести список сотрудников по отделам в порядке убывания стажа


и вот соответственно сам код
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
59
#include <iostream>
#include <conio.h>
#include <clocale>
using namespace std;
struct rabotniki
{
    char FIO[50];
    int nomer_otdela;
    char dolzhnost[30];
    int nachalo_raboty;
};
void show(const rabotniki obj[], int N);
int main() {
    const int N = 5;
    rabotniki mas[N] = {};
    for (int i = 0; i < N; i++) {
        cout << " FIO ";
        cin.getline(mas[i].FIO, 50);
        cout << endl;
        cout << endl;
        cout << " Nomer otdela ";
        cin >> mas[i].nomer_otdela;
        cout << endl;
        cout << endl;
        cout << " Dolzhnost ";
        cin >> mas[i].dolzhnost;
        cout << endl;
        cout << endl;
        cout << "Nachalo raboty ";
        cin >> mas[i].nachalo_raboty;
        cout << endl;
        cout << endl;
        cin.get();
    }
    show(mas, N);
    system("pause");
 
}
void show(const rabotniki obj[], int N)
{
    for (int i = 0; i < N; i++) {
        cout << "\n FIO : \t" << obj[i].FIO << "\t Nomer otdela : \t" << obj[i].nomer_otdela << "\t Dolzhnost : \t" << obj[i].dolzhnost << "\t Nachalo raboty : \t" << obj[i].nachalo_raboty << endl;
 
    }
    int temp;
    for (int i = 0; i < N - 1; i++) {
        for (int j = 0; j < N - i - 1; j++) {
            if (obj[j].nachalo_raboty > obj[j + 1].nachalo_raboty) {
                int temp = obj[i].nachalo_raboty;
                obj[i].nachalo_raboty = obj[j + 1].nachalo_raboty;
                obj[j + 1].nachalo_raboty = temp;
            }
        }
    }
    for (int i = 0; i < N; i++) {
        cout << "\n FIO : \t" << obj[i].FIO << "\t Nomer otdela : \t" << obj[i].nomer_otdela << "\t Dolzhnost : \t" << obj[i].dolzhnost << "\t Nachalo raboty : \t" << obj[i].nachalo_raboty << endl;
 
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2020, 22:28
Ответы с готовыми решениями:

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

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

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

3
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
02.04.2020, 23:11
Цитата Сообщение от Altynay02 Посмотреть сообщение
где у меня тут ошибка?
Цитата Сообщение от Altynay02 Посмотреть сообщение
void show(const rabotniki obj[], int N);
const запрещает вам изменять данные в этой функции, т.е. сортировать внутри неё не получится.
Цитата Сообщение от Altynay02 Посмотреть сообщение
C++
1
2
3
int temp = obj[i].nachalo_raboty;
obj[i].nachalo_raboty = obj[j + 1].nachalo_raboty;
obj[j + 1].nachalo_raboty = temp;
Вы тут не работников обмениваете, а только значения одного поля
1
1 / 0 / 1
Регистрация: 18.02.2020
Сообщений: 23
07.04.2020, 13:55  [ТС]
а как тогда изменить чтобы правильно сортировало? и мне надо потом вывести это все
0
 Аватар для Krasme
7244 / 5097 / 2151
Регистрация: 02.02.2014
Сообщений: 13,458
07.04.2020, 16:29
Лучший ответ Сообщение было отмечено Altynay02 как решение

Решение

поправки в коде.. базу данных лучше выводить в табличном виде (красоту подредактируйте самостоятельно)

Кликните здесь для просмотра всего текста
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <clocale>
using namespace std;
struct rabotniki
{
    char FIO[50];
    int nomer_otdela;
    char dolzhnost[30];
    int nachalo_raboty;
};
void show(rabotniki obj[], int N);
 
int main() {
    const int N = 3;
    rabotniki mas[N] = {};
    for (int i = 0; i < N; i++) {
        cout << " FIO ";
        cin.getline(mas[i].FIO, 50);
        cout << " Nomer otdela ";
        cin >> mas[i].nomer_otdela;
        cout << " Dolzhnost ";
        cin >> mas[i].dolzhnost;
        cout << "Nachalo raboty ";
        cin >> mas[i].nachalo_raboty;
        cin.get();
    }
    show(mas, N);
    system("pause");
    return 0; 
}
 
void show(rabotniki obj[], int N)
{
    rabotniki tmp;
 
    cout << setw(10)<<"FIO :"
         << setw(10)<<"Nomer otdela :"
         << setw(10)<<"Dolzhnost :"
         << setw(10)<<"Nachalo raboty :"
         << endl<<endl;
 
    for (int i = 0; i < N; i++) {
        cout << setw(10)<< obj[i].FIO 
             << setw(10)<< obj[i].nomer_otdela 
             << setw(10)<< obj[i].dolzhnost 
             << setw(10)<< obj[i].nachalo_raboty 
             << endl<<endl;
     } 
    
    for (int i = 0; i < N - 2; i++) {
        for (int j = i; j < N - 1; j++) {
            if (obj[j].nachalo_raboty < obj[j + 1].nachalo_raboty) {
                tmp = obj[i];
                obj[i] = obj[j];
                obj[j] = tmp;
            }
        }
    }
   cout << setw(10)<<"FIO :"
         << setw(10)<<"Nomer otdela :"
         << setw(10)<<"Dolzhnost :"
         << setw(10)<<"Nachalo raboty :"
         << endl<<endl;
 
    for (int i = 0; i < N; i++) {
        cout << setw(10)<< obj[i].FIO 
             << setw(10)<< obj[i].nomer_otdela 
             << setw(10)<< obj[i].dolzhnost 
             << setw(10)<< obj[i].nachalo_raboty 
             << endl<<endl;
     } 
     
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.04.2020, 16:29
Помогаю со студенческими работами здесь

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

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

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

Вывести список сотрудников пенсионного возраста на сегодняшний день с указанием стажа работы
Есть созданный файл, который содержит сведения о сотрудниках института. Структура записи: фамилия сотрудника, название отдела, год...

Сортировка структуры сотрудников по убыванию стажа
Доброго времени суток! Уже обыскался весь форум на наличие рабочей программы по данной структурной сортировке сотрудников. Помогите...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru