С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
La Morte
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 30
1

Сортировка структуры по алфавиту

13.10.2017, 14:14. Просмотров 141. Ответов 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<cstdlib>
#include <clocale>
#include <Windows.h>
using namespace std;
int const col = 3;
int n;
struct TRAIN
{
    char destination[40];
    int nomer_poizda;
    char departure_time[20];
 
}depot[col];
 
void AddInfo()
{
 
 
    cout<<"Введите кол-во записей:\n";
    cin>>n;
    for (int i=1; i<n+1; i++){
        cout<<"Введите название конечного пункта["<<i<<"]:\n";
        cin>>depot[i].destination;
        cout<<"Введите номер поезда["<<i<<"]:\n";
        cin>>depot[i].nomer_poizda;
        cout<<"Введите время отправления["<<i<<"]:\n";
        cin>>depot[i].departure_time;
 
    }
}
 
void Searchtime(char *departure_time)
{
        for(int i=1; i < n+1;i++){
                if (strcmp(departure_time, depot[i].departure_time)==0){
                        cout<<"Конечный пункт: "<<depot[i].destination<<"\n";
                        cout<<"Номер поезда: "<<depot[i].nomer_poizda<<"\n";
                        cout<<"Время отправления: "<<depot[i].departure_time<<"\n";
 
                }
                else
                    cout<<"Нет доступного рейса\n";
        }
 
}
 
 
 
void ShowAll()
{
 
    for (int i=1; i<n+1; i++){
 
    cout<<"Конечный пункт: "<<depot[i].destination<<"\n";
    cout<<"Номер поезда: "<<depot[i].nomer_poizda<<"\n";
    cout<<"Время отправления: "<<depot[i].departure_time<<"\n";
    }
}
 
 
 
int main()
{
    char destination[40], departure_time[20], choice;
    int nomer_poizda;
    SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
    SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
    do{
        cout << "Меню: \n";
        cout << "1.Добавление нового рейса\n 2.Поиск рейса по времени \n 3.Все рейсы \n 4.Выход \n";
        cin >> choice;
        switch(choice)
        {
        case '1' :
            AddInfo();
        break;
        case '2' :
            cout << "Введите время отправления \n";
            cin >> departure_time;
            Searchtime(departure_time);
        break;
        case '3' :
            ShowAll();
        break;
        case '4' :
            exit(0);
        break;
        }
    }
    while(choice!='4');
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2017, 14:14
Ответы с готовыми решениями:

Сортировка Структуры по алфавиту
подскажите как сортировать фамилии по алфавиту? struct WORKER{ char...

Сортировка по алфавиту структуры
Прошу помощи, так как уже просто несколько дней подряд никак не получается...

Сортировка структуры по алфавиту
Здравствуйте, написал прогу, но с сортировкой не получается, и извините, что...

Структуры.Сортировка фамилий по алфавиту
Не могу отсортировать по фамилиям.Необходимо использовать функцию bool...

Сортировка записей Структуры по алфавиту
#include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; struct STUD //...

3
zss
Модератор
Эксперт С++
7494 / 6857 / 4330
Регистрация: 18.12.2011
Сообщений: 18,149
Завершенные тесты: 1
13.10.2017, 14:24 2
1. Что-то я не вижу тут сортировки....

2. Почему Вы не используете нулевой элемент массива (всегда начинаете с первого)?

3.
Цитата Сообщение от La Morte Посмотреть сообщение
int const col = 3;
Если Вы введете n>=3, то будет выход за границы
(depot[col-1] - последний элемент массива).
0
La Morte
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 30
13.10.2017, 15:03  [ТС] 3
zss,переделал,но как сделать сортировку не понимаю
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<cstdlib>
#include <clocale>
#include <Windows.h>
using namespace std;
int const col = 8;
int n;
struct TRAIN
{
    char destination[40];
    int nomer_poizda;
    char departure_time[20];
 
}depot[col];
 
void AddInfo()
{
 
 
    cout<<"Введите кол-во записей:\n";
    cin>>n;
    for (int i=0; i<n; i++){
        cout<<"Введите название конечного пункта["<<i+1<<"]:\n";
        cin>>depot[i].destination;
        cout<<"Введите номер поезда["<<i+1<<"]:\n";
        cin>>depot[i].nomer_poizda;
        cout<<"Введите время отправления["<<i+1<<"]:\n";
        cin>>depot[i].departure_time;
 
    }
}
 
void Searchtime(char *departure_time)
{
        for(int i=0; i < n;i++){
                if (strcmp(departure_time, depot[i].departure_time)==0){
                        cout<<"Конечный пункт: "<<depot[i].destination<<"\n";
                        cout<<"Номер поезда: "<<depot[i].nomer_poizda<<"\n";
                        cout<<"Время отправления: "<<depot[i].departure_time<<"\n";
 
                }
                else
                    cout<<"Нет доступного рейса\n";
        }
 
}
 
 
 
void ShowAll()
{
 
    for (int i=0; i<n; i++){
 
    cout<<"Конечный пункт: "<<depot[i].destination<<"\n";
    cout<<"Номер поезда: "<<depot[i].nomer_poizda<<"\n";
    cout<<"Время отправления: "<<depot[i].departure_time<<"\n";
    }
}
 
 
 
int main()
{
    char destination[40], departure_time[20], choice;
    int nomer_poizda;
    SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
    SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
    do{
        cout << "Меню: \n";
        cout << "1.Добавление нового рейса\n 2.Поиск рейса по времени \n 3.Все рейсы \n 4.Выход \n";
        cin >> choice;
        switch(choice)
        {
        case '1' :
            AddInfo();
        break;
        case '2' :
            cout << "Введите время отправления \n";
            cin >> departure_time;
            Searchtime(departure_time);
        break;
        case '3' :
            ShowAll();
        break;
        case '4' :
            exit(0);
        break;
        }
    }
    while(choice!='4');
}
0
zss
Модератор
Эксперт С++
7494 / 6857 / 4330
Регистрация: 18.12.2011
Сообщений: 18,149
Завершенные тесты: 1
13.10.2017, 15:34 4
Можно, например, для структур определить operator<
C++
1
2
3
4
5
6
7
8
9
10
11
struct TRAIN
{
    char destination[40];
    int nomer_poizda;
    char departure_time[20];
    bool operator<(TRAIN& t2)
    {
        return strcmp(destination,t2.destination)==-1; // сортировка по destination
    }
 
}
C++
1
2
3
4
5
#include <algorithm>
...
        case '3' :
          sort(depot,depot+n);
            ShowAll();
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2017, 15:34

Структуры, упорядочение по алфавиту
будьте добры, помогите упорядочить фамилии по алфавиту! что-то совсем не...

Упорядочение элементов структуры по алфавиту
следущий код программы упорядочивает элементы структур по номеру тоесть по...

Отсортировать элементы структуры по алфавиту.
друзья, не подскажите как отортировать элементы структуры по алфавиту???


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru