Вопрос : Как я создаю тип регулирует I/O архива для программы ресервирования проката автомобиля?

Основно, я хочу добавить тип который регулирует весь вход-выход архива внизу программы. Прикрепленная программа должна мы имеем до тех пор в попытке препятствовать потребителю арендовать автомобиль (если он не уже сдержанный), то, проверить ресервирование и отменить ресервирование. Она все еще пропускает некоторые части но я обеспокоенный с создавать новый архив регулируя тип. И если так, как могу я пойти около сделать его?

I am новичок на C++ и к этому форуму поэтому я извиняется если что-нибыдь звучает шальным. (Я также вверх по кодировать на 40 часов прошлые 48!) Спасибо заранее к всякий, кто принимают время помочь!
class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
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:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
class= " id= " codeSnippet737196
 .cpp
 #include
 #include
#include 


#include «car.h»
#include «customer.h»
#include «res.h»

using namespace std;

convTime time_t (день int, месяц int, год int)
{
   rawtime time_t;
   struct tm * timeinfo;
   время (&rawtime);
   timeinfo = localtime (&rawtime);
   timeinfo->tm_year = год - 1900;
   timeinfo->tm_mon = месяц - 1;
   timeinfo->tm_mday = день;
   возвращенное mktime (timeinfo);
}

askForTime time_t ()
{
    день int, месяц, год;
    cout << «пожалуйста вписывает все поля как номера.» << endl;
    cout << «день: »;
    cin >> день;
    cout << «месяц: »;
    cin >> месяц;
    cout << «год: »;
    cin >> год;
    возвращенное convTime (день, месяц, год);
}

createCust клиента ()
{
	cName шнура, cAddress, cccNumber, cccType, cEmail;
    cout<< " пожалуйста вписывает ваше имя и после этого отжимает входит. «<> cName;
	
	cout<< " пожалуйста вписывает ваш адрес и после этого отжимает входит. «<> cAddress;
	
	cout<< " пожалуйста вписывает ваш номер кредитной карты и после этого отжимает входит. «<> cccNumber;
	
	cout<< " пожалуйста вписывает ваш тип кредитной карточки и после этого отжимает входит. «<> cccType;
	
	cout<< " пожалуйста вписывает ваш адрес электронная почта и после этого отжимает входит. «<> cEmail;
	
	возвращенный клиент (cName, cAddress, cccNumber, cccType, cEmail);
}

основа int (свободное пространство)
{
    клиенты vector;
	Автомобиль carArray [10] = {
	    Автомобиль (1, «средний размер», 50.00, ложные),
		Автомобиль (2, «средний размер», 55.00, true),
		Автомобиль (3, «компакт», 40.00, ложные),
		Автомобиль (4, «компакт», 45.00, true),
		Автомобиль (5, «полная величина», 55.00, ложные),
		Автомобиль (6, «полная величина», 60.00, true),
		Автомобиль (7, «минифургон», 55.00, ложные),
		Автомобиль (8, «минифургон», 60.00, true),
		Автомобиль (9, «SUV», 60.00, ложное),
		Автомобиль (10, «SUV», 65.00, true),
    };

	выбор int;
	Клиент * currentCust;
	notDone bool = true;

	cout << «пожалуйста делает выбор: » << endl;
	cout << «1. Я буду новым клиентом. » << endl;
	cout << «2. Я буду существующий клиентом. » << endl;
	cout << «1 или 2: »;
	cin >> выбор;
	если (== выбора 1)
	{
         customers.push_back (createCust ());
         currentCust = &customers [customers.size () - 1];
    }
    еще если (== выбора 2)
    {
         cout << «клиент будет вами?» << endl;
         для (int iий = 0; iий < customers.size (); i++)
             cout << (i+1) << «. » << клиенты [I] .getName () << endl;
         cout << «? »;
         cin >> выбор;
         currentCust = &customers [выбор];
    }
  пока (notDone) {
    cout << endl << endl;
    cout << «пожалуйста делает выбор: » << endl;     
    cout << «1.  Сделайте ресервирование» << endl;
	cout << «2. осматривает план-график ресервирования» << endl; 
	cout << «выход 3.» << endl;
    cout << «? »;
	cin >> выбор;

	если (== выбора 1) 
    {
  		cout << «пожалуйста вписывает уточнение выбора.» << endl;
		outD = askForTime time_t ();
		cout << «пожалуйста вписывает возвращенную дату.» << endl;
		time_t inD = askForTime ();
		cout << «пожалуйста Input удостоверение личности номер автомобиля (1-10): »;
		idNum int;
        cin >> idNum;
        Ресервирование r = ресервирование (outD, inD, idNum, currentCust);
        cout << «ваше ресервирование было подтвержено. »;
    }
    еще если (== выбора 3)
         notDone = ложно;
  }

	возвращение 0;
}

// customer.h

#ifndef H_CUSTOMER
#define H_CUSTOMER

#include

using namespace std;

клиент типа
{
публика:
	пустое const печати ();
	getName шнура ();
	getAddress шнура ();
	getccNumber шнура ();
	getccType шнура ();
	getEmail шнура ();
	Клиент (_name шнура, _address шнура, _ccNumber шнура, _ccType шнура, _email шнура);

приватно:
	имя шнура;
	адрес шнура;
	ccNumber шнура;
	ccType шнура;
	электронная почта шнура;
};

пустой клиент:: const печати ()
{
	< #include
 #include
 #include

#include «res.h»

using namespace std;

автомобиль типа
{
приватно:
       idNumber int;
       шнур cSize;
       двойное pricePerDay;
       курить bool;
       ресервирования vector;
публика:
       Автомобиль (int idN, шнур s, двойной p, bool sm);
       makeReservation bool (*res ресервирования);              
       пустое cancelReservation (*res ресервирования);
};

Автомобиль:: Автомобиль (int idN, шнур s, двойной p, bool sm)
{
     idNumber = idN;
     cSize = s;
     pricePerDay = p;
     курить = sm;
}

/*

В ожидании:

        автомобиль vector:: ресервирования;

        ресервирование bool:: конфликт ();

*

автомобиль bool:: makeReservation (*res ресервирования)
{
    для (int i=0; iий < reservations.size (); i++)
    {
        если (ресервирования [I] .conflict, то (res))  конфликт // возвращает поистине если даты противоречат. ПОКА НАПИСАНО
      ход // («конфликт дат ресервирования с другое reservation.");
     задвижка // (сообщение чарса [])
        {
              cout << «даты ресервирования противоречит с другим ресервированием.» << endl;
              возвращенное ложное;
        }
    }

    //now, котор мы знаем дата не противоречит. как раз потребность добавить ее
    reservations.push_back (*res);
/*
    уточнение //now архив ресервирования
    cout << «пытающ для того чтобы раскрыть» << FILENAME << endl;
    inp ifstream (FILENAME, ifstream:: в); 

    если (! inp.good ())
       ход («была проблема раскрывая ресервирование file.");
    задвижка (сообщение чарса [])
    {
        cout << сообщение << endl;
        возвращенное ложное;
    }

    пока (inp.good ())
    {
          //read ресервирования

    }
    *
    возвращенно true;
}

опорожните автомобиль:: cancelReservation (ресервирование * res)
{
     для (int i=0; iий < reservations.size (); i++)
         если (idNumber == res->getidNumber ()), то
              reservations.erase (reservations.begin () + I);
}

#endif

// res.h

#ifndef H_RESERVATION
#define H_RESERVATION

#include 
#include «car.h»
#include «customer.h»

using namespace std;

ресервирование типа
{
приватно:
    dateOut time_t;
    dateIn time_t;
	carID int;
    Клиент * custInfo;
    reservationNumber int;
    
    
публика:
    Ресервирование (dOut time_t, гам time_t, _carID int, клиент * custI);
    
    конфликт bool (*r ресервирования);
    
    getidNumber int ();
    getDateOut time_t ();
    getDateIn time_t ();
    int getCarReserved ();
    getCustInfo Customer* ();
    
};

ресервирование int:: getidNumber ()
{
    возвращенное reservationNumber;
}

ресервирование time_t:: getDateOut ()
{
       возвращенное dateOut;
}

ресервирование time_t:: getDateIn ()
{
       возвращенное dateIn;
}

ресервирование int:: getCarReserved ()
{
    возвращенное carID;
}

Ресервирование Customer*:: getCustInfo ()
{
         возвращенное custInfo;
}

ресервирование bool:: конфликт (*r ресервирования)
{
     если (, то (r->getDateIn () < dateOut) || (r->getDateOut () > dateIn))
        возвращенное ложное;
     возвращенно true;
}     

Ресервирование:: Ресервирование (dOut time_t, гам time_t, _carID int, клиент * custI)
{
   dateOut = dOut;
   dateIn = гам;
   carID = _carID;
   custInfo = custI;
   
}                             

#endif
class=

Ответ : Как я создаю тип регулирует I/O архива для программы ресервирования проката автомобиля?

Я имею ощупывание вы можете для того чтобы сломать этот тип вопрос проекта конструкции и вставкы в множественные вопросы на как-необходимое основание. Но, я попытаюсь получить завальцовку шарика с некоторыми предложениями. Но в случае если ваше вопрос в том, что общаясь с методами сочинительства архива, я хотел было бы вы взглянуть на этом соединении, и см. если идеи там передадут вам старт.
         http://w.e-e.com/SiwPQt

Один вопрос I/O вы отдавали себе отчет перед двигать дальше к архивам. Когда вы попросите адрес клиента, вы используете
      cin >> cAddress;
Но если адрес имеет космосы в ем, то это только выбирает вверх первое слово. Вы должны прочитать следующий соединение о getline для того чтобы разрешить эту проблему:
    http://www.cplusplus.com/reference/iostream/istream/getline/


===========================
Двигать дальше…
>>  вектор будет держать только 10 автомобилей при все перемеююые сохраненные к просто архиву .txt ВКЛЮЧАЯ ресервирования вектора.

Смотрит как вы создавайте вашу собственную базу данных. Вы можете принять следующий идеи и решить вы реально должны сделать для вашего назначения. Так, следующ за некоторым из подхода к конструкции db, рассматривайте создать не одно, но несколько архивов .txt:

- клиенты списков сортированные удостоверением личности клиента (номером one-up)
- списки инвентарь автомобиля сортированный удостоверением личности автомобиля (номером one-up)
- списки состояние автомобиля сортированное удостоверением личности автомобиля (т.е., оно в серии; или если не, включите удостоверение личности клиента и, то когда оно должное для того чтобы возвратить)
- ресервирования списков using критеря по вида (вероятно car_id с вторичным индексом даты начала ресервирования не плохое одним)
- история списков данных по выписывания счетов

Когда клиент принимает прокат, вход ресервирования извлекается, и архивы состояния выписывания счетов и автомобиля обновленный.
===========================

re: ваш тип архива
Вы требуемые, что имели тип архива; или smogли вы врезать деятельности I/O в ваши индивидуальные типы - автомобиль, клиент, и ресервирование? В каждое одном, вы конструктор smogли включить соответствуя filename и раскрыть соответствуя архив.
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us