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

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

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

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

09.12.2012, 15:16. Просмотров 273. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С++ задать сортировку по времени (C++):

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом - C++
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: #include &quot;stdafx.h&quot; #include...

Подскажите как эту сортировку переделать в сортировку по алфавиту? - C++
Подскажите как эту сортировку переделать в сортировку по алфавиту?? vector&lt;std::pair&lt;string, int&gt;&gt; popularAuthor; ...

Сортировку вставками меняем на сортировку слиянием - C++
Код программы выполняет сортировку массива вставками. Как сюда вставить код сортировки массива методом слияния, вместо метода вставками,что...

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

Проверка на правильность времени, и показ времени - C++
Подскажите, что нужно возвращать в функцию bool is_correct(TIME t); и как эту функцию коректности времени всунуть в функцию void...

Задать сортировку - Turbo Pascal
Собственно, задача: есть 4 документа и их нужно готовить по порядку 3,2,4,1. Необходимо написать программу, которая по кол-ву...

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

Инстанциирование класса по имени и засекание времени на сортировку массива - Java SE
Как инстанциировать класс по имени? И как засечь время на, допустим, сортировку массива? Можно ли с помощью следующего метода: ...

Как сделать сортировку структуры train по времени с помощью qsort? - C (СИ)
Как сделать сортировку структуры train по времени с помощью qsort? #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; int main() { FILE...

Задать интервал по времени в Chart - C#
Для отчетов например от 1 до 100 можно задать chart1.ChartAreas.AxisX.Maximum = i; ...

Нужно задать шаг по времени - MathCAD
нужно задать шаг по времени.у меня пять значений и их нужно запихнуть в 10 сек. нужно взять шаг равный двум.пишу t:= 0,2..10 но все равно...


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

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

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