Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
stalker033
0 / 0 / 0
Регистрация: 02.03.2014
Сообщений: 11
#1

Сортировка в массиве структур - C++

02.03.2014, 16:53. Просмотров 166. Ответов 0
Метки нет (Все метки)

Проблема следующая: необходимо добавить сортировку по какому-либо признаку, но я понятия не имею, как сделать ее работая с массивами структур. Была идея сравнения полей line\time, но типы в структуре прописаны как string и вычисления проводить не получается, при попытке изменить тип переменных выдает различные ошибки. Так же в конце кривой вывод. Тоже по непонятной мне причине. Не могу разобраться, помогите пожалуйста!!! Программировал в Geany на ubuntu.

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
95
96
97
98
99
100
101
102
//Программа вводит\выводит элементы массива структуры и ищет элементы по заданному полю
#include <iostream>
#include <cstdlib> // для очистки экрана
using namespace std;
struct metro
{
    char start_name[30]; //Начальный пункт
    char finish_name[30]; //Конечный пункт
    char time[30]; //Время поездки
    char line[30]; //Номер линии
};
int main()
{
    setlocale(0,"");
    string d;
    int n,i,b,c;
    metro *Arr;
    cout<<"Введите количество элементов массива: ";
    cin>>n;
    Arr = new metro[n]; // массив;
    for (i=0; i<n; i++)
    {
        cout<<"Введите название начального пункта: ";
        cin>> Arr[i].start_name;
        cout<<"Введите название конечного пункта: ";
        cin>> Arr[i].finish_name;
        cout<<"Введите время поездки: ";
        cin>> Arr[i].time;
        cout<<"Введите номер линии: ";
        cin>> Arr[i].line;
        cout<<endl;
    }
    system("clear");
    cout<<endl;
    for (i=0; i<n; i++)
    {
        cout<<endl;
        cout<<"Начальный пункт = "<<i+1<<" "<<Arr[i].start_name<<endl;
        cout<<"Конечный пункт = "<<i+1<<" "<<Arr[i].finish_name<<endl;
        cout<<"Время поездки = "<<i+1<<" "<<Arr[i].time<<endl;
        cout<<"Номер линии = "<<i+1<<" "<<Arr[i].line<<endl;
        cout<<"\n\n ";
    }
 
    cout<<"Поиск по:"<<endl<<"1-начальный пункт"<<endl<<"2-конечный пункт"<<endl
    <<"3-время поездки"<<endl<<"4-номер линии"<<endl;
    cin>>b;
    switch (b)
    case 1:{
        cout<<"Введите начальный пункт: ";
        cin>>d;
        c=0;
        for (i=0; i<n; i++) {
            if(Arr[i].start_name==d){
                cout<<"Начальный пункт = "<<i+1<<Arr[i].start_name<<endl;
                cout<<"Конечный пункт = "<<i+1<<Arr[i].finish_name<<endl;
                cout<<"Время поездки = "<<i+1<<Arr[i].time<<endl;
                cout<<"Номер линии = "<<i+1<<Arr[i].line<<endl;
        cout<<"\n\n ";
                c=c+1;}
                if (c==0){cout<<"Таких начальных пунктов нет";}}break;
    case 2:{
        cout<<"Введите конечный пункт: ";
        cin>>d;
        c=0;
        for (i=0; i<n; i++) {
            if(Arr[i].finish_name==d){
                cout<<"Начальный пункт = "<<i+1<<Arr[i].start_name<<endl;
                cout<<"Конечный пункт = "<<i+1<<Arr[i].finish_name<<endl;
                cout<<"Время поездки = "<<i+1<<Arr[i].time<<endl;
                cout<<"Номер линии = "<<i+1<<Arr[i].line<<endl;
        cout<<"\n\n ";
                c=c+1;}
                if (c==0){cout<<"Таких конечных пунктов нет";}}break;
    case 3:{
        cout<<"Введите время поездки: ";
        cin>>d;
        c=0;
        for (i=0; i<n; i++) {
            if(Arr[i].time==d){
                cout<<"Начальный пункт = "<<i+1<<Arr[i].start_name<<endl;
                cout<<"Конечный пункт = "<<i+1<<Arr[i].finish_name<<endl;
                cout<<"Время поездки = "<<i+1<<Arr[i].time<<endl;
                cout<<"Номер линии = "<<i+1<<Arr[i].line<<endl;
        cout<<"\n\n ";
                c=c+1;}
                if (c==0){cout<<"Такого времени нет";}}break;
    case 4:{
        cout<<"Введите номер линии: ";
        cin>>d;
        c=0;
        for (i=0; i<n; i++) {
            if(Arr[i].line==d){
                cout<<"Начальный пункт = "<<i+1<<Arr[i].start_name<<endl;
                cout<<"Конечный пункт = "<<i+1<<Arr[i].finish_name<<endl;
                cout<<"Время поездки = "<<i+1<<Arr[i].time<<endl;
                cout<<"Номер линии = "<<i+1<<Arr[i].line<<endl;
        cout<<"\n\n ";
                c=c+1;}
                if (c==0){cout<<"Таких линий нет";}}break;
        return 0;
    }}}}}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 16:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка в массиве структур (C++):

Сортировка в массиве структур - C++
Здравствуйте . Вот я создаю структуру: struct Data //описываемая структура { int m; int year; int day; }; в...

Блочная сортировка структур (Отсортировать массив структур по фамилии) - C++
Подскажите алгоритм блочной сортировки структур на языке С++. Мне нужно отсортировать массив структур по фамилии.

Массив структур в массиве структур - C++
Всем добрый день. Делаю менюшку для управления и терзаю Arduino IDE слегка подвис со следующей задачей. Я хочу определить две...

Сортировка структур - C++
Помогите составить программу, пожалуйста! Дана структура &quot;поезд&quot; с полями: Наименование маршрута Время отправления Время...

Сортировка структур - C++
1 Структура: № комнаты в общежитии, площадь, число жителей, балкон. Отсортировать по площади и вывести все, где жителей меньше 3. 2...

Сортировка структур - C++
Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2014, 16:53
Привет! Вот еще темы с ответами:

Сортировка структур с++ - C++
Здравствуйте. Помогите пожалуйста. Делаю уже месяц, задача простоя а наверно я дурочек не чего не понимаю. задача. Написать программу, в...

Сортировка структур - C++
Подскажите с сортировкой. В функции SortSwap отсортировал по среднему значения. Но в самой структуре позиции не меняются. Спасибо. ...

Сортировка структур - C++
Хочу отсортировать структуру по номеру поезда пузырьковым методом. Написал такой код: station *train = new station; station tmp;...

Сортировка структур - C++
struct Man{ char name; Название книги char avtor; Автор int day; год издания float kol; ...


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

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

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