Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 26

Синтаксис, не могу разорбраться

11.12.2015, 17:17. Показов 566. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всю голову сломал, не могу найти в чем причина ошибок...
C++
1
2
3
4
5
||=== Build: Debug in bac (compiler: GNU GCC Compiler) ===|
/home/sprite/work/labs/bac/main.cpp|53|error: expected ‘}’ at end of input|
/home/sprite/work/labs/bac/main.cpp|53|error: expected unqualified-id at end of input|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
||=== Run: Debug in bac (compiler: GNU GCC Compiler) ===|
Вот код main.cpp:
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
#include <iostream>
#include <biblioteka.h>
#include <stdlib.h>
 
int main()
{
    int i, j, m;
    i=0;
    /*biblioteka kniga[99];
    kniga[i].operation(kniga, i, 10);
    second menu;*/
    cout<<"vvod";
    cin>>i;
    biblioteka *kniga=new biblioteka[2];
    while(m!=6)
    {
    j=0;
    cout<<"\n\n\n1. Добавление книги.\n2. Удалить книгу.\n3. Поиск книг.\n4. Показать все книги.\n5. Редактирования книги\n6.Выход"<<endl;;
    cin>>m;
    if(m==1)
        {
        system("clear");
        cout<<"Добавлено "<<kniga[j].operation(kniga, i, 10)<<endl;
        }
    if(m==2)
        {
        system("clear");
        int r=kniga[j].operation(kniga, i);
        if(r!=0)
            cout<<"Удалена книга №"<<r<<endl;
        }
    if(m==3)
        {
        system("clear");
        cout<<"Найдено "<<kniga[j].SearchResult(kniga, i)<<" книг(а)"<<endl;
        }
    if(m==4)
        {
        system("clear");
        cout<<"В библиотеке "<<kniga[j].PrintAll(kniga, i)<<" книги(а)"<<endl;
        }
    if(m==5)
        {
        system("clear");
        int c;
        cout<<"Введите номер книги с которой хотите произвести изменения: ";
        cin>>c;
        c--;
        change(kniga[c], i, c);
        }
    }
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.12.2015, 17:17
Ответы с готовыми решениями:

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

Не могу найти синтаксис оператора ? :
День добрый. Подскажите синтаксис оператора ? : (по-моему так правильно). Есть строка кода: int iEnd = (vsi.nPos+vsi.nPage &lt;...

Не могу составить регулярное выражение. Не понимаю синтаксис
Есть у меня строка &quot;C:\Users\My\example.txt&quot; Как должно выглядеть регулярное выражение на с++, шаблон или маска этой строки, чтобы её...

6
Модератор
Эксперт С++
 Аватар для zss
13780 / 10973 / 6491
Регистрация: 18.12.2011
Сообщений: 29,259
11.12.2015, 17:19
Цитата Сообщение от serduk3000 Посмотреть сообщение
#include <biblioteka.h>
Это Ваш собственный файл, поэтому
C++
1
#include "biblioteka.h"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cin>>m;
 system("clear");
    switch(m)
    {
    case 1:
             cout<<"Добавлено "<<kniga[j].operation(kniga, i, 10)<<endl;
             break;
    case 2:
        { // скобки нужны из-за объявления локальной переменной int r;
           int r=kniga[j].operation(kniga, i);
           if(r!=0)
               cout<<"Удалена книга №"<<r<<endl;
           break;
        }
    case 3:
      ....
    }
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
11.12.2015, 17:23
serduk3000,
C++
1
using namespace std;
не забыли?..
А можно код <biblioteka.h> ?
0
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 26
11.12.2015, 17:32  [ТС]
Текст biblioteka.h, может быть советы какие будут? есть подозрения что код придётся с 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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
#include <string>
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
/*struct book
    {
        string name;
        string author;
        int year;
    };*/
struct book
            {
                string name;
                string author;
                int year;
            };
class biblioteka
{
    protected:
        book kn;
        int finded[9999];
    public:
        int operation(biblioteka kn[], int&i, bool g)
    {
    int j, l;
    l=i;
    cout<<"Сколько книг вы хотите добавить?"<<endl;
    cin>>j;
    i+=j;
    while(l<i)
        {
        cout<<"Введите название: ";
        cin>>kn[l].kn.name;
        cout<<"Введите автора: ";
        cin>>kn[l].kn.author;
        cout<<"Введите год: ";
        cin>>kn[l].kn.year;
        l++;
        }
    return j;
    }
int SearchResult(biblioteka bk[], int i)
    {
    int k=biblioteka::sear(bk, i);
    if(k<1)
        {
        int r=finded[k];
        r++;
        cout<<"Найденая книга имеет номер "<<r<<", автора "<<bk[finded[k]].kn.author<<" и название "<<bk[finded[k]].kn.name<<endl;
        }
    else
        for(int j=0;j<k;j++)
            {
            int r=finded[j];
            r++;
            cout<<"Найденая книга имеет номер "<<r<<", автора "<<bk[finded[j]].kn.author<<" и название "<<bk[finded[j]].kn.name<<endl;            }
    return k;
    }
int operation(biblioteka bk[], int&i)
{
    int j, deleted=0, l;
    int k=i;
    cout<<"Ищем книгу которую надо удалить..."<<endl;
    j=biblioteka::sear(bk, i);
    if(j==0)
        {
        system("clear");
        cout<<"Удалять нечего!"<<endl;
        }
    else
    {
    if(j>1)
        {
        cout<<"Какую конкретно книгу удалить?"<<endl;
        for(l=0;l<j;l++)
            {
            int s=l;
            s++;
            int r=finded[l];
            r++;
            cout<<s<<".Книга №"<<r<<endl;
            };
        cin>>j;
        j=finded[j-1];
        deleted=j;
        }
    j=finded[j-1];
    deleted=j;
    deleted++;
        while(j<k)
            {
            bk[j]=bk[j+1];
            j++;
            }
        i--;
    }
    return deleted;
}
int sear(biblioteka bk[], int i)
    {
    int j;
    int k=0;
    int s;
    string FName, FAuthor;
    int FYear;
    cout<<"1.Название\n2.Автор\n3.Год"<<endl;
    cin>>s;
    switch(s)
        {
        case 1:
            {
            cout<<"Введите название книги: "<<endl;
            cin>>FName;
            for(j=0;j<i;j++)
                if(FName==bk[j].kn.name)
                    {
                    finded[k]=j;
                    k++;
                    }
            break;
            }
        case 2:
            {
            cout<<"Введите автора книги: "<<endl;
            cin>>FAuthor;
            for(int j=0;j<i;j++)
                if(FAuthor==bk[j].kn.author)
                    {
                    finded[k]=j;
                    k++;
                    }
            break;
            }
        case 3:
            {
            cout<<"Введите год издания: "<<endl;
            cin>>FYear;
            for(int j=0;j<i;j++)
                if(FYear==bk[j].kn.year)
                    {
                    finded[k]=j;
                    k++;
                    }
            break;
            }
        }
    return(k);
    }
int PrintAll(biblioteka bk[], int i)
    {
    int j;
    for(j=0;j<i;j++)
        cout<<bk[j].kn.name<<"  "<<bk[j].kn.author<<"   "<<bk[j].kn.year<<endl;
    return i;
    }
 
int change(biblioteka&book, int i, int c)
    {
    if(c<i)
        {
        c++;
        int j;
        cout<<"По какому полю внести изменения?\n1.Название\n2.Автор\n3.Год\n"<<endl;
        cin>>j;
        if(j==1)
            {
            cout<<"Исходное название "<<c<<" книги :\n"<<book.kn.name<<"\nВведите новое название :"<<endl;
            string ChName;
            cin>>ChName;
            book.kn.name=ChName;
            }
        else
            {
            if(j==2)
                {
                cout<<"Исходный автор "<<c<<" книги :\n"<<book.kn.name<<"\nВведите новоего автора :"<<endl;
                string ChAuthor;
                cin>>ChAuthor;
                book.kn.author=ChAuthor;
                }
            else
                {
                if(j==3)
                    {
                    cout<<"Исходный год "<<c<<" книги :\n"<<book.kn.name<<"\nВведите новую дату издания :"<<endl;
                    int ChYear;
                    cin>>ChYear;
                    book.kn.year=ChYear;
                    }
                else
                    {
                    cout<<"Введён неверный номер книги!Номера от 1 до "<<i;
                    }
                }
            }
 
        }
    return(1);
    }
Добавлено через 2 минуты
{}-у меня веть есть, во всех вариантах while, я все скобки проверял, всё закрыто...
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
11.12.2015, 17:47
Цитата Сообщение от serduk3000 Посмотреть сообщение
{}-у меня веть есть, во всех вариантах while, я все скобки проверял, всё закрыто...
Да ладно
C++
1
2
3
class biblioteka
{//это есть
};//а этого нет!
0
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 26
11.12.2015, 17:55  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Да ладно
Всё, спасибо, даже и не подумал что в хедере может крыться ошибка, вопрос следующий ещё присутсвует
Вот код, с добавленным классом наследования
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
class biblioteka
{
    protected:
        book kn;
        int finded[9999];
    public:
        int operation(biblioteka kn[], int&i, bool g)
    {
    int j, l;
    l=i;
    cout<<"Сколько книг вы хотите добавить?"<<endl;
    cin>>j;
    i+=j;
    while(l<i)
        {
        cout<<"Введите название: ";
        cin>>kn[l].kn.name;
        cout<<"Введите автора: ";
        cin>>kn[l].kn.author;
        cout<<"Введите год: ";
        cin>>kn[l].kn.year;
        l++;
        }
    return j;
    }
int SearchResult(biblioteka bk[], int i)
    {
    int k=biblioteka::sear(bk, i);
    if(k<1)
        {
        int r=finded[k];
        r++;
        cout<<"Найденая книга имеет номер "<<r<<", автора "<<bk[finded[k]].kn.author<<" и название "<<bk[finded[k]].kn.name<<endl;
        }
    else
        for(int j=0;j<k;j++)
            {
            int r=finded[j];
            r++;
            cout<<"Найденая книга имеет номер "<<r<<", автора "<<bk[finded[j]].kn.author<<" и название "<<bk[finded[j]].kn.name<<endl;            }
    return k;
    }
int operation(biblioteka bk[], int&i)
{
    int j, deleted=0, l;
    int k=i;
    cout<<"Ищем книгу которую надо удалить..."<<endl;
    j=biblioteka::sear(bk, i);
    if(j==0)
        {
        system("clear");
        cout<<"Удалять нечего!"<<endl;
        }
    else
    {
    if(j>1)
        {
        cout<<"Какую конкретно книгу удалить?"<<endl;
        for(l=0;l<j;l++)
            {
            int s=l;
            s++;
            int r=finded[l];
            r++;
            cout<<s<<".Книга №"<<r<<endl;
            };
        cin>>j;
        j=finded[j-1];
        deleted=j;
        }
    j=finded[j-1];
    deleted=j;
    deleted++;
        while(j<k)
            {
            bk[j]=bk[j+1];
            j++;
            }
        i--;
    }
    return deleted;
}
int sear(biblioteka bk[], int i)
    {
    int j;
    int k=0;
    int s;
    string FName, FAuthor;
    int FYear;
    cout<<"1.Название\n2.Автор\n3.Год"<<endl;
    cin>>s;
    switch(s)
        {
        case 1:
            {
            cout<<"Введите название книги: "<<endl;
            cin>>FName;
            for(j=0;j<i;j++)
                if(FName==bk[j].kn.name)
                    {
                    finded[k]=j;
                    k++;
                    }
            break;
            }
        case 2:
            {
            cout<<"Введите автора книги: "<<endl;
            cin>>FAuthor;
            for(int j=0;j<i;j++)
                if(FAuthor==bk[j].kn.author)
                    {
                    finded[k]=j;
                    k++;
                    }
            break;
            }
        case 3:
            {
            cout<<"Введите год издания: "<<endl;
            cin>>FYear;
            for(int j=0;j<i;j++)
                if(FYear==bk[j].kn.year)
                    {
                    finded[k]=j;
                    k++;
                    }
            break;
            }
        }
    return(k);
    }
int PrintAll(biblioteka bk[], int i)
    {
    int j;
    for(j=0;j<i;j++)
        cout<<bk[j].kn.name<<"  "<<bk[j].kn.author<<"   "<<bk[j].kn.year<<endl;
    return i;
    }
 
int change(biblioteka&book, int i, int c)
    {
    if(c<i)
        {
        c++;
        int j;
        cout<<"По какому полю внести изменения?\n1.Название\n2.Автор\n3.Год\n"<<endl;
        cin>>j;
        if(j==1)
            {
            cout<<"Исходное название "<<c<<" книги :\n"<<book.kn.name<<"\nВведите новое название :"<<endl;
            string ChName;
            cin>>ChName;
            book.kn.name=ChName;
            }
        else
            {
            if(j==2)
                {
                cout<<"Исходный автор "<<c<<" книги :\n"<<book.kn.name<<"\nВведите новоего автора :"<<endl;
                string ChAuthor;
                cin>>ChAuthor;
                book.kn.author=ChAuthor;
                }
            else
                {
                if(j==3)
                    {
                    cout<<"Исходный год "<<c<<" книги :\n"<<book.kn.name<<"\nВведите новую дату издания :"<<endl;
                    int ChYear;
                    cin>>ChYear;
                    book.kn.year=ChYear;
                    }
                else
                    {
                    cout<<"Введён неверный номер книги!Номера от 1 до "<<i;
                    }
                }
            }
 
        }
    return(1);
    }
};
 
class main : public biblioteka
    {
    public:
       int change(biblioteka&book, int i, int c)
            {
            if(c<i)
                {
                c++;
                int j;
                cout<<"По какому полю внести изменения?\n1.Название\n2.Автор\n3.Год\n"<<endl;
                cin>>j;
                if(j==1)
                    {
                    cout<<"Исходное название "<<c<<" книги :\n"<<book.kn.name<<"\nВведите новое название :"<<endl;
                    string ChName;
                    cin>>ChName;
                    book.kn.name=ChName;
                    }
                else
                    {
                    if(j==2)
                        {
                        cout<<"Исходный автор "<<c<<" книги :\n"<<book.kn.name<<"\nВведите новоего автора :"<<endl;
                        string ChAuthor;
                        cin>>ChAuthor;
                        book.kn.author=ChAuthor;
                        }
                    else
                        {
                        if(j==3)
                            {
                            cout<<"Исходный год "<<c<<" книги :\n"<<book.kn.name<<"\nВведите новую дату издания :"<<endl;
                            int ChYear;
                            cin>>ChYear;
                            book.kn.year=ChYear;
                            }
                        else
                            {
                            cout<<"Введён неверный номер книги!Номера от 1 до "<<i;
                            }
                        }
                    }
 
                }
            return(1);
            }
    private:
        int numb;
    };
который разумеется не компилируется, пишет, мол:
C++
1
2
3
4
5
6
7
||=== Build: Debug in bac (compiler: GNU GCC Compiler) ===|
include/biblioteka.h||In member function ‘int main::change(biblioteka&, int, int):|
include/biblioteka.h|22|error: ‘book biblioteka::kn’ is protected|
include/biblioteka.h|217|error: within this context|
include/biblioteka.h|22|error: ‘book biblioteka::kn’ is protected|
include/biblioteka.h|220|error: within this context|
//дальше думаю не надо лог, ибо ошибка одна и таже)
Что подскажете, добрый человек?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
11.12.2015, 18:37
C++
1
int change(Main&book, int i, int c)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2015, 18:37
Помогаю со студенческими работами здесь

Не могу понять синтаксис условий (if / then / else)
Привет. Подскажите пожалуйста синтаксис Oracle SQL для условий, я уже все варианты перепробовал на чем-то простеньком типа IF 1+1=2...

Copyfile - не могу понять синтаксис
Хочу скопировать файл из одной папки в другую папку указывая пути с помощью переменных ...

Синтаксис INCLUDE, не могу разобраться
Добрый день. Помогите разобраться с функцией INCLUDE. Имеется файл test.php с кодом: &lt;?php $test=&quot;проверка&quot;; ?&gt; ...

Не могу разобраться как работает синтаксис?
Добрый день! Помогите понять синтаксис. Интересует только этот фрагмент &quot;)(files)&quot; почему через две скобки ...

При построении запроса через построитель не могу написать верный синтаксис
Здравствуйте, проблема в следующем. Делаю прогу в VS 2010. При построении запроса через построитель немогу написать верный синтаксис. На...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru