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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
#1

Структура.Найтиде ошибку - C++

19.04.2009, 22:37. Просмотров 1424. Ответов 21
Метки нет (Все метки)

Вот код. Он компилируется, работает, но с странностями.
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
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
using namespace std;
#define istr 21
struct train{
    int num;
    char naz[istr];
    char time[istr];
};
int pro1(int n,train *p,int num1);
int pro2(int n,train* p,char naz1[istr]);
void nom(int num1,train* p,int n);
void stan(int n,train* p,char naz1[istr]);
 
int main(int argc,char* argv[])
{
    setlocale(LC_ALL,".1251");
    int i,n,num1;
    char naz1[istr];
    cout << "Информацию о скольких поездов следует занести в базу данных?" << endl;
    cin >> n;
    train *p,*a;
    a = new train[n];
    p = &a[0];
    for(i = 0; i < n;i++){
        _flushall();
        cout << "Введите информацию о " << i+1 << " поезде." << endl;
        cout << "Введите номер поезда: №";
        cin >> p->num;_flushall();
        cout << "Введите станцию назначения поезда: ";
        cin.getline(p->naz,istr);
        cout << "Введите время оправления поезда: ";
        cin.getline(p->time,istr);
        p++;
    }
    cout << endl;
    cout << "Введите искомый номер поезда: ";
    cin >> num1;
    _flushall();
    cout << endl;
    p = &a[0];
    while (pro1(n,p,num1)){
        cout << "Поезд с номером №" << num1 << " не найден в базе данных." << endl;
        cout << "Введите новый искомый номер поезда: №";
        cin >> num1;
    }
    cout << "Поезд с номером №" << num1 << " найден в базе данных." << endl; 
    p = &a[0];
    nom(num1,p,n);
    cout << endl;
    _flushall();
    cout << "Введите искомую станцию назначения: ";
    cin.getline(naz1,istr);
    p = &a[0];
    while(pro2(n,p,naz1)){
        cout << naz1 << " - данная конечная станция не найдена в базе данных." << endl;
        cout << "Введите новую ускомую станцию назначения: ";
        cin.getline(naz1,istr);
    }
    cout << naz1 << " - станция назначения найдена в базе данных." << endl;
    p = &a[0];
    stan(n,p,naz1);
    delete[]a;
    system("PAUSE");
    return 0;
}
int pro1(int n,train *p,int num1){
    int i;
    for(i = 0; i < n;i++){
        if (num1 == p->num)
            return(0); else
            return(1);
        p++;
    }
}
int pro2(int n,train* p,char naz1[]){
    int i;
    for(i = 0; i < n;i++){
        if (stricmp(naz1,p->naz) == 0)
            return(0);else
            return(1);
        p++;
    }
}
void nom(int num1,train* p,int n){
    int i;
    for(i = 0; i < n;i++){
        if (num1 == p->num){
            cout << "Поезд №" << num1 << " оправляется в " << p->time << endl;
            cout << "до станции " << p->naz << endl;
        }
        p++;
    }
}
void stan(int n,train* p, char naz1[]){
    int i;
    for(i = 0;i < n;i++){
        if (stricmp(naz1,p->naz) == 0){
            cout << "До станции " << p->naz << " следует: " << endl;
            cout << "Поезд №" << p->num << endl;
            cout << "в " << p->time << endl;
        }
        p++;
    }
}
А вот работа программы.
Структура.Найтиде ошибку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2009, 22:37     Структура.Найтиде ошибку
Посмотрите здесь:

Структура C++
C++ структура
Структура C++
C++ структура
C++ структура
C++ Структура Octal. Выдает ошибку E2040 Declaration terminated incorrectly. Не пойму в чем проблема?
Структура C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
17311 / 5559 / 347
Регистрация: 30.03.2009
Сообщений: 15,127
Записей в блоге: 26
20.04.2009, 23:11     Структура.Найтиде ошибку #21
Цитата Сообщение от insolent Посмотреть сообщение
А чем ещё можно заменит goto в С++, кроме циклов?
Да вроде бы больше нечем

А ты выдели весь процесс ввода данных (строки 21-37) в отдельную процедуру, процесс поиска по номеру поезда (38-51) в другую процедуру, процесс поиска по станции (52-63) в треть. процедуру. В результате процедура main у тебя начнёт выглядеть как конструктор из кубиков. Далее один из кубиков тебе надо будет в цикле делать, а потому вокруг вызова этой процедуры создай цикл (будь то while, будь то через goto) - весь этот цикл буедт в 5-6 строках, т.е. целиком перед глазами
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2009, 00:43     Структура.Найтиде ошибку
Еще ссылки по теме:

C++ исправить ошибку в коде с++(структура данных)
структура c++ C++
C++ Структура
Структура (найти ошибку в этом коде) C++
Найти и исправить ошибку в программе (структура Student) C++

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

Или воспользуйтесь поиском по форуму:
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
21.04.2009, 00:43  [ТС]     Структура.Найтиде ошибку #22
Ещё раз спасибо - все разъяснили.
Yandex
Объявления
21.04.2009, 00:43     Структура.Найтиде ошибку
Ответ Создать тему
Опции темы

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