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

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

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

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

08.05.2014, 12:51. Просмотров 257. Ответов 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;//если это не выполняется, то программа выходит
         }
 
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4771 / 4109 / 1373
Регистрация: 14.04.2014
Сообщений: 16,130
08.05.2014, 13:08     База данных. Выдает ошибки #2
При создании vector, слово struct убрать для начала. И зачем их 2 в 47 и в 56 строках? Это разные, что ли?
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
08.05.2014, 13:16  [ТС]     База данных. Выдает ошибки #3
не разные. одинаковые. убрал struct. ничего не меняет. все также(в плане ошибок)
nmcf
4771 / 4109 / 1373
Регистрация: 14.04.2014
Сообщений: 16,130
08.05.2014, 13:40     База данных. Выдает ошибки #4
Ошибки то какие? В каких строках?
Tulosba
:)
Эксперт С++
4387 / 3230 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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
Сообщений: 77
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
:)
Эксперт С++
4387 / 3230 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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
Сообщений: 77
08.05.2014, 13:54  [ТС]     База данных. Выдает ошибки #8
Добавлено через 3 минуты
извиняюсь, а следует добавлять stdafx.h?
Tulosba
:)
Эксперт С++
4387 / 3230 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
08.05.2014, 13:56     База данных. Выдает ошибки #9
Цитата Сообщение от Ms Proger Посмотреть сообщение
а следует добавлять stdafx.h?
Если Вам это нужно - добавляйте, а вообще, нет
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
08.05.2014, 14:10  [ТС]     База данных. Выдает ошибки #10
как чувствовал:

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

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

Добавлено через 11 минут
мне кажется, программа не компиллируется....
nmcf
4771 / 4109 / 1373
Регистрация: 14.04.2014
Сообщений: 16,130
08.05.2014, 14:19     База данных. Выдает ошибки #11
Ну добавь, если он нужен. Мешает, что ли?
Tulosba
:)
Эксперт С++
4387 / 3230 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
08.05.2014, 14:19     База данных. Выдает ошибки #12
Цитата Сообщение от Ms Proger Посмотреть сообщение
Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
Для справки http://stackoverflow.com/a/4726838/3240681
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2014, 14:36     База данных. Выдает ошибки
Еще ссылки по теме:

C++ поправьте код компилятор выдает ошибки
C++ Студия выдает ошибки
C++ Выдает ошибки
Выдает ошибки C++
Программа выдает ошибки C++

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

Или воспользуйтесь поиском по форуму:
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
08.05.2014, 14:36  [ТС]     База данных. Выдает ошибки #13
В том то и дело, что добавляю, и возникает куча ошибок. Спасибо за статью)
Yandex
Объявления
08.05.2014, 14:36     База данных. Выдает ошибки
Ответ Создать тему
Опции темы

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