Pytanie : Dlaczego I tworzyć klasa który rękojeść kartoteka I/O dla samochodowy wynajem rezerwacja program?

Podstawowy, I chcieć klasa który obchodzić się wszystkie the kartoteka wkład - wydajność the wszystkie program. The program dołączać być rezerwacja my mieć do tej pory w próba użytkownik samochód (jeżeli ono już rezerwować), rezerwacja i rezerwacja. Ono wciąż brakować niektóre część ale I dotyczyć z nowy kartoteka klasa. I znać my want
-a wektor który trzymać tylko dziesięć samochód z wszystkie zmienna ratować prosty .txt kartoteka WLICZAJĄC wektor reservations.
-A konstruktor bez parameteres samochód być może .txt imię fle i wszystkie info w variables.
-Simple accessor funkcja dla samochodowy objects
-Function który akceptować jako parametr wektorowy zmienna i resave wszystkie info the file.

Basically, ten sposób robić sens? I jeżeli w ten sposób, dlaczego móc I wokoło ono?

I am newbie przy C++ i ten forum więc I przepraszać jeżeli cokolwiek brzmieć szalony. (I także być w górę dla 40 godzina the także 48!) Dzięki w postęp anyone kto brać the czas!
(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:
 .cpp
#include 
#include 
#include 


#include "car.h"
#include "customer.h"
#include "res.h"

using namespace std;

time_t convTime (int dzień, int miesiąc, int rok)
{
   time_t rawtime;
   struct tm * timeinfo;
   czas (&rawtime);
   timeinfo = localtime (&rawtime);
   timeinfo->tm_year = rok - 1900;
   timeinfo->tm_mon = miesiąc - (1);
   timeinfo->tm_mday = dzień;
   powrotny mktime (timeinfo);
}

time_t askForTime ()
{
    int dzień, miesiąc, rok;
    cout << "Zadawalać wchodzić do wszystkie pole jako liczba." << endl;
    cout << "Dzień: ";
    cin >> dzień;
    cout << "Miesiąc: ";
    cin >> miesiąc;
    cout << "Rok: ";
    cin >> rok;
    powrotny convTime (dzień, miesiąc, rok);
}

Klient createCust ()
{
	smyczkowy cName, cAddress, cccNumber, cccType, cEmail;
    cout<< " Zadawalać wchodzić do twój imię i wtedy naciskać wchodzić do. "<> cName;
	
	cout<< " Zadawalać wchodzić do twój adres i wtedy naciskać wchodzić do. "<> cAddress;
	
	cout<< " Zadawalać wchodzić do twój numer karty kredytowej i wtedy naciskać wchodzić do. "<> cccNumber;
	
	cout<< " Zadawalać wchodzić do twój kredytowy karciany typ i wtedy naciskać wchodzić do. "<> cccType;
	
	cout<< " Zadawalać wchodzić do twój adres emaila i wtedy naciskać wchodzić do. "<> cEmail;
	
	powrotny Klient (cName, cAddress, cccNumber, cccType, cEmail);
}

int magistrala (pustka)
{
    vector klient;
	Samochodowy carArray [10] = {
	    Samochód ((1), "W połowie Rozmiar", 50.00, fałszywy),
		Samochód (2, "W połowie Rozmiar", 55.00, true),
		Samochód (3, "Układ", 40.00, fałszywy),
		Samochód (4, "Układ", 45.00, true),
		Samochód (5, "Pełnych rozmiarów", 55.00, fałszywy),
		Samochód (6, "Pełnych rozmiarów", 60.00, true),
		Samochód (7, "Furgonetka", 55.00, fałszywy),
		Samochód (8, "Furgonetka", 60.00, true),
		Samochód (9, "SUV", 60.00, fałszywy),
		Samochód (10, "SUV", 65.00, true),
    };

	int wybór;
	Klient * currentCust;
	bool notDone = true;

	cout << "Zadawalać Robić Wybór: " << endl;
	cout << "1. I być nowy klient. " << endl;
	cout << "2. I być istniejący klient. " << endl;
	cout << "(1) lub 2: ";
	cin >> wybór;
	jeżeli (wybór == 1)
	{
         customers.push_back (createCust ());
         currentCust = &customers [customers.size () - (1)];
    }
    inny jeżeli (wybór == 2)
    {
         cout << "Che klient być ty?" << endl;
         dla (int i = (0); i < customers.size (); i++)
             cout << (i+1) << ". " << klient [i] .getName () << endl;
         cout << "? ";
         cin >> wybór;
         currentCust = &customers [wybór];
    }
  podczas gdy (notDone) {
    cout << endl << endl;
    cout << "Zadawalać Robić Wybór: " << endl;     
    cout << "1.  Robić Rezerwacja" << endl;
	cout << "2. Widok Rezerwacja Rozkład" << endl; 
	cout << "3. Wyjście" << endl;
    cout << "? ";
	cin >> wybór;

	jeżeli (wybór == 1) 
    {
  		cout << "Zadawalać Wchodzić Do Wybór Aktualizacja." << endl;
		time_t outD = askForTime ();
		cout << "Zadawalać Wchodzić Do Powrót Data." << endl;
		time_t inD = askForTime ();
		cout << "Zadawalać Wkład Samochód ID Liczba (1-10): ";
		int idNum;
        cin >> idNum;
        Rezerwacja r = Rezerwacja (outD, inD, idNum, currentCust);
        cout << "Twój rezerwacja potwierdzać. ";
    }
    inny jeżeli (wybór == 3)
         notDone = fałszywy;
  }

	powrót (0);
}

// customer.h

#ifndef H_CUSTOMER
#define H_CUSTOMER

#include

using namespace std;

klasowy Klient
{
społeczeństwo:
	kawitacyjny druk () const;
	smyczkowy getName ();
	smyczkowy getAddress ();
	smyczkowy getccNumber ();
	smyczkowy getccType ();
	smyczkowy getEmail ();
	Klient (smyczkowy _name, smyczkowy _address, smyczkowy _ccNumber, smyczkowy _ccType, smyczkowy _email);

intymny:
	smyczkowy imię;
	smyczkowy adres;
	smyczkowy ccNumber;
	smyczkowy ccType;
	smyczkowy email;
};

kawitacyjny Klient:: druk () const
{
	cout<< imię <
#include 
#include 

#include "res.h"

using namespace std;

klasowy Samochód
{
intymny:
       int idNumber;
       sznurek cSize;
       dwoisty pricePerDay;
       bool dymienie;
       vector rezerwacja;
społeczeństwo:
       Samochód (int idN, smyczkowy s, dwoisty p, bool sm);
       bool makeReservation (Rezerwacja *res);              
       kawitacyjny cancelReservation (Rezerwacja *res);
};

Samochód:: Samochód (int idN, smyczkowy s, dwoisty p, bool sm)
{
     idNumber = idN;
     cSize = s;
     pricePerDay = p;
     = sm;
}

/*

Podczas:

        vector samochód:: rezerwacja;

        bool rezerwacja:: konflikt ();

*

bool Samochód:: makeReservation (Rezerwacja *res)
{
    dla (int i=0; i < reservations.size (); i++)
    {
        jeżeli (rezerwacja [i] .conflict (res))  // konflikt powrót true jeżeli the data kolidować. PISAĆ PISAĆ
      // rzut ("The rezerwacja data konflikt z inny reservation.");
     // chwyt (char wiadomość [])
        {
              cout << "The rezerwacja data kolidować z inny rezerwacja." << endl;
              powrotny fałszywy;
        }
    }

    //now my znać the data kolidować. właśnie potrzeba ono
    reservations.push_back (*res);
/*
    //now aktualizacja the rezerwacja kartoteka
    cout << "Próbować" << FILENAME << endl;
    ifstream inp (FILENAME, ifstream:: w); 

    jeżeli (! inp.good ())
       rzut ("Tam  być problemowy otwarcie the rezerwacja file.");
    chwyt (char wiadomość [])
    {
        cout << wiadomość << endl;
        powrotny fałszywy;
    }

    podczas gdy (inp.good ())
    {
          //read the rezerwacja

    }
    *
    powrót prawdziwy;
}

kawitacyjny Samochód:: cancelReservation (Rezerwacja * res)
{
     dla (int i=0; i < reservations.size (); i++)
         jeżeli (res->getidNumber () == idNumber)
              reservations.erase (reservations.begin () + i);
}

#endif

// res.h

#ifndef H_RESERVATION
#define H_RESERVATION

#include 
#include "car.h"
#include "customer.h"

using namespace std;

klasowy Rezerwacja
{
intymny:
    time_t dateOut;
    time_t dateIn;
	int carID;
    Klient * custInfo;
    int reservationNumber;
    
    
społeczeństwo:
    Rezerwacja (time_t dOut, time_t łomot, int _carID, Klient * custI);
    
    bool konflikt (Rezerwacja *r);
    
    int getidNumber ();
    time_t getDateOut ();
    time_t getDateIn ();
    int getCarReserved ();
    Customer* getCustInfo ();
    
};

int Rezerwacja:: getidNumber ()
{
    powrotny reservationNumber;
}

time_t Rezerwacja:: getDateOut ()
{
       powrotny dateOut;
}

time_t Rezerwacja:: getDateIn ()
{
       powrotny dateIn;
}

int Rezerwacja:: getCarReserved ()
{
    powrotny carID;
}

Customer* Rezerwacja:: getCustInfo ()
{
         powrotny custInfo;
}

bool Rezerwacja:: konflikt (Rezerwacja *r)
{
     jeżeli ((r->getDateIn () < dateOut) || (r->getDateOut () > dateIn))
        powrotny fałszywy;
     powrót prawdziwy;
}     

Rezerwacja:: Rezerwacja (time_t dOut, time_t łomot, int _carID, Klient * custI)
{
   dateOut = dOut;
   dateIn = łomot;
   carID = _carID;
   custInfo = custI;
   
}                             

#endif

Odpowiedź : Dlaczego I tworzyć klasa który rękojeść kartoteka I/O dla samochodowy wynajem rezerwacja program?

I mieć uczucie który ty móc ten projekt typ pytanie projekt i urzeczywistnienie w wieloskładnikowy pytanie na jak-potrzebować podstawa. Ale, I próbować the balowy kołysanie się z niektóre propozycja. Ale jeśli twój pytanie rozdawać z kartoteka writing technika, I polubić ty spojrzenie przy ten połączenie, i widzieć jeżeli the pomysł tam  dawać ty początek.
         http://w.e-e.com/SiwPQt

Tam  być jeden I/O emisyjny który ty musieć świadomy przed dalej kartoteka. Gdy ty pytać dla the klient adres, ty używać
      cin >> cAddress;
Ale jeżeli the adres mieć przestrzeń w ono, then ten jedyny wybór w górę the pierwszy słowo. Ty musieć the następujący połączenie o getline ten problem:
    http://www.cplusplus.com/reference/iostream/istream/getline/


===========================
Na…
>>  wektor trzymać tylko dziesięć samochód z wszystkie zmienna ratować prosty .txt kartoteka WLICZAJĄC wektorowy rezerwacja.

Spojrzenie jak ty tworzyć twój swój baza danych. Ty móc the następujący pomysł i móc ty naprawdę musieć dla twój przydział. W Ten Sposób, podążać niektóre the db projekt podejście, rozważać nie jeden, ale kilka .txt kartoteka:

- lista klient sortować klient id (one-up liczba)
- lista the samochód inwentarz sortować samochód id (one-up liczba)
- lista the samochodowy status sortować samochód id (i.e., być ono w the udział; lub jeśli nie, zawierać the klient id i gdy być ono należny)
- lista rezerwacja using rodzaj kryterium (prawdopodobnie car_id z drugorzędny wskaźnik rezerwacja data początkowa być zły jeden)
- lista historia fakturowanie informacja

Gdy klient brać wynajem, the rezerwacja wejście usuwać, i the fakturowanie i samochód status kartoteka aktualizować.
===========================

re: twój kartoteka klasa
Być ty wymagać kartoteka klasa; lub móc ty I/O operacja w twój indywidualny klasa - Samochód, Klient, i Rezerwacja? W kartoteka jeden, ty konstruktor móc the filename i the kartoteka.
Inne rozwiązania  
 
programming4us programming4us