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

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

Войти
Регистрация
Восстановить пароль
 
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 88
#1

База данных. Выдает ошибки - C++

08.05.2014, 12:51. Просмотров 267. Ответов 12
Метки нет (Все метки)

Здравствуйте. я столкнулся с заданием: создать базу данных на С++ учета книг в библиотеке: удаление их, добавление... Есть начало программы: компиллятор выдает ошибки, подскажите в продолжении программы и в ошибках (как их исправить) , пожалуйста

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
#include "stdafx.h"
#include <locale.h>
#include <iostream>
#include "vector.h"
#include "stdio.h"
 
using namespace std;
 
struct BD_T//задаем б.д.
{
    int id;
    string NameOfBook;//имя книги
    string TypeOfBook;//тип книги
}
 
int add_book(string NameOfBook, string TypeOfBook)
{
    int id = 0;
    //create new struct BD_T and push back this struct to vector
    //return id of new book
    return id;
}
 
int remove_book(int id)
{
    //remove book with id = id from vector
    return 0;
}
 
int print_books(int id, bool all)
{
    if (all == true)
    {
        //print all books from vector
    }
    else
    {
        //print books from vector with id = id
    }
    return 0;
}
     
     void main()
     {
         char filename[15];//задаем имя файла (15 символов)
         int count_of_books;
         std:vector<struct BD_T> bd_vector;
         printf("Enter the name of file: ");
         scanf("%s", filename); //вводим имя файла с клавиатуры
         printf("\r\n");
         FILE * file=fopen(filename,"r");
            
         if(file!=NULL)
         {
            fscanf(file, "%i", &count_of_books); //read count of books from file.
            vector<struct BD_T> gl_vector[count_of_books]; //create vector of BD_T with size count_of_books
            printf("Success\r\n");
            
            int flag = 0;
            while (flag != -1)
            {
                printf("------------------------\r\n");
                printf("Main menu:\r\n");
                printf("0 - exit\r\n");
                printf("1 - print all books\r\n");
                printf("2 - printf books by id\r\n");
                printf("3 - add_book\r\n");
                printf("4 - remove book by id\r\n");
                printf("------------------------\r\n");
                scanf("%i", &flag);
                printf("\r\n");
                switch(flag)
                {
                    case 0:
                    {
                        flag = -1;
                        printf("exit\r\n");
                        break;
                    }
                    case 1:
                    {
                        print_books(0, true);
                        
                        break;
                    }
                    case 2:
                    {
                        printf("Input id of book\r\n");
                        int id;
                        scanf("%i", id);
                        printf("\r\n");
                        
                        print_books(id, false);
                        
                        break;
                    }
                    case 3:
                    {
                        string name;
                        string type;
                        printf("Input name of books: \r\n");
                        cin>>name;
                        printf("Input type of books: \r\n");
                        cin>>type;
                        
                        add_book(name,type);
                        
                        break;
                    }
                    case 4:
                    {
                        printf("Input id of book\r\n");
                        int id;
                        scanf("%i", id);
                        printf("\r\n");
                        
                        remove_book(id);
                        
                        break;
                    }
                }
            }
            
            
            
         }
         else 
         {
            printf("Problem with openning the file %s\r\n exit\r\n", filename);
             return -1;//если это не выполняется, то программа выходит
         }
 
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2014, 12:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос База данных. Выдает ошибки (C++):

База данных студентов (найти ошибки) - C++
доброго всем время суток!!!!хотел бы обратится за помощью к тем,кто с программированием на &quot;ты&quot;. просьба небольшая,просто я написал прогу...

Выдает ошибки - C++
Помогите исправить #include &quot;stdafx.h&quot; #include &lt;cstring&gt; #include &lt;iostream&gt; using namespace std; class integer17 { ...

Выдает ошибки - C++
Помогите исправить #include &quot;stdafx.h&quot; #include &lt;cstring&gt; #include &lt;iostream&gt; using namespace std; class integer1 { ...

Выдает ошибки. - C++
Помогите разобраться, пишу программы в универе, запускаю и все работает, прихожу домой запускаю эту же программу, а С++ выдает мне...

Программа выдает ошибки - C++
#include &quot;iostream.h&quot; #include &quot;conio.h&quot; void vvod(int a,int n,int m) { int i,j; cout&lt;&lt;&quot;Vvedite elementi massiva\n&quot;; ...

Студия выдает ошибки - C++
Студия при компиляции выдает ошибки, раньше на пк стояла другая винда там все работало а с новой не хочет, компилирует тока си-шарп,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5310 / 4630 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
08.05.2014, 13:08 #2
При создании vector, слово struct убрать для начала. И зачем их 2 в 47 и в 56 строках? Это разные, что ли?
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 88
08.05.2014, 13:16  [ТС] #3
не разные. одинаковые. убрал struct. ничего не меняет. все также(в плане ошибок)
nmcf
5310 / 4630 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
08.05.2014, 13:40 #4
Ошибки то какие? В каких строках?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.05.2014, 13:45 #5
Цитата Сообщение от Ms Proger Посмотреть сообщение
C++
1
vector<struct BD_T> gl_vector[count_of_books];
Это вообще-то не вектор размера count_of_books, а массив векторов.
Для установки начального размера надо вызывать конструктор с параметром:
C++
1
vector<struct BD_T> gl_vector(count_of_books);// круглые скобки
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 88
08.05.2014, 13:48  [ТС] #6
C++
1
2
3
4
5
6
7
8
Ошибка  1   error C2628: недопустимый 'BD_T' с последующим 'int' (возможно, отсутствует ';')    c:\users\днс\documents\visual studio 2008\projects\база данных\база данных\база данных.cpp  16
Ошибка  2   error C2664: BD_T::BD_T(const BD_T &): невозможно преобразовать параметр 1 из 'int' в 'const BD_T &'    c:\users\днс\documents\visual studio 2008\projects\база данных\база данных\база данных.cpp  21
Ошибка  3   error C2057: требуется константное выражение    c:\users\днс\documents\visual studio 2008\projects\база данных\база данных\база данных.cpp  56
Ошибка  4   error C2466: невозможно выделить память для массива постоянного нулевого размера    c:\users\днс\documents\visual studio 2008\projects\база данных\база данных\база данных.cpp  56
Ошибка  5   error C2133: gl_vector: неизвестный размер  c:\users\днс\documents\visual studio 2008\projects\база данных\база данных\база данных.cpp  56
Ошибка  6   error C2679: бинарный '>>': не найден оператор, принимающий правый операнд типа 'std::string' (или приемлемое преобразование отсутствует)   c:\users\днс\documents\visual studio 2008\projects\база данных\база данных\база данных.cpp  102
Ошибка  7   error C2679: бинарный '>>': не найден оператор, принимающий правый операнд типа 'std::string' (или приемлемое преобразование отсутствует)   c:\users\днс\documents\visual studio 2008\projects\база данных\база данных\база данных.cpp  104
Ошибка  8   error C2562: main: функция типа 'void', возвращающая значение   c:\users\днс\documents\visual studio 2008\projects\база данных\база данных\база данных.cpp  130
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.05.2014, 13:49 #7
Вот так по крайней мере собирается:
Кликните здесь для просмотра всего текста
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
#include <locale.h>
#include <iostream>
#include <vector>
#include <cstdio>
 
using namespace std;
 
struct BD_T//задаем б.д.
{
    int id;
    string NameOfBook;//имя книги
    string TypeOfBook;//тип книги
};
 
int add_book(string NameOfBook, string TypeOfBook)
{
    int id = 0;
    //create new struct BD_T and push back this struct to vector
    //return id of new book
    return id;
}
 
int remove_book(int id)
{
    //remove book with id = id from vector
    return 0;
}
 
int print_books(int id, bool all)
{
    if (all == true)
    {
        //print all books from vector
    }
    else
    {
        //print books from vector with id = id
    }
    return 0;
}
     
     int main()
     {
         char filename[15];//задаем имя файла (15 символов)
         int count_of_books;
         std:vector<struct BD_T> bd_vector;
         printf("Enter the name of file: ");
         scanf("%s", filename); //вводим имя файла с клавиатуры
         printf("\r\n");
         FILE * file=fopen(filename,"r");
            
         if(file!=NULL)
         {
            fscanf(file, "%i", &count_of_books); //read count of books from file.
            vector<struct BD_T> gl_vector(count_of_books); //create vector of BD_T with size count_of_books
            printf("Success\r\n");
            
            int flag = 0;
            while (flag != -1)
            {
                printf("------------------------\r\n");
                printf("Main menu:\r\n");
                printf("0 - exit\r\n");
                printf("1 - print all books\r\n");
                printf("2 - printf books by id\r\n");
                printf("3 - add_book\r\n");
                printf("4 - remove book by id\r\n");
                printf("------------------------\r\n");
                scanf("%i", &flag);
                printf("\r\n");
                switch(flag)
                {
                    case 0:
                    {
                        flag = -1;
                        printf("exit\r\n");
                        break;
                    }
                    case 1:
                    {
                        print_books(0, true);
                        
                        break;
                    }
                    case 2:
                    {
                        printf("Input id of book\r\n");
                        int id;
                        scanf("%i", id);
                        printf("\r\n");
                        
                        print_books(id, false);
                        
                        break;
                    }
                    case 3:
                    {
                        string name;
                        string type;
                        printf("Input name of books: \r\n");
                        cin>>name;
                        printf("Input type of books: \r\n");
                        cin>>type;
                        
                        add_book(name,type);
                        
                        break;
                    }
                    case 4:
                    {
                        printf("Input id of book\r\n");
                        int id;
                        scanf("%i", id);
                        printf("\r\n");
                        
                        remove_book(id);
                        
                        break;
                    }
                }
            }
            
            
            
         }
         else 
         {
            printf("Problem with openning the file %s\r\n exit\r\n", filename);
             return -1;//если это не выполняется, то программа выходит
         }
 
    }
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 88
08.05.2014, 13:54  [ТС] #8
Добавлено через 3 минуты
извиняюсь, а следует добавлять stdafx.h?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.05.2014, 13:56 #9
Цитата Сообщение от Ms Proger Посмотреть сообщение
а следует добавлять stdafx.h?
Если Вам это нужно - добавляйте, а вообще, нет
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 88
08.05.2014, 14:10  [ТС] #10
как чувствовал:

ругается компиллятор: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.

подскажите почему?

Добавлено через 11 минут
мне кажется, программа не компиллируется....
nmcf
5310 / 4630 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
08.05.2014, 14:19 #11
Ну добавь, если он нужен. Мешает, что ли?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.05.2014, 14:19 #12
Цитата Сообщение от Ms Proger Посмотреть сообщение
Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
Для справки http://stackoverflow.com/a/4726838/3240681
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 88
08.05.2014, 14:36  [ТС] #13
В том то и дело, что добавляю, и возникает куча ошибок. Спасибо за статью)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2014, 14:36
Привет! Вот еще темы с ответами:

Компилятор выдает ошибки - C++
Почему компилятор Microsoft Visual C++ 7.1 не хочет компилить вот этот код: #include &lt;fstream&gt; long a, b, c; int main(){ ...

Программа выдает ошибки - C++
Помогите, пожалуйста, исправить ошибки #include &lt;iostream&gt; //5,21//переделать #include &lt;string&gt; #include &lt;algorithm&gt; using...

Компилятор выдает бредовые ошибки - C++
1&gt;f:\lessons\c++\projects-2013\students-beta\students\usestudents.cpp(4): error C2628: недопустимый &quot;Students&quot; с последующим &quot;int&quot;...

проверить массив двумерный выдает ошибки.. - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;math.h&gt; int main() { double **a,tmp; int i,j,max,min,n,m; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.05.2014, 14:36
Ответ Создать тему
Опции темы

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