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

Объяснить прогграму - C++

Восстановить пароль Регистрация
 
Andru1312
2 / 2 / 0
Регистрация: 03.03.2013
Сообщений: 100
17.05.2013, 00:34     Объяснить прогграму #1
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
#include <iostream>
#include <string.h>
#include <iomanip>
using namespace std;
struct Avt                                         
{                                                          
    int      number;                                   
    char*    type;                             
    char*    destination;                          
    double   otTime;                                
    double   prTime;                            
}; 
int main() 
{
    char* type = new char[20];
 
struct Avt  indexes[100];
 char d[20];
    double time = 0.0;
    int n,i;
 
cout<<"Vvedite kolichestvo reisov: ";
cin>>n;
for ( i=0; i<n; i++)
{
    indexes[i].destination = new char[20];
        indexes[i].type = new char[20];
}
for ( i = 0; i < n; i++) 
{
cout << "-------------------------------" << endl;
cout << "Nomer reisa: "; 
cin >> indexes[i].number;
cout << "Tip reisa: "; 
cin >> indexes[i].type;
cout << "Mesto nazhacheniya: ";
cin >> indexes[i].destination;
cout << "Vremya otpravleniya: "; 
cin >> indexes[i].otTime;
cout << "Vremya pribitiya: "; 
cin >> indexes[i].prTime;
cout << "-------------------------------" << endl;
 
}
 
 cout <<"Vvedite mesto naznacheniya: "<<endl;
   cin.get();
   cin.getline(d, 20);
    cout<<"Vvedite vremya pribitiya: ";
    cin>>time;
    cout<<endl<<"-----------------------------------------------" <<endl;
    for( i=0; i < n; i++)
    {
    char *str=indexes[i].destination;
        if(strcmp(d,str)==0)
        if(indexes[i].prTime<=time)
        {
           cout.width(21);
           cout <<"Nomer reysa: "<<indexes[i].number<<endl;
           cout.width(21);
           cout<<"Tip reysa: "<<indexes[i].type<<endl;
           cout.width(21);
           cout<<"Mesto nazhacheniya: "<<indexes[i].destination<<endl;
           cout.width(19);
           cout<<"Vremia otpravleniya: "<<fixed<<setprecision(2)<<indexes[i].otTime<<endl;
           cout.width(21);
           cout<<"Vremya pribitiya: "<<fixed<<setprecision(2)<<indexes[i].prTime << endl;
           cout <<"-----------------------------------------------" << endl;
        }
    }
system("pause");
    return 0;
}
для чего нужно indexes[i] и как он работает в строках
C++
1
indexes[i].destination = new char[20];
C++
1
cin >> indexes[i].number;
C++
1
if(indexes[i].prTime<=time)
C++
1
cout <<"Nomer reysa: "<<indexes[i].number<<endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2013, 00:34     Объяснить прогграму
Посмотрите здесь:

C++ Объяснить программу
объяснить функцию C++
C++ Объяснить различие
объяснить команду C++
Функция (объяснить) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.05.2013, 08:14     Объяснить прогграму #2
Andru1312, indexes - это массив на 100 элементов типа Avt. В "непонятных" строках идет обращение к полям i-го элемента массива, и выполняются соответствующие действия с этими полями.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
17.05.2013, 10:21     Объяснить прогграму #3
Вот здесь вот:
C++
1
struct Avt  indexes[100];
Объявляется сто вот таких штук:
C++
1
2
3
4
5
6
7
8
struct Avt                                         
{                                                          
    int      number;                                   
    char*    type;                             
    char*    destination;                          
    double   otTime;                                
    double   prTime;                            
};
То есть каждый index[i] содержит в себе свой собственный, отличный от других набор (number, type, destination, otTime, prTime).
Andru1312
2 / 2 / 0
Регистрация: 03.03.2013
Сообщений: 100
18.05.2013, 19:54  [ТС]     Объяснить прогграму #4
Объясните данный фрагмент код
C++
1
2
3
4
if(strcmp(d,str)==0)
        if(indexes[i].prTime<=time)
        {
           cout.width(21);
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
18.05.2013, 20:43     Объяснить прогграму #5
Цитата Сообщение от Andru1312 Посмотреть сообщение
Объясните данный фрагмент код
C++
1
2
3
4
if(strcmp(d,str)==0)
        if(indexes[i].prTime<=time)
        {
           cout.width(21);
strcmp(d,str) сравнивает строки d и str, если они равны то возвращает 0
и у нас срабатывает if(indexed[i].prTime<=time). Ну тут видно, что в indexed[i] хранится объект какой то я код выше не смотрел, и мы обращаемся к открытому члену этого объекта ptTime и сравниваем с time. Если ptTime объекта который хранится в indexed[i] будет меньше или равен time, то срабатывает cout.width(21); Ну а это что за фигня я не помню, наверно ширину поля устанавливает в 21 символ.
Yandex
Объявления
18.05.2013, 20:43     Объяснить прогграму
Ответ Создать тему
Опции темы

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