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

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

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

Контрольная(исправления в коде) - C++

27.05.2010, 11:12. Просмотров 249. Ответов 3
Метки нет (Все метки)

Здравствуйте. Прошу вашей помощи.
Задачка состоитв следущем.
Описать структуру с именем TRANSAIR, содержащую следующие поля:
- название пункта назначения рейса;
- номер рейса;
- тип самолета.
Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив, состоящий из семи структур заданного типа, записи должны быть упорядочены по возрастанию номера рейса;
- вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры;
- если таких рейсов нет, выдать на дисплей соответствующее сообщение.

Вот код того что я написал с помощю учебника.
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
struct TRANSAIR {
    char dest_name[51];
    unsigned int numb;
    MODEL dep_model;
};
struct MODEL {
    int type;
    int version;
};
 
 
void main() {
    int i = 0, temp, j = 0;
    char temp_dest_name[51], ch;
    bool flag = false, flag_ch, t = true;
    TRANSAIR continental[6], temp_air;
 
    for( i = 0; i < 6; i++ ) {
        printf("\nVvedite nazvanie punkta naznacheniya: \n");
        std::cin >> continental[i].dest_name;
        printf("Vvedite nomer samaleta: \n");
        std::cin >> continental[i].numb;
        printf("vvedite model somaleta: \n");
        printf("    tipe: ");
        std::cin >> continental[i].dep_model.type = temp;
        printf("    \n versia: ");
        std::cin >> temp;
        if( (temp >= 0) && (temp <= 999) ) continental[i].dep_model.version = temp;
        else printf("versia vvedina ne correctno.");
        printf("\n");
    }
 
    while( t ) {
        t = false;
        for( i = 0; i < 5; i++) {
            if( continental[i].dep_model.type > continental[i+1].dep_model.type ) {
                temp_train = continental[i];
                continental[i] = continental[i+1];
                continental[i+1] = temp_air;
                t = true;
            }
            else if( continental[i].dep_model.type = continental[i+1].dep_model.type )
                if( continental[i].dep_model.version > continental[i+1].dep_model.version ) {
                    temp_air = continental[i];
                    continental[i] = continental[i+1];
                    continental[i+1] = temp_air;
                    t = true;
                }
        }
    }
 
    do {
        printf("\n Vvedite interesuyushiy Vas punkt naznacheniya: \n");
        std::cin >> temp_dest_name;
 
        for( i = 0; i < 6; i++ ) {
            flag_ch = false;
            for( j = 0; j <= 51; j++)
                if( temp_dest_name[j] != continental[i].dest_name[j]) flag_ch = true;
            if( flag_ch == false) {
                printf( "%s - %i - %i : %i\n", continental[i].dest_name, continental[i].numb,  continental[i].dep_model.type, continental[i].dep_model.version);
                flag = true;
            }
        }
 
        if( flag == false ) printf( "Samoletov, sleduyushih do zaprashivaemogo punkta net.\n");
        flag = false;
 
        printf("Dlya vihoda nagmite 'n'...\n\n");
        ch = getch();
    } while (ch != 'n');
}
Пишет ошибку в 41 строке, что функция не является членом TRASAIR.
Я уже запутался совсем. Может увидете трезвым, более выспавшимся глазом где я накасячил.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2010, 11:12     Контрольная(исправления в коде)
Посмотрите здесь:

C++ Найти причины и способы исправления ошибок в коде
C++ Найти причины и способы исправления ошибок в коде
C++ Найти причины и способы исправления ошибок в коде
Найти причины и способы исправления ошибок в коде C++
C++ Найти причины и способы исправления ошибок в коде
Найти причины и способы исправления ошибок в коде C++
Найти причины и способы исправления ошибок в коде C++
Найти причины и способы исправления ошибок в коде C++
C++ Найти причины и способы исправления ошибок в коде
Найти причины и способы исправления ошибок в коде C++
Найти причины и способы исправления ошибок в коде C++
Найти причины и способы исправления ошибок в коде C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vladislavchick
35 / 35 / 1
Регистрация: 22.05.2010
Сообщений: 107
27.05.2010, 11:18     Контрольная(исправления в коде) #2
Сразу видно, структуру MODEL надо либо определять раньше структуры TRANSAIR, либо предварительно описывать, чтобы TRANSAIR "знала" о существовании MODEL.
rdksoft
22 / 22 / 2
Регистрация: 24.12.2008
Сообщений: 81
27.05.2010, 11:20     Контрольная(исправления в коде) #3
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
#include <stdio.h>
#include <iostream>
#include <conio.h>
   struct MODEL {
        int type;
        int version;
};
struct TRANSAIR {
        char dest_name[51];
        unsigned int numb;
        MODEL dep_model;
};
 
 
 
void main() {
        int i = 0, temp, j = 0;
        char temp_dest_name[51], ch;
        bool flag = false, flag_ch, t = true;
        TRANSAIR continental[6], temp_air;
 
        for( i = 0; i < 6; i++ ) {
                printf("\nVvedite nazvanie punkta naznacheniya: \n");
                std::cin >> continental[i].dest_name;
                printf("Vvedite nomer samaleta: \n");
                std::cin >> continental[i].numb;
                printf("vvedite model somaleta: \n");
                printf("        tipe: ");
                std::cin >> continental[i].dep_model.type /*= temp*/;
                printf("        \n versia: ");
                std::cin >> temp;
                if( (temp >= 0) && (temp <= 999) ) continental[i].dep_model.version = temp;
                else printf("versia vvedina ne correctno.");
                printf("\n");
        }
 
        while( t ) {
                t = false;
                for( i = 0; i < 5; i++) {
                        if( continental[i].dep_model.type > continental[i+1].dep_model.type ) {
                                temp_air = continental[i];
                                continental[i] = continental[i+1];
                                continental[i+1] = temp_air;
                                t = true;
                        }
                        else if( continental[i].dep_model.type = continental[i+1].dep_model.type )
                                if( continental[i].dep_model.version > continental[i+1].dep_model.version )     {
                                        temp_air = continental[i];
                                        continental[i] = continental[i+1];
                                        continental[i+1] = temp_air;
                                        t = true;
                                }
                }
        }
 
        do {
                printf("\n Vvedite interesuyushiy Vas punkt naznacheniya: \n");
                std::cin >> temp_dest_name;
 
                for( i = 0; i < 6; i++ ) {
                        flag_ch = false;
                        for( j = 0; j <= 51; j++)
                                if( temp_dest_name[j] != continental[i].dest_name[j]) flag_ch = true;
                        if( flag_ch == false) {
                                printf( "%s - %i - %i : %i\n", continental[i].dest_name, continental[i].numb,  continental[i].dep_model.type, continental[i].dep_model.version);
                                flag = true;
                        }
                }
 
                if( flag == false ) printf( "Samoletov, sleduyushih do zaprashivaemogo punkta net.\n");
                flag = false;
 
                printf("Dlya vihoda nagmite 'n'...\n\n");
                ch = getch();
        } while (ch != 'n');
}
SkatFHN
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 3
27.05.2010, 11:36  [ТС]     Контрольная(исправления в коде) #4
Спасибо что направили на путь истиныей. Поправил.

Добавлено через 13 минут
Но одна ошибка осталась. в строке 29 когда присваевается тип самолета
C++
1
std::cin >> continental[i].dep_model.type = temp;
Присвоение делаю как и двумя строками выше.
Заменил на
C++
1
2
std::cin >> temp;
        continental[i].dep_model.type = temp;
Критических ошибок нет, но теперь похоже глюк в воде .dep_model.type. и выводе результатов. Буду думать.
Yandex
Объявления
27.05.2010, 11:36     Контрольная(исправления в коде)
Ответ Создать тему
Опции темы

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