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

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

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

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

09.12.2012, 15:16. Просмотров 264. Ответов 0
Метки нет (Все метки)

Есть задача :
Описать структуру с именем 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     С++ задать сортировку по времени
Посмотрите здесь:

сортировку по Tag и сортировку по Eng - C++
Есть структура: struct _1C { string Tag; string Rus; string Eng; _1C(const string &amp;Tag, const string &amp;Rus, const string...

сортировку массива - C++
упорядочить строки целочисленной прямоугольный матрицы по возрастанию количество одинаковых элементов в каждой строке. Найти номер...

Задача на сортировку - C++
Друзья, нужна помощь с кодом) Выводит полную чушь( Условие задачи: есть одноименный массив длиной 40. Отсортировать методом выбора...

Объясните сортировку - C++
вот приведен пример сортировки слиянием: void BinMerge(int *mas, int n, const int k) { const int SIZE=n/2; int j=0,h=0; int...

Изменить сортировку - C++
Добрый вечер! Можете изменить эту сортировку на сортировку методом Шелла? #include &lt;iostream&gt; using namespace std; int...

Выполнить сортировку - C++
Выполнить сортировку целочисленного массива (поиск в массиве) из n элементов. Алгоритм сортировки (поиска) оформить в виде функции.Метод...

Задача на сортировку - C++
Не понимаю в чем дело( Прошу помочь с кодом) #include &lt;iostream&gt; using namespace std; int random (int A) { int mas,i; ...

задачка на сортировку - C++
есть файл input.txt. \фио \возраст \табелный иванов 30 30 петров 20 45 сидоров 20 10 перепупкин 25 15 нужно чтобы ...

Исправить сортировку структуры - C++
#pragma hdrstop #pragma argsused #include &lt;tchar.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream.h&gt; using...

Указатели в массиве на сортировку - C++
Доброго,времени,прошу помочь переделать данный код под указатели. #include &lt;iostream&gt; #include &lt;ctime&gt; #include...


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

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

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