Fråga : Hur jag skapar en klassificera som handtag sparar I/O för ett uthyrnings- reservationsprogram för bil?

I stort jag önskar att tillfoga en klassificera som behandlar alla sparar inmatnings/utmatnings av det nedanföra programet. Det fäste programet är vad vi har så långt i ett försök att låta en användare hyra en bil (om den inte ar redan reserverad), att kontrollera en reservation och att avbryta en reservation. Det är den stilla saknaden några delar, men I-förmiddagen angick med att skapa ett nytt sparar bruk klassificerar. Jag vet att oss vektorn för want
-a, att den ska hållen endast tio bilar med alla variabler sparade till en enkla .txt sparar den INKLUSIVE constructoren för vektorn reservations.
-A med inga parameteres annan, än kanske en kända .txt att öppna fle och ladda allt info in i accessor för variables.
-Simple fungerar för bilobjects
-Function som ska accepterar som en parameter en vektorvariabel och resave allt info till file.
Basically, gör hitåt avkänning? Och om så, hur kan jag gå omkring att göra den? förmiddagen för

I en newbie på C++ och till detta fora så mig ber om ursäkt låter snart galet. (Jag har också varit upp att kodifiera för 40 timmar av förflutnan 48!), Tack i förskott till någon som tar tiden att hjälpa!
> för
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:
" codeBody " " notpretty class= " för .cpp #include #include #include #include ”car.h”, #include ”customer.h”, #include ”res.h”, using namespace std; time_tconvTime (int-dag, int-månad, int-året) { time_trawtime; struct tm * timeinfo; tid (&rawtime); timeinfo = localtime (&rawtime); timeinfo->tm_year = år - 1900; timeinfo->tm_mon = månad - 1; timeinfo->tm_mday = dag; återgång mktime (timeinfo); } time_taskForTime () { int-dag, månad, år; alla cout << ”behar skriver in sätter in som numrerar.”, << endl; cout << ”dag: ”; cin >> dag; cout << ”månad: ”; cin >> månad; cout << ”år: ”; cin >> år; återgång convTime (dag, månad, år); } KundcreateCust () { stränga cName, cAddress, cccNumber, cccType, cEmail; cout<< " behar skriver in ditt känt, och därefter pressen skriver in. ”<> cName; cout<< " behar skriver in ditt tilltalar, och därefter pressen skriver in. ”<> cAddress; cout<< " behar skriver in din kreditkort numrerar, och därefter pressen skriver in. ”<> cccNumber; cout<< " behar skriver in din kreditkorttyp, och därefter pressen skriver in. ”<> cccType; cout<< " behar skriver in din e-post tilltalar, och därefter pressen skriver in. ”<> cEmail; återgång kund (cName, cAddress, cccNumber, cccType, cEmail); } huvudsaklig int (utan laga kraft) { vectorkunder; carArray bil [10] = { Bil (1, ”mitt- storleksanpassar”, 50.00 som, är falska), Bil (2, ”mitt- storleksanpassar”, 55.00 som, är riktiga), Bil (3, ”överenskommelse”, 40.00 som, är falska), Bil (4, ”överenskommelsen”, 45.00, true), Bil (5, ”i naturlig storlek”, 55.00 som, är falska), Bil (6, ”i naturlig storlek”, 60.00, true), Bil (7, ”minivan”, 55.00 som, är falska), Bil (8, ”minivan”, 60.00, true), Bil (9, ”SUV”, 60.00, falska), Bil (10, ”SUV”, 65.00, true), }; int-val; Kund * currentCust; boolnotDonen = true; cout << ”behar gör ett val: ” << endl; cout << ”1. Förmiddag I en ny kund. ” << endl; cout << ”2. Förmiddag I en existerande kund. ” << endl; cout << ”1 eller 2: ”; cin >> val; om (val== 1) { customers.push_back (createCust ()); currentCust = &customers [customers.size () - 1]; } annars, om (val== 2) { cout << ”som kunden är dig?”, << endl; för (int i = 0; i < customers.size (); i++) cout << (i+1) << ”. ” << kunder [I] .getName () << endl; cout << ”? ”; cin >> val; currentCust = &customers [val]; } stunder (notDone) { cout << endl << endl; cout << ”behar gör ett val: ” << endl; cout << ”1. Gör en reservation” << endl; cout << ”2. Beskåda reservationsschema” << endl; cout << ”3. Gå ut” << endl; cout << ”? ”; cin >> val; om (val== 1) { cout << ”behar skriver in hackauppdateringen.”, << endl; time_toutD = askForTime (); cout << ”behar skriver in retur daterar.”, << endl; time_t inD = askForTime (); cout << ”behar matar in bilLEGITIMATION numrerar (1-10): ”; int-idNum; cin >> idNum; Reservation r = reservation (outD, inD, idNum, currentCust); cout << ”din reservation har bekräftats. ”; } annars, om (val== 3) notDone = falskt; } retur 0; } // customer.h #ifndef H_CUSTOMER #define H_CUSTOMER #include using namespace std; klassificera kunden { offentligt: annullera const för trycket (); stränga getName (); stränga getAddress (); stränga getccNumber (); stränga getccType (); stränga getEmail (); Kund (stränga _name, stränger _address, stränger _ccNumber, stränger _ccType, stränger _email); privat: stränga känt; stränga tilltalar; stränga ccNumber; stränga ccType; stränga e-posten; }; utan laga kraft kund:: const för tryck () { känd < #include #include #include ”res.h”, using namespace std; klassificera bilen { privat: int-idNumber; stränga cSize; dubblera pricePerDay; röka för bool; vectorbeläggning; offentligt: Bil (int idN, stränger s, dubbelt p, boolen sm); boolmakeReservation (reservations*res); utan laga kraft cancelReservation (reservations*res); }; Bil:: Bil (int idN, stränger s, dubbelt p, boolen sm), { idNumber = idN; cSize = s; pricePerDay = p; röka = sm; } /* Pending: vectorbil:: beläggning; boolreservation:: konflikt (); * boolbil:: makeReservation (reservations*res) { för (int i=0; i < reservations.size (); i++) { om (beläggning [I] .conflict (res)) den // konflikten går riktigt tillbaka, om daterar konflikt. INTE ÄNNU SKRIFTLIGT // kast (”reservationen daterar konflikt med en annan reservation. ”); // fångar (rödingmeddelandet []) { cout << ”reservationen daterar konflikt med en annan reservation.”, << endl; återgångt falskt; } } //now vi vet att datera inte kämpar. precis behov att tillfoga det reservations.push_back (*res); /* //now uppdatering som reservationen sparar cout << ”försöka att öppna” << FILENAME << endl; ifstreaminp (FILENAMEN, ifstream:: i); om (! inp.good ()) kast (”det fanns ett problem som öppnar reservationen, sparar. ”); fånga (rödingmeddelande []) { cout << meddelande << endl; återgångt falskt; } stunder (inp.good ()) { //read beläggningen } * återgångt true; } annullera bilen:: cancelReservation (reservation * res) { för (int i=0; i < reservations.size (); i++) om, ==idNumber (för 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; klassificera reservation { privat: time_tdateOut; time_tdateIn; int-carID; Kund * custInfo; int-reservationNumber; offentligt: Reservation (time_tdOut, time_tbuller, int-_carID, kund * custI); boolkonflikt (reservations*r); int-getidNumber (); time_tgetDateOut (); time_tgetDateIn (); getCarReserved int (); Customer* getCustInfo (); }; int-reservation:: getidNumber () { återgång reservationNumber; } time_treservation:: getDateOut () { återgång dateOut; } time_treservation:: getDateIn () { återgång dateIn; } int-reservation:: getCarReserved () { återgång carID; } Customer* reservation:: getCustInfo () { återgång custInfo; } boolreservation:: konflikt (reservations*r) { om ((r->getDateIn () < dateOut) || (r->getDateOut () > dateIn)) återgångt falskt; återgångt true; } Reservation:: Reservation (time_tdOut, time_tbuller, int-_carID, kund * custI) { dateOut = dOut; dateIn = buller; carID = _carID; custInfo = custI; } #endif
" klar "

Svar : Hur jag skapar en klassificera som handtag sparar I/O för ett uthyrnings- reservationsprogram för bil?

Jag har en känsla som du kan behöva för att bryta denna projekterar typ ifrågasätter av design, och genomförandet in i multipel ifrågasätter på ennödvändig bas. Men jag ska försök att få klumpa ihop sig rullande med några förslag. Men ditt ifrågasätta i fall att handlar med sparar handstiltekniker, jag skulle något liknande dig för att ta en look på denna anknyter och ser, om idéerna där att ska ger dig en start.
         http://w.e-e.com/SiwPQt

Det finns en I/O utfärdar att du bör vara medveten av, för flyttningen sparar på. Tilltala, dig använder, när du frågar för kunden
      cin >> cAddress;
Men, om tilltala har utrymmen i den, då detta väljer endast första uttrycker upp. Du bör läsa efter anknyta om getline för att lösa detta problem:
    http://www.cplusplus.com/reference/iostream/istream/getline/


===========================
Flyttning på…,
>>  vektorn ska hållen, endast som tio bilar med alla variabler sparade till en enkla .txt sparar INKLUSIVE vektorbeläggning.

Ser något liknande som du skapar din egna databas. Du kan ta efter idéerna och avgöra vad du egentligen måste att göra för din uppgift. Så efter någon av db-designen att närma sig, betraktar att skapa inte en, men flera .txt sparar:

- listar kunder som sorteras av kundID (en one-up numrerar),
- listar bilinventariet som sorteras av bilID (en one-up numrerar),
- listar bilstatusen som sorteras av bilID (, är dvs. det i lottet; eller om inte, inkludera kundIDet och, när är det tack vare retur),
- listar beläggning using kriterier för en sortera (car_id med det sekundära indexet av reservationsstarten daterar antagligen inte är en dåliga en),
- listar historia av fakturera information

När en kund tar en hyra, reservationstillträdeet tas bort, och fakturera och bilstatusen sparar uppdateras.
===========================

beträffande: ditt spara klassificerar
Är du som krävs att ha en spara att klassificera; eller kunde du bädda in I-/Ofunktioner in i din individ klassificerar - bilen, kunden och reservation? I varje du constructoren kunde inkludera den motsvarande filenamen, och att öppna motsvara spara.
Andra lösningar  
 
programming4us programming4us