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

Реализация программы(из файл) - C++

Восстановить пароль Регистрация
 
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
11.04.2013, 15:11     Реализация программы(из файл) #1
Здравствуйте.Нужно было реализовать программу и выполнить некоторые ф-ии, ну вообщем воот

Реализовать программу, автоматизирующую учет прокатов автомобилей.
Первый файл содержит информацию об автомобилях:
• Идентификатор (уникальный номер) автомобиля;
• Марка;
• Модель;
• Год выпуска
• Пробег
• Стоимость аренды в сутки.
Второй файл содержит информацию об арендаторах:
• Идентификатор (уникальный номер) арендатора;
• ФИО;
• Номер телефона;
• Номер паспорта;
• Стаж вождения.
Третий файл содержит информацию об арендах:
• Идентификатор арендованного автомобиля;
• Идентификатор арендатора;
• Дата аренды;
• Срок аренды;
• Итоговая стоимость аренды с учетом скидок (зависит от стажа арендатора: 1 год стажа – 1% скидки).

Программа должна реализовать следующие функции:
1. Добавление/редактирование записей в файлах (изменение характеристик) автомобилей и арендаторов.
2. Добавление информации об аренде в файл аренды
3. Удаление записей из файлов автомобилей и арендаторов, если нет записи в файле об арендах с соответствующими идентификаторами автомобилей и арендаторов
4. Получение списка всех аренд некоторого пользователя по его ФИО
5. Получение списка аренд за указанный период времени
6. Получить информацию о всех арендах автомобилей заданной марки (по названию

Написала программу, не работает( Подскажите в чем и где моя ошибка пожалуйста, всю ночь просидела не могу найти(

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
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
#include <iostream>
 #include<fstream>
 #include<string>
 
 
 using namespace std;
 struct avto
 {
 int id_avto;
 char marka[10];
 char model[10];
 int year;
 int probeg;
 int price;
 };
 
 struct arendator
 {
 int id_ar;
 char fio[30];
 int tel;
 int pasport;
 int stag;
 };
 
 struct arendy
 {
 int id_avto;
 int id_ar;
 char data[10]; //dd.mm.yyyy
 int srok; //в днях
 double cost;
 };
 
 void create_arendator(ifstream &f, ofstream &g)
 {
 
 arendator a;
 while(!f.eof())
 {f»a.id_ar»a.fio»a.tel»a.pasport»a.stag;
 g.write((char*)&a, sizeof(arendator));
 }
 }
 
 void create_arendy(ifstream &f, ofstream &g)
 {
 arendy a;
 while(!f.eof())
 {f»a.id_avto»a.id_ar»a.data»a.srok»a.cost;
 g.write((char*)&a, sizeof(arendy));
 }
 }
 
 void show_avto(ifstream &f)
 {
 avto a;
 while(!f.eof())
 { f.read((char*)&a, sizeof(avto));
 cout«a.id_avto«" "«a.marka«' '
 «a.model«' '«a.year«' '«a.probeg«' '«a.price«endl;
 }
 }
 
 void add_avto (ofstream &out)
 {
 avto a;
 cin»a.id_avto»a.marka»a.model»a.year»a.probeg»a.price;
 out.write ((char*) &a,sizeof(avto));
 }
 
 void add_arendator (ofstream &out)
 {
 arendator a;
 cin»a.id_ar»a.fio»a.tel»a.pasport»a.stag;
 out.write ((char*) &a, sizeof(arendator));
 }
 
 void add_arenda (ofstream &out)
 {
 arendy a;
 cin»a.id_avto»a.id_ar»a.data»a.srok»a.cost;
 out.write ((char*) &a, sizeof(arendy));
 }
 
 void delete_em (ifstream &inav, ifstream &inar, ifstream &inarendy, ofstream &oav, ofstream &oar)
 {
 ifstream inav ("avto.bin", ios::binary);
 ifstream inar ("arendator.bin", ios::binary);
 ifstream inarendy ("arendy.bin", ios::binary);
 ofstream oav ("avto_edited", ios::binary);
 ofstream oar ("arendator_edited", ios::binary);
 avto a;
 arendator b;
 arendy c;
 inav.read ((char*) &a, sizeof(avto));
 while (!inav.eof())
 {
 inarendy.read ((char*) &c, sizeof(arendy));
 bool found = false;
 while (!inarendy.eof()&&!flag)
 {
 if (a.id_avto==arendy.id_avto)
 {
 flag=true;
 oav.write((char*) &a, sizeof(avto));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 inav.read ((char*) &a, sizeof(avto));
 }
 inav.close();
 inarendy.close();
 inarendy.open("arendy.bin", ios::binary);
 inar.read ((char*) &b, sizeof(arendator));
 while (!inar.eof())
 {
 inarendy.read ((char*) &c, sizeof(arendy));
 bool found = false;
 while (!inarendy.eof()&&!flag)
 {
 if (b.id_ar==arendy.id_ar)
 {
 flag=true;
 oav.write((char*) &b, sizeof(arendator));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 inar.read ((char*) &b, sizeof(arendator));
 }
 inarendy.close();
 inar.close();
 }
 
 void vyvod_arendy (arendy c)
 {
 cout«c.id_avto«' '«c.id_ar«' '«c.data«' '«c.srok«' '«c.cost«endl;
 }
 
 void get_ar_by_fio (char name[])
 {
 ifstream inar ("arendator.bin", ios::binary);
 ifstream inarendy ("arendy.bin", ios::binary);
 arendator b;
 arendy c;
 int id;
 inar.read ((char*) &b, sizeof(arendator));
 bool f=false;
 while (!inar.eof()&&!f)
 {
 if (ctrcmp(b.fio,name)==0)
 {
 id = b.id_ar;
 f=true;
 }
 
 inar.read ((char*) &b, sizeof(arendator));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 while (!inarendy.eof())
 {
 if (id==c.id_ar)
 {
 vyvod_arendy(coffee);
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 if (!f) cout«"nothing found"«endl;
 }
 
 void get_ar_by_time (char data1[],char data2[])
 {
 ifstream inarendy ("arendy.bin", ios::binary);
 arendy c;
 inarendy.read ((char*) &c,
 sizeof(arendy));
 while (!inarendy.eof())
 {
 if ()//проверка входит ли дата аренды в заданный промежуток
 [14:24:07] Анастасия: времени
 {
 vyvod_arendy(coffee);
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 
 }
 
 void get_info_ar_by_marka(char mark[])
 {
 ifstream inav ("avto.bin", ios::binary);
 ifstream inarendy ("arendy.bin", ios::binary);
 avto a;
 arendy c;
 int id;
 inav.read ((char*) &a, sizeof(avto));
 bool f=false;
 while (!inav.eof())
 {
 if (strcmp (mark, a.marka)==0)
 {
 f=true;
 id = a.id_avto;
 }
 inav.read ((char*) &a, sizeof(avto));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 while (!inarendy.eof())
 {
 if (id==c.id_avto)
 {
 vyvod_arendy(coffee);
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 if (!f) cout«"nothing found"«endl;
 }
 
 void main()
 {
 ifstream in_avto("avto.txt");
 ifstream in_arendator("arendator.txt");
 ifstream in_arendy("arendy.txt");
 ofstream out_avto("avto.bin", ios::binary);
 ofstream out_arendator("arendator.bin", ios::binary);
 ofstream out_arendy("arendy.bin", ios::binary);
 create_avto(in_avto,out_avto);
 in_avto.close();
 out_avto.close();
 
 create_arendator(in_arendator, out_arendator);
 in_arendator.close();
 out_arendator.close();
 
 create_arendy(in_arendy, out_arendy);
 in_arendy.close();
 out_arendy.close();
 
 int i;
 cout«"select action:"«endl«"0-exit"«endl«"1-add avto"«endl«"2-add arendator"«endl«"3-add arenda"«endl;
 cout«"4-delete avto and arendators without arenda"«endl«"5-get list of arendy by fio"«endl;
 cout«"6-get list of arendy by time"«endl«"7-get info of arendy by avto mark"«endl;
 cin»i;
 while (i!=0)
 {
 switch(i)
 {
 case 0: break;
 case 1: out_avto.open("avto.bin", ios::binary); add_avto(out_avto); break;
 case 2: out_arendator.open("arendator.bin", ios::binary); add_arendator(out_arendator); break;
 case 3: out_arendy.open("arendy.bin", ios::binary); add_arenda(out_arendy); break;
 case 4: delete_em; break;
 case 5: char buf[30]; cout«"enter fio"«endl; cin»buf; get_ar_by_fio(buf); break;
 case 6: char time1 [10], time2 [10]; cout«"enter period of time dd.mm.yyyy"«endl; cin»time1»time2; get_ar_by_time(time1, time2); break;
 case 7: char mark[10]; cout«"enter marka"«endl; cin»mark; get_info_ar_by_marka (mark); break;
 }
 cout«"enter number if you want extra action. 0-exit"«endl;
 }
 
 //ifstream in1_avto("avto.bin", ios::binary);
 //show_avto(in1_avto);
 //in1_avto.close();
 
 return 0;
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hellrider_
 Аватар для Hellrider_
42 / 42 / 1
Регистрация: 12.03.2013
Сообщений: 112
11.04.2013, 15:48     Реализация программы(из файл) #2
Код нужно вставлять в теги для С++ в редакторе сообщения, что бы те кто будут помогать глаза не сломали . И покажите что дебагер говорит при компиляции.
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
11.04.2013, 16:22  [ТС]     Реализация программы(из файл) #3
Код
\main.cpp||In function 'void delete_em(std::ifstream&, std::ifstream&, std::ifstream&, std::ofstream&, std::ofstream&)':|
\main.cpp|86|error: declaration of 'std::ifstream inav' shadows a parameter|
\main.cpp|87|error: declaration of 'std::ifstream inar' shadows a parameter|
\main.cpp|88|error: declaration of 'std::ifstream inarendy' shadows a parameter|
\main.cpp|89|error: declaration of 'std::ofstream oav' shadows a parameter|
\main.cpp|90|error: declaration of 'std::ofstream oar' shadows a parameter|
\main.cpp|99|error: 'flag' was not declared in this scope|
\main.cpp|101|error: expected primary-expression before '.' token|
\main.cpp|118|error: 'flag' was not declared in this scope|
\main.cpp|120|error: expected primary-expression before '.' token|
\main.cpp||In function 'void get_ar_by_fio(char*)':|
\main.cpp|149|error: 'ctrcmp' was not declared in this scope|
\main.cpp|162|error: 'coffee' was not declared in this scope|
\main.cpp||In function 'void get_ar_by_time(char*, char*)':|
\main.cpp|177|error: expected primary-expression before ')' token|
\main.cpp|179|error: 'coffee' was not declared in this scope|
\main.cpp||In function 'void get_info_ar_by_marka(char*)':|
\main.cpp|197|error: 'strcmp' was not declared in this scope|
\main.cpp|209|error: 'coffee' was not declared in this scope|
\main.cpp|216|error: '::main' must return 'int'|
\main.cpp||In function 'int main()':|
\main.cpp|224|error: 'create_avto' was not declared in this scope|
||=== Build finished: 17 errors, 0 warnings ===|
Добавлено через 16 минут
Кто нибудь
Hellrider_
 Аватар для Hellrider_
42 / 42 / 1
Регистрация: 12.03.2013
Сообщений: 112
11.04.2013, 16:50     Реализация программы(из файл) #4
от куда берется flag, coffee, create_avto они нигде не обьявлены
C++
1
2
while (!inarendy.eof()&&!flag) // flag не обьявлен
vyvod_arendy(coffee); // от куда coffee ?
Добавлено через 2 минуты
Зачем в функции аргументы, если нигде в программе они этой функции не передаются?
C++
1
void delete_em (ifstream &inav1, ifstream &inar, ifstream &inarendy, ofstream &oav, ofstream &oar)
Добавлено через 15 минут
found нигде не используется, data1, data2 так же. Закоментил, то что не обьявлено и не дописано. В цикле while проверка if() нету аргументов что проверять, дописывайте что вам нужно там. Основные ошибки убраны, но реализация у вас не доделаная.

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
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
#include <iostream>
#include<fstream>
#include<string>
 
 
 using namespace std;
bool flag;
 struct avto
 {
 int id_avto;
 char marka[10];
 char model[10];
 int year;
 int probeg;
 int price;
 };
 
 struct arendator
 {
 int id_ar;
 char fio[30];
 int tel;
 int pasport;
 int stag;
 };
 
 struct arendy
 {
 int id_avto;
 int id_ar;
 char data[10]; //dd.mm.yyyy
 int srok; //в днях
 double cost;
 };
arendy ar;
 void create_arendator(ifstream &f, ofstream &g)
 {
 
 arendator a;
 while(!f.eof())
 {f >> a.id_ar >> a.fio >> a.tel >> a.pasport >> a.stag;
 g.write((char*)&a, sizeof(arendator));
 }
 }
 
 void create_arendy(ifstream &f, ofstream &g)
 {
 arendy a;
 while(!f.eof())
 {f >> a.id_avto >> a.id_ar >> a.data >> a.srok >> a.cost;
 g.write((char*)&a, sizeof(arendy));
 }
 }
 
 void show_avto(ifstream &f)
 {
 avto a;
 while(!f.eof())
 { f.read((char*)&a, sizeof(avto));
 cout << a.id_avto << " " << a.marka << ' '
 << a.model << ' ' << a.year << ' ' << a.probeg << ' ' << a.price << endl;
 }
 }
 
 void add_avto (ofstream &out)
 {
 avto a;
 cin >> a.id_avto >> a.marka >> a.model >> a.year >> a.probeg >> a.price;
 out.write ((char*) &a,sizeof(avto));
 }
 
 void add_arendator (ofstream &out)
 {
 arendator a;
 cin >> a.id_ar >> a.fio >> a.tel >> a.pasport >> a.stag;
 out.write ((char*) &a, sizeof(arendator));
 }
 
 void add_arenda (ofstream &out)
 {
 arendy a;
 cin >> a.id_avto>>a.id_ar>>a.data>>a.srok>>a.cost;
 out.write ((char*) &a, sizeof(arendy));
 }
 
 void delete_em ()
 {
 ifstream inav ("avto.bin", ios::binary);
 ifstream inar ("arendator.bin", ios::binary);
 ifstream inarendy ("arendy.bin", ios::binary);
 ofstream oav ("avto_edited", ios::binary);
 ofstream oar ("arendator_edited", ios::binary);
 avto a;
 arendator b;
 arendy c;
 inav.read ((char*) &a, sizeof(avto));
 while (!inav.eof())
 {
 inarendy.read ((char*) &c, sizeof(arendy));
 bool found = false;
 while (!inarendy.eof()&&!flag)
 {
 if (a.id_avto==c.id_avto)
 {
 flag=true;
 oav.write((char*) &a, sizeof(avto));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 inav.read ((char*) &a, sizeof(avto));
 }
 inav.close();
 inarendy.close();
 inarendy.open("arendy.bin", ios::binary);
 inar.read ((char*) &b, sizeof(arendator));
 while (!inar.eof())
 {
 inarendy.read ((char*) &c, sizeof(arendy));
 bool found = false;
 while (!inarendy.eof()&&!flag)
 {
 if (b.id_ar==c.id_ar)
 {
 flag=true;
 oav.write((char*) &b, sizeof(arendator));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 inar.read ((char*) &b, sizeof(arendator));
 }
 inarendy.close();
 inar.close();
 }
 
 void vyvod_arendy (arendy c)
 {
 cout << c.id_avto << ' ' << c.id_ar <<' ' << c.data <<' ' << c.srok << ' ' << c.cost << endl;
 }
 
 void get_ar_by_fio (char name[])
 {
 ifstream inar ("arendator.bin", ios::binary);
 ifstream inarendy ("arendy.bin", ios::binary);
 arendator b;
 arendy c;
 int id;
 inar.read ((char*) &b, sizeof(arendator));
 bool f=false;
 while (!inar.eof()&&!f)
 {
 if (strcmp(b.fio,name)==0)
 {
 id = b.id_ar;
 f=true;
 }
 
 inar.read ((char*) &b, sizeof(arendator));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 while (!inarendy.eof())
 {
 if (id==c.id_ar)
 {
 vyvod_arendy(ar);
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 if (!f) cout << "nothing found" << endl;
 }
 
 void get_ar_by_time (char data1[],char data2[])
 {
 ifstream inarendy ("arendy.bin", ios::binary);
 arendy c;
 inarendy.read ((char*) &c,
 sizeof(arendy));
// while (!inarendy.eof())
// {
// if ()//проверка входит ли дата аренды в заданный промежуток
 
// {
//  vyvod_arendy(ar);
// }
// inarendy.read ((char*) &c, sizeof(arendy));
// }
 
 }
 
 void get_info_ar_by_marka(char mark[])
 {
 ifstream inav ("avto.bin", ios::binary);
 ifstream inarendy ("arendy.bin", ios::binary);
 avto a;
 arendy c;
 int id;
 inav.read ((char*) &a, sizeof(avto));
 bool f=false;
 while (!inav.eof())
 {
 if (strcmp (mark, a.marka)==0)
 {
 f=true;
 id = a.id_avto;
 }
 inav.read ((char*) &a, sizeof(avto));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 while (!inarendy.eof())
 {
 if (id==c.id_avto)
 {
 vyvod_arendy(ar);
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 if (!f) cout << "nothing found" << endl;
 }
 
 void main()
 {
 ifstream in_avto("avto.txt");
 ifstream in_arendator("arendator.txt");
 ifstream in_arendy("arendy.txt");
 ofstream out_avto("avto.bin", ios::binary);
 ofstream out_arendator("arendator.bin", ios::binary);
 ofstream out_arendy("arendy.bin", ios::binary);
// create_avto(in_avto,out_avto);
 in_avto.close();
 out_avto.close();
 
 create_arendator(in_arendator, out_arendator);
 in_arendator.close();
 out_arendator.close();
 
 create_arendy(in_arendy, out_arendy);
 in_arendy.close();
 out_arendy.close();
 
 int i;
 cout << "select action:" <<endl<<"0-exit"<<endl<<"1-add avto"<<endl<<"2-add arendator"<<endl<<"3-add arenda"<<endl;
 cout<<"4-delete avto and arendators without arenda"<<endl<<"5-get list of arendy by fio"<<endl;
 cout<<"6-get list of arendy by time"<<endl<<"7-get info of arendy by avto mark"<<endl;
 cin>>i;
 while (i!=0)
 {
 switch(i)
 {
 case 0: break;
 case 1: out_avto.open("avto.bin", ios::binary); add_avto(out_avto); break;
 case 2: out_arendator.open("arendator.bin", ios::binary); add_arendator(out_arendator); break;
 case 3: out_arendy.open("arendy.bin", ios::binary); add_arenda(out_arendy); break;
 case 4: delete_em(); break;
 case 5: char buf[30]; cout<<"enter fio"<<endl; cin>>buf; get_ar_by_fio(buf); break;
 case 6: char time1 [10], time2 [10]; cout<<"enter period of time dd.mm.yyyy"<<endl; cin>>time1>>time2; get_ar_by_time(time1, time2); break;
 case 7: char mark[10]; cout<<"enter marka"<<endl; cin>>mark; get_info_ar_by_marka (mark); break;
 }
 cout<<"enter number if you want extra action. 0-exit"<<endl;
 }
 return;
  }
alex_04
2 / 2 / 0
Регистрация: 27.01.2013
Сообщений: 5
11.04.2013, 17:10     Реализация программы(из файл) #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
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
#include <iostream>
#include<fstream>
#include<string.h>
 
 
 using namespace std;
 struct avto
 {
 int id_avto;
 char marka[10];
 char model[10];
 int year;
 int probeg;
 int price;
 };
 
 struct arendator
 {
 int id_ar;
 char fio[30];
 int tel;
 int pasport;
 int stag;
 };
 
 struct arendy
 {
 int id_avto;
 int id_ar;
 char data[10]; //dd.mm.yyyy
 int srok; //в днях
 double cost;
 };
 
 void create_arendator(ifstream &f, ofstream &g)
 {
 
 arendator a;
 while(!f.eof())
 {
     f>>a.id_ar>>a.fio>>a.tel>>a.pasport>>a.stag;
     g.write((char*)&a, sizeof(arendator));
 }
 }
void create_avto(ifstream &f, ofstream &g)
{
 
 avto a;
 while(!f.eof())
 {
     f>>a.id_avto>>a.marka>>a.model>>a.year>>a.probeg>>a.price;
     g.write((char*)&a, sizeof(avto));
 }
 }
 void create_arendy(ifstream &f, ofstream &g)
 {
 arendy a;
 while(!f.eof())
 {f>>a.id_avto>>a.id_ar>>a.data>>a.srok>>a.cost;
 g.write((char*)&a, sizeof(arendy));
 }
 }
 
 void show_avto(ifstream &f)
 {
 avto a;
 while(!f.eof())
 { f.read((char*)&a, sizeof(avto));
 cout<<a.id_avto<<" "<<a.marka<<' '
 <<a.model<<' '<<a.year<<' '<<a.probeg<<' '<<a.price<<endl;
 }
 }
 
 void add_avto (ofstream &out)
 {
 avto a;
 cin>>a.id_avto>>a.marka>>a.model>>a.year>>a.probeg>>a.price;
 out.write ((char*) &a,sizeof(avto));
 }
 
 void add_arendator (ofstream &out)
 {
 arendator a;
 cin>>a.id_ar>>a.fio>>a.tel>>a.pasport>>a.stag;
 out.write ((char*) &a, sizeof(arendator));
 }
 
 void add_arenda (ofstream &out)
 {
 arendy a;
 cin>>a.id_avto>>a.id_ar>>a.data>>a.srok>>a.cost;
 out.write ((char*) &a, sizeof(arendy));
 }
 
 void delete_em (ifstream &inav, ifstream &inar, ifstream &inarendy, ofstream &oav, ofstream &oar)
 {
 /*ifstream inav ("avto.bin", ios::binary);
 ifstream inar ("arendator.bin", ios::binary);
 ifstream inarendy ("arendy.bin", ios::binary);
 ofstream oav ("avto_edited", ios::binary);
 ofstream oar ("arendator_edited", ios::binary);*/
 avto a;
 arendator b;
 arendy c;
 inav.read ((char*) &a, sizeof(avto));
 while (!inav.eof())
 {
 inarendy.read ((char*) &c, sizeof(arendy));
 bool flag = false;
 while (!inarendy.eof()&&!flag)
 {
 if(a.id_avto==c.id_avto)
 {
 flag=true;
 oav.write((char*) &a, sizeof(avto));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 inav.read ((char*) &a, sizeof(avto));
 }
 inav.close();
 inarendy.close();
 inarendy.open("arendy.bin", ios::binary);
 inar.read ((char*) &b, sizeof(arendator));
 while (!inar.eof())
 {
 inarendy.read ((char*) &c, sizeof(arendy));
 bool flag = false;
 while (!inarendy.eof()&&!flag)
 {
 if (b.id_ar==c.id_ar)
 {
 flag=true;
 oav.write((char*) &b, sizeof(arendator));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 inar.read ((char*) &b, sizeof(arendator));
 }
 inarendy.close();
 inar.close();
 }
 
 void vyvod_arendy (arendy c)
 {
 cout<<c.id_avto<<' '<<c.id_ar<<' '<<c.data<<' '<<c.srok<<' '<<c.cost<<endl;
 }
 
 void get_ar_by_fio (char name[])
 {
 ifstream inar ("arendator.bin", ios::binary);
 ifstream inarendy ("arendy.bin", ios::binary);
 arendator b;
 arendy c;
 int id;
 inar.read ((char*) &b, sizeof(arendator));
 bool f=false;
 while (!inar.eof()&&!f)
 {
 if (strcmp(b.fio,name)==0)
 {
 id = b.id_ar;
 f=true;
 }
 
 inar.read ((char*) &b, sizeof(arendator));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 while (!inarendy.eof())
 {
 if (id==c.id_ar)
 {
 vyvod_arendy(c);
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 if (!f) cout<<"nothing found"<<endl;
 }
 void get_ar_by_time(char data1[],char data2[])
 {
 ifstream inarendy ("arendy.bin", ios::binary);
 arendy c;
 inarendy.read ((char*) &c,
 sizeof(arendy));
 while (!inarendy.eof())
 {
 /*if ()//проверка входит ли дата аренды в заданный промежуток
 //[14:24:07] Анастасия: времени
 {
 vyvod_arendy(c);
 }*/
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 
 }
 
 void get_info_ar_by_marka(char mark[])
 {
 ifstream inav ("avto.bin", ios::binary);
 ifstream inarendy ("arendy.bin", ios::binary);
 avto a;
 arendy c;
 int id;
 inav.read ((char*) &a, sizeof(avto));
 bool f=false;
 while (!inav.eof())
 {
 if (strcmp (mark, a.marka)==0)
 {
 f=true;
 id = a.id_avto;
 }
 inav.read ((char*) &a, sizeof(avto));
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 while (!inarendy.eof())
 {
 if (id==c.id_avto)
 {
 vyvod_arendy(c);
 }
 inarendy.read ((char*) &c, sizeof(arendy));
 }
 if (!f) cout<<"nothing found"<<endl;
 }
 
 int main()
 {
 ifstream in_avto("avto.txt");
 ifstream in_arendator("arendator.txt");
 ifstream in_arendy("arendy.txt");
 ofstream out_avto("avto.bin", ios::binary);
 ofstream out_arendator("arendator.bin", ios::binary);
 ofstream out_arendy("arendy.bin", ios::binary);
 create_avto(in_avto,out_avto);
 
 
 create_arendator(in_arendator, out_arendator);
 
 create_arendy(in_arendy, out_arendy);
 
 int i;
 cout<<"select action:"<<endl<<"0-exit"<<endl<<"1-add avto"<<endl<<"2-add arendator"<<endl<<"3-add arenda"<<endl;
 cout<<"4-delete avto and arendators without arenda"<<endl<<"5-get list of arendy by fio"<<endl;
 cout<<"6-get list of arendy by time"<<endl<<"7-get info of arendy by avto mark"<<endl;
 while (i!=0)
 {
 cin>>i;
 switch(i)
 {
 case 0: break;
 case 1: out_avto.open("avto.bin", ios::binary); add_avto(out_avto); break;
 case 2: out_arendator.open("arendator.bin", ios::binary); add_arendator(out_arendator); break;
 case 3: out_arendy.open("arendy.bin", ios::binary); add_arenda(out_arendy); break;
 case 4: delete_em(in_avto,in_arendator,in_arendy,out_avto,out_arendator); break;
 case 5: char buf[30]; cout<<"enter fio"<<endl; cin>>buf; get_ar_by_fio(buf); break;
 case 6: char time1 [10], time2 [10]; cout<<"enter period of time dd.mm.yyyy"<<endl; cin>>time1>>time2; get_ar_by_time(time1, time2); break;
 case 7: char mark[10]; cout<<"enter marka"<<endl; cin>>mark; get_info_ar_by_marka (mark); break;
 }
 cout<<"enter number if you want extra action. 0-exit"<<endl;
 }
 in_arendy.close();
 out_arendy.close();
 in_arendator.close();
 out_arendator.close();
 in_avto.close();
 out_avto.close();
 //ifstream in1_avto("avto.bin", ios::binary);
 //show_avto(in1_avto);
 //in1_avto.close();
 
 return 0;
 }
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
11.04.2013, 17:43  [ТС]     Реализация программы(из файл) #6
Кошмар((((((((((

Добавлено через 1 минуту
Как понять реализация не закончена?


Добавлено через 20 минут
???
Yandex
Объявления
11.04.2013, 17:43     Реализация программы(из файл)
Ответ Создать тему
Опции темы

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