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

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

Войти
Регистрация
Восстановить пароль
 
TermenatorX
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
#1

Реализовать базу данных через текстовый файл - C++

22.02.2013, 22:21. Просмотров 495. Ответов 5
Метки нет (Все метки)

народ у меня есть вопрос как сделать чтобы программа на си++ записывала данные в одномерный массив а потом записывала данные массива в файл например тхт формата, также в этой программе должна присутствовать функция открытия записанного нами массива и его редактирования. Понимаю что это сложно но этот форум не для школьников.
заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2013, 22:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать базу данных через текстовый файл (C++):

Реализовать базу данных ГАИ - C++
Реализовать базу данных ГАИ по штрафным квитанциям с помощью бинарного дерева. Ключом будет служить номер автомашины, значением узла -...

Реализовать базу данных ГАИ - C++
Добрый день. Помогите разобраться, у меня проблема, я написал бинарное дерево, написал односвязный список, но не понимаю как это все...

Реализовать базу данных в виде массива - C++
Основываясь не этой структуре: struct clientData{ int accNum; char Sur; char Name; float balance; }; которая была...

Реализовать базу данных в виде массива - C++
Основываясь не этой структуре: struct clientData //клиент { int accNum; //номер счёта char Sur; //фамилия char...

Зачет [реализовать базу данных в виде массива] - C++
Основываясь не этой структуре: struct clientData //клиент { int accNum; //номер счёта char Sur; //фамилия char...

Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде локальной переменной внутри функции. - C++
Совсем не понял эту тему. Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде...

5
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.02.2013, 22:27 #2
Цитата Сообщение от TermenatorX Посмотреть сообщение
у меня есть вопрос как сделать
Создаешь вектор, данные туда. Алгоритмом copy в ofstream записываешь. Тем же алгоритмом читаешь из файла в вектор, меняешь в векторе и переписываешь в файл.
1
TermenatorX
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
22.02.2013, 22:30  [ТС] #3
Цитата Сообщение от Vourhey Посмотреть сообщение
Создаешь вектор
я знаю многое но в си++ не очень объясни пожалуйста что такое вектор
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.02.2013, 22:47 #4
Цитата Сообщение от TermenatorX Посмотреть сообщение
я знаю многое но в си++ не очень объясни пожалуйста что такое вектор
Это контейнер STL. #include <vector> и документацию чуть почитать. Будет круто.
1
KostyaKulakov
Заблокирован
23.02.2013, 21:04 #5
Недавно делал, что-то подобное

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
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
 
class Database
{
public:
    Database(){count = 0;}
 
    void  addRecord(std::string name, std::string lastname);
    std::string getNameById(int id);
    std::string getLastNameById(int id);
    int   getCount();
    void  save();
    void  load();
    void  editRecord(int id, std::string name, std::string lastname);
    void  printDatabase();
 
protected:
    int count;
    std::string name[100];
    std::string lastname[100];
};
 
void  Database::editRecord(int id, std::string name, std::string lastname)
{
 
    this->name[id] = name;
    this->lastname[id] = lastname;
}
 
int Database::getCount()
{
    return count;
}
 
void Database::addRecord(std::string name, std::string lastname)
{
    this->name[count] = name;
    this->lastname[count] = lastname;
    ++count;
}
 
std::string Database::getNameById(int id)
{
    return name[id];
}
 
std::string Database::getLastNameById(int id)
{
    return lastname[id];
}
 
void  Database::save()
{
    std::ofstream output;
    output.open("database.txt");
 
    if(!output.is_open())
    {
        std::cerr << "Error open database.txt" << std::endl;
        exit(1);
    }
 
    output.clear();
 
    std::string delete_flag = "%delete";
 
    for(int i=0; i < count; ++i)
    {
        if(getNameById(i) != delete_flag && getLastNameById(i) != delete_flag)
            output << getNameById(i) << " " << getLastNameById(i) << std::endl;
    }
 
    output.close();
 
}
 
void  Database::load()
{
    std::ifstream input;
    input.open("database.txt");
 
    if(!input.is_open())
    {
        std::cerr << "Error open database.txt" << std::endl;
        exit(1);
    }
 
    while(!input.eof())
    {
        std::string name;
        input >> name;
        std::string lastname;
        input >> lastname;
        
        if(name != "")
            addRecord(name,lastname);
    }
 
    input.close();
 
}
 
void Database::printDatabase()
{
    for(int i=0; i < count; ++i)
        std::cout << i << "." << getNameById(i) << " " << getLastNameById(i) << std::endl;
}
 
void AddRecord(Database& server)
{
    std::cout << "Enter Name: ";
 
    std::string name;
    std::cin >> name;
 
    std::cout << "Enter LastName: ";
 
    std::string lastname;
    std::cin >> lastname;
 
    server.addRecord(name,lastname);
}
 
void EditRecord(Database& server)
{
 
    std::cout << "Enter Id: ";
 
    int id;
    std::cin >> id;
 
    std::cout << "Enter Name: ";
 
    std::string name;
    std::cin >> name;
 
    std::cout << "Enter LastName: ";
 
    std::string lastname;
    std::cin >> lastname;
 
    server.editRecord(id,name,lastname);
}
 
void DeleteRecord(Database& server)
{
    std::cout << "Enter Id: ";
 
    int id;
    std::cin >> id;
 
    std::string delete_flag = "%delete";
 
    server.editRecord(id,delete_flag, delete_flag);
}
 
void menu(Database& server)
{
    bool end = false;
 
    while(!end)
    {
        std::cout << "Menu control Database " << std::endl << std::endl;
 
        std::cout << "1. Load Database" << std::endl;
 
        std::cout << "2. Add Record" << std::endl;
 
        std::cout << "3. Delete Record" << std::endl;
 
        std::cout << "4. Print Record" << std::endl;
 
        std::cout << "5. Save Database" << std::endl;
        
        std::cout << "6. Edit Record" << std::endl;
 
        std::cout << "7. Exit" << std::endl;
 
        std::cout << "\n\nEnter menu number: ";
 
        int answer;
        std::cin >> answer;
 
        switch(answer)
        {
            case 1:
                server.load();
                system("cls");
                break;
            case 2:
                AddRecord(server);
                system("pause");
                system("cls");
                break;
            case 3:
                DeleteRecord(server);
                system("pause");
                system("cls");
                break;
            case 4:
                server.printDatabase();
                system("pause");
                system("cls");
                break;
            case 5:
                server.save();
                system("pause");
                system("cls");
                break;
            case 6:
                EditRecord(server);
                system("cls");
                break;
            case 7:
                end = true;
                break;
        }
        
    }
}
 
int main()
{
    Database server;
    
    menu(server);
 
    return 0;
}
1
Kastaneda
23.02.2013, 21:41     Реализовать базу данных через текстовый файл
  #6

Не по теме:

я уж хотел было что-нибудь типа SQLite посоветовать, а тут вон оно че - "вопрос не для школьников")

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2013, 21:41
Привет! Вот еще темы с ответами:

Действительно ли сложно реализовать на C++ отправку запроса в базу данных? - C++
Дорогие форумчане, мои знакомые имели неудачный опыт сотрудничества с программистами на коммерческой основе! Короче говоря заказали...

На базе класса Queue реализовать простую базу данных - C++
На базе класса Queue (очередь на основе связанного списка) необходимо реализовать простую базу данных.

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

Реализовать через тип данных структура при этом выделить память через new[] - C++
В таблице из 5 строк хранятся данные о товарах: наименование, цена, количество. Определить и вывести наименование товара, цена которого...


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

Или воспользуйтесь поиском по форуму:
6
23.02.2013, 21:41
Ответ Создать тему
Опции темы

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