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

С++ задать сортировку по времени - C++

Восстановить пароль Регистрация
 
mixank2
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 47
09.12.2012, 15:16     С++ задать сортировку по времени #1
Есть задача :
Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из элементов типа TRAIN;
• записи должны быть упорядочены по времени отправления;
• вывод на экран информации о поезде, номер которого введен с клавиатуры;
• если таких поездов нет, выдать на дисплей соответствующее сообщение.
Пояснение:
я написал программу, но условие очень корявое , помогите задать, где нужно задать я отметил
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include<iostream> //подключение нужных библиотек
#include<math.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
 
 
const int NotUsed=system("color 70"); // изменение цвета шрифта и фона консоли
using namespace std;
int main() // главная функция
    {
    setlocale(0,"Rus"); // добавление русского языка
    // ВВОД ДАННЫХ в МАССИВ
 
 
    int size=0; //хранит в себе инф о кол-ве эллементов массива
    struct TRAIN {
        int nomer;
        char city[30];
        int hourse;
        int minute;
 
    };
    TRAIN next ;
    next.minute=0;
    next.hourse=0;
    next.nomer=0;
    *next.city=0;
 
 
begin: // метка возврата в случае введения не верного
 
cout<<"Введите количество паровозов!\n";
    
cin>>size;  
    
    if(cin.good() && size>=0 ) // проверка на правильность символа 
        {
            if (size!=0)
        
            {
         cout<<"\nколичество паровозов ="<<size<<endl;
        TRAIN *p= new TRAIN[size]; // объявление вещ  указателя , указывающего на вещ массив 
         for(int i=0;i<size;i++) // цикл задает массив 
         {
 
             cout<<"\nВвод данных  "<<i+1<<" паровоза:  ";
             cout<< "\nВведите номер паровоза ";
            cin>>p[i].nomer; 
            if (cin.good()&&p[i].nomer>0) //  проверка на правильность введенного номера
                 {
                 cout<<"\nВведите пункт назначения (английскими буквами)"<<endl;
                 cin>>p[i].city;
                 {
                 cout<<"\nВвод времени отправления:"<<endl;
                 cout<<"\nВведите часы: ";
                 cin>>p[i].hourse;
                      if(cin.good()&&p[i].hourse>0&&p[i].hourse<=24)
                      {
                          cout<<"\nВведите минуты: ";
                          cin>>p[i].minute;
                          if(cin.good()&&0<=p[i].minute&&p[i].minute<=60)
                          {
                              if(p[i].minute==60)
                              {
                                  p[i].minute=0;
                                  if ( p[i].hourse==24)
                                  {
                                       p[i].hourse=0;
                                  }
                                  else
                                  {
                                  p[i].hourse= p[i].hourse+1;
                                  }
                              }
                              cout<<"\nДанные о "<<p[i].nomer<<"поезде успешно добавлены"<<endl;
                          }
                          else
                          {
                              cout<<"\nВведено некорректное время"<<endl;
                              system("pause");
                              delete[]p;
                              return 0;
                          }
                      }
                      else
                      {
                          cout<<"\nВведено некорректное время"<<endl;
                          system("pause");
                           delete [] p; // освобождение памяти
                           return 0;// выход из программы
                      }
 
                 }
                  }
         
            else
                {
                    cout<<"Введен неверный номер паровоза"<<endl;
                    system("pause");
                 delete [] p; // освобождение памяти
                  return 0;// выход из программы
   
         }
 
         }
          for (int i=0;i<size;i++)
          {       //В ЭТОТ ЦИКЛ ДОЛЖНО ЗАДАВАТЬСЯ УСЛОВИЕ, Я попытался задать сортировку по часам, но ни чего не вышло 
              if(p[i+1].hourse<(p[i].hourse))
              { 
            
                  next=p[i+1];
                  p[i+1]=p[i];
                  p[i]=next;
                 
            
              }
             else if(p[i+1].hourse==(p[i].hourse))
                  
                 
              {
                    
                p[i+1]=p[i+1];
                p[i]=p[i];
                 
               }
                  
              
 
          }
          cout<<" \nРАСПИСАНИЕ ПОЕЗДОВ:"<<endl;
 
          cout<<"\nвремя |Номер поезда| пункт назначения  "<<endl;
         for (int i=0;i<size;i++)
         {               cout<<p[i].hourse<<":";
                          cout<<p[i].minute<<"         ";
                cout<<p[i].nomer<<"       "; //вывод массива на экран 
                  cout<<p[i].city<<"   "<<endl;;
              
    
         }
          delete [] p;
    } 
         else 
           cout<<"\nВ депо отсутствуют паровозы"<<endl;
    }
    
    else 
 
            {   printf("Введен неверный символ\n");
     
      cin.clear(); 
            cin.ignore(80,'\n'); // игнорирует символ перевода строки после ввода данных.
            
   
    goto begin;// функция возврата
}
    
        
    system("pause");
 
    return 0;
 
         }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2012, 15:16     С++ задать сортировку по времени
Посмотрите здесь:

C++ сортировку массива
Объясните сортировку C++
C++ Выполнить сортировку
C++ задачка на сортировку
Задача на сортировку C++
Задача на сортировку C++
Сортировку вставками меняем на сортировку слиянием C++
Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом C++

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

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

Текущее время: 02:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru