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

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

Войти
Регистрация
Восстановить пароль
 
StalkerSmerch
1 / 1 / 2
Регистрация: 04.03.2012
Сообщений: 159
#1

Ошибка со структорой - C++

28.11.2012, 17:31. Просмотров 183. Ответов 0
Метки нет (Все метки)

При выполнении программы вылетает на строчке при вызове структуры(отмечена сбоку комментариями). Помогите понять в чём ошибка.
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
#include <string> //Подключаем библеотеку для работы со строками
#include <iostream> //Подключаем библиотеку потокового ввода/вывода
#include <locale.h> //Подключаем библиотеку для работы с русским языком
#include <fstream> //Подключаем библиоттеку для работы со строчками из файла
 
using namespace std; //Использование пространства имен std
 
struct firstList 
{
    string numberBus;
    string nameDriver;
    int numberRoute;
    firstList *nextList;
};
firstList *firstHead;
firstList *secondHead;
 
void firstSet(string nB,string nD){
    firstList *p= firstHead;
    if(firstHead==NULL){
        cout<<"1111111111111";
        cout<<nB;
        firstHead->numberBus=nB;  //Ошибка на этой строчке
        cout<<"1111111111111";
        firstHead->nameDriver=nD;
        cout<<"1111111111111";
        firstHead->nextList=NULL;
        cout<<"Добавлена запись";
        return;
    }
    while(1){
        if((p)->numberBus==nB){
            cout<<"Автобус уже есть в данном списке"<<endl;
            return;
        }
        if((p)->nextList==NULL)
            break;
        (p)=(p)->nextList;
    }
    (p)->numberBus=nB;
    (p)->nameDriver=nD;
    (p)->nextList=NULL;
}
void secondSet(string nB,string nD){
    firstList* p=secondHead;
    if(secondHead==NULL){
        (secondHead)->numberBus=nB;
        (secondHead)->nameDriver=nD;
        (secondHead)->nextList=NULL;
        cout<<"Добавлена запись";
        return;
    }
    while(1){
        if((p)->numberBus==nB){
            cout<<"Автобус уже есть в данном списке"<<endl;
            return;
        }
        if((p)->nextList==NULL)
            break;
        (p)=(p)->nextList;
    }
    (p)->numberBus=nB;
    (p)->nameDriver=nD;
    cout<<"Введите номер маршрута: "<<endl;
    cin>>(p)->numberRoute;
    (p)->nextList=NULL;
}
void del(firstList* head,string nB){
    firstList* p=head;
    firstList* buf=NULL;
    if((head)->numberBus==nB){
        (head) =(p)->nextList;
        return;
    }
    (p)=(head);
    while (true) {
        buf = p;
        if ((p)->nextList == NULL) {
            break;
        }
        (p)=(p)->nextList;
        if ((p)->numberBus== nB) {
            (p)=(p)->nextList;
            (buf)->nextList = (p);
            return;
        }
    }
}
void out(string nB){
    firstList* p=firstHead;
    while(1){
        if((p)->numberBus==nB)
            break;
        if((p)->nextList==NULL){
            cout<<"Автобус не найден в парке"<<endl;
            return;
        }
        (p)=(p)->nextList;
    }
    secondSet((p)->numberBus,(p)->nameDriver);  
    del(firstHead,nB);
    return;
}
void in(string nB){
    firstList* p=secondHead;
    while(1){
        if((p)->numberBus==nB)
            break;
        if((p)->nextList==NULL){
            cout<<"Автобус не найден в парке"<<endl;
            return;
        }
        (p)=(p)->nextList;
    }
    firstSet((p)->numberBus,(p)->nameDriver);   
    del(secondHead,nB);
    return;
}
 
int main() //Начало функции main
{   
    setlocale(LC_ALL,"rus"); //Выключаем русский язык
    string numB;
    string nameD;
    int i=0,j=0;
    cout<<"Создание списка автобусов находящихся на стоянке"<<endl;
    while(1){
        cout<<i<<". Номер автобуса: ";
        cin>>numB;
        cout<<" Имя водителя: ";
        cin>>nameD;
        cout<<endl;
        firstSet(numB, nameD);
        cout<<"Добавить ещё запись? 1(Да)/0(Нет)"<<endl;
        cin>>j;
        if(j==0)
            break;
        i++;
    }
    cout<<"Меню:"<<endl;
    cout<<"1. Выезд автобуса из парка"<<endl;
    cout<<"2. Въезд автобуса в парк"<<endl;
    cout<<"3. Список автобусов в парке"<<endl;
    cout<<"4. Список автобусов на выезде"<<endl;
    cin>>j;
    switch(j){
    case 1: cout<<"Введите номер автобуса который выехал из парка:"<<endl;
        cin>>numB;
        out(numB);
        break;
    case 2: cout<<"Введите номер автобуса который заехал в парк:"<<endl;
        cin>>numB;
        in(numB);
        break;
    }
} //Конец функции main
Заранее спасибо!

Добавлено через 28 минут
Тупанул, нашёл решение firstHead=new firstList;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 17:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка со структорой (C++):

Копирование файлов со структорой по списку - Visual Basic .NET
Не могу решить затык( При копировании файлов полностью не отрабатывает код, программа не висит, просто стоит на месте и не выполняется до...

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services - C# ASP.NET
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке обратиться к сценарию(asp) получаю ошибку: &lt;пропуск&gt; ......

1C 8.x Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи! - 1С
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове...


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

Или воспользуйтесь поиском по форуму:
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Опции темы

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