Question : Comment est-ce que je crée une classe qui manipule l'entrée-sortie de dossier pour un programme de réservation de location de voiture ?

Fondamentalement, je veux ajouter une classe qui manipule toute l'entrée-sortie de dossier du programme ci-dessous. Est le programme joint ce que nous avons jusqu'ici afin d'essayer de laisser un utilisateur louer une voiture (si elle n'est pas déjà réservée), pour vérifier une réservation et pour décommander une réservation. Il manque toujours quelques pièces mais je suis concerné par créer un nouveau dossier manipulant la classe. Et est-ce que si oui, comment je peux aller la faire environ ? le

I AM un internaute novice à C++ et à ce forum ainsi moi font des excuses si quelque chose semble fou. (J'ai également été vers le haut du codage pendant 40 heures des 48 passés !) Remercie à l'avance à n'importe qui qui prend le temps d'aider !
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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= " de l'id= " codeSnippet737196 de
 .cpp
 de #include
 de #include
#include 


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

using namespace DST ;

convTime de time_t (jour d'international, mois d'international, année d'international)
{
   rawtime de time_t ;
   struct TM * timeinfo ;
   temps (&rawtime) ;
   timeinfo = localtime (&rawtime) ;
   timeinfo->tm_year = année - 1900 ;
   timeinfo->tm_mon = mois - 1 ;
   timeinfo->tm_mday = jour ;
   mktime de retour (timeinfo) ;
}

askForTime de time_t ()
{
    jour d'international, mois, année ;
    le cout << « entrent dans svp tous les champs comme nombres. » << endl ;
    cout << « jour :  » ;
    cin >> jour ;
    cout << « mois :  » ;
    cin >> mois ;
    cout << « année :  » ;
    cin >> année ;
    convTime de retour (jour, mois, année) ;
}

createCust de client ()
{
	cName de corde, cAddress, cccNumber, cccType, cEmail ;
    le cout<< " écrivent svp votre nom et pressent alors entrent. « <> cName ;
	
	le cout<< " introduisent svp votre adresse et pressent alors entrent. « <> cAddress ;
	
	le cout<< " introduisent svp votre nombre par la carte de crédit et pressent alors entrent. « <> cccNumber ;
	
	le cout<< " écrivent svp votre type par la carte de crédit et pressent alors entrent. « <> cccType ;
	
	le cout<< " écrivent svp votre email address et pressent alors entrent. « <> cEmail ;
	
	client de retour (cName, cAddress, cccNumber, cccType, cEmail) ;
}

force d'international (vide)
{
    clients de vector ;
	Voiture carArray [10] = {
	    Voiture (1, « de taille moyenne », 50.00, faux),
		Voiture (2, « de taille moyenne », 55.00, rectifient),
		Voiture (3, « contrat », 40.00, faux),
		Voiture (4, « contrat », 45.00, rectifient),
		Voiture (5, « normal », 55.00, faux),
		Voiture (6, « normal », 60.00, rectifient),
		Voiture (7, « monospace », 55.00, faux),
		Voiture (8, « monospace », 60.00, rectifient),
		Voiture (9, « SUV », 60.00, faux),
		Voiture (10, « SUV », 65.00, rectifient),
    } ;

	choix d'international ;
	Client * currentCust ;
	le notDone de bool = rectifient ;

	le cout << « font svp un choix :  » << endl ;
	cout << « 1. Je suis un nouveau client.  » << endl ;
	cout << « 2. Je suis un client existant.  » << endl ;
	cout << « 1 ou 2 :  » ;
	cin >> choix ;
	si (== de choix 1)
	{
         customers.push_back (createCust ());
         currentCust = &customers [customers.size () - 1] ;
    }
    autrement si (== de choix 2)
    {
         cout << « que le client sont vous ? » << endl ;
         pour (international i = 0 ; i < customers.size () ; i++)
             cout << (i+1) << « .  » << clients [I] .getName () << endl ;
         cout << « ?  » ;
         cin >> choix ;
         currentCust = &customers [choix] ;
    }
  tandis que (notDone) {
    cout << endl << endl;
    le cout << « font svp un choix :  » << endl ;     
    cout << « 1.  Faire une réservation » << endl ;
	le cout << « 2. regardent le programme de réservation » << endl ; 
	cout << « sortie 3. » << endl ;
    cout << « ?  » ;
	cin >> choix ;

	si (== de choix 1) 
    {
  		le cout << « écrivent svp la mise à jour de sélection. » << endl ;
		outD = askForTime de time_t () ;
		le cout << « écrivent svp la date de retour. » << endl ;
		time_t Ind = askForTime () ;
		cout << « Numéro d'identité svp entré (1-10) voiture :  » ;
		idNum d'international ;
        cin >> idNum ;
        Réservation r = réservation (outD, Ind, idNum, currentCust) ;
        le cout << « votre réservation a été confirmé.  » ;
    }
    autrement si (== de choix 3)
         notDone = faux ;
  }

	retour 0 ;
}

// customer.h

#ifndef H_CUSTOMER
#define H_CUSTOMER

#include

using namespace DST ;

client de classe
{
public :
	const vide d'impression () ;
	getName de corde () ;
	getAddress de corde () ;
	getccNumber de corde () ;
	getccType de corde () ;
	getEmail de corde () ;
	Client (_name de corde, _address de corde, _ccNumber de corde, _ccType de corde, _email de corde) ;

privé :
	nom de corde ;
	adresse de corde ;
	ccNumber de corde ;
	ccType de corde ;
	email de corde ;
} ;

client vide : : const d'impression ()
{
	< de #include
 de #include
 de #include

#include « res.h »

using namespace DST ;

voiture de classe
{
privé :
       idNumber d'international ;
       la corde cSize ;
       double pricePerDay ;
       tabagisme de bool ;
       réservations de vector ;
public :
       Voiture (réseau numérique intégré d'international, corde s, double p, SM de bool) ;
       makeReservation de bool (*res de réservation) ;              
       cancelReservation vide (*res de réservation) ;
} ;

Voiture : : Voiture (réseau numérique intégré d'international, corde s, double p, SM de bool)
{
     idNumber = réseau numérique intégré ;
     cSize = s ;
     pricePerDay = p ;
     tabagisme = SM ;
}

/*

En attendant :

        voiture de vector : : réservations ;

        réservation de bool : : conflit () ;

*

voiture de bool : : makeReservation (*res de réservation)
{
    pour (international i=0 ; i < reservations.size () ; i++)
    {
        si (réservations [I] .conflict (recherche))  le conflit de // renvoie vrai si les dates sont en conflit. PAS ENCORE ÉCRIT
      jet de // (« le conflit de dates de réservation avec encore reservation.") ;
     crochet de // (message de char [])
        {
              le cout << « les dates de réservation sont en conflit avec une autre réservation. » << endl ;
              faux de retour ;
        }
    }

    //now que nous connaissons que la date n'est pas en conflit. juste le besoin de l'ajouter
    reservations.push_back (*res) ;
/*
    mise à jour de //now le dossier de réservation
    cout << « essayant de s'ouvrir » << NOM DE FICHIER << endl ;
    INP d'ifstream (NOM DE FICHIER, ifstream : : dans) ; 

    si (! inp.good ())
       jet (« il y avait un problème ouvrant la réservation file.") ;
    crochet (message de char [])
    {
        cout << message << endl ;
        faux de retour ;
    }

    tandis que (inp.good ())
    {
          //read les réservations

    }
    *
    de retour rectifier ;
}

vider la voiture : : cancelReservation (réservation * recherche)
{
     pour (international i=0 ; i < reservations.size () ; i++)
         s'idNumber de == (de 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 DST ;

réservation de classe
{
privé :
    dateOut de time_t ;
    dateIn de time_t ;
	carID d'international ;
    Client * custInfo ;
    reservationNumber d'international ;
    
    
public :
    Réservation (dOut de time_t, vacarme de time_t, _carID d'international, client * custI) ;
    
    conflit de bool (*r) de réservation ;
    
    getidNumber d'international () ;
    getDateOut de time_t () ;
    getDateIn de time_t () ;
    l'international getCarReserved () ;
    getCustInfo de Customer* () ;
    
} ;

réservation d'international : : getidNumber ()
{
    reservationNumber de retour ;
}

réservation de time_t : : getDateOut ()
{
       dateOut de retour ;
}

réservation de time_t : : getDateIn ()
{
       dateIn de retour ;
}

réservation d'international : : getCarReserved ()
{
    carID de retour ;
}

Réservation de Customer* : : getCustInfo ()
{
         custInfo de retour ;
}

réservation de bool : : conflit (*r) de réservation
{
     si ((r->getDateIn () < dateOut) || (r->getDateOut () > dateIn))
        faux de retour ;
     de retour rectifier ;
}     

Réservation : : Réservation (dOut de time_t, vacarme de time_t, _carID d'international, client * custI)
{
   dateOut = dOut ;
   dateIn = vacarme ;
   carID = _carID ;
   custInfo = custI ;
   
}                             

#endif
class= de

Réponse : Comment est-ce que je crée une classe qui manipule l'entrée-sortie de dossier pour un programme de réservation de location de voiture ?

J'ai un sentiment dont vous pouvez avoir besoin pour diviser ce type question de projet de conception et d'exécution en questions multiples sur une base comme-nécessaire. Mais, j'essayerai d'obtenir le roulement de boule avec quelques suggestions. Mais au cas où votre question traiterait des techniques d'écriture de dossier, je voudrais que vous jetiez un coup d'oeil à ce lien, et vois si les idées là te donneront un début.
         http://w.e-e.com/SiwPQt

Il y a une issue d'entrée-sortie que vous devriez se rendre compte de avant passer aux dossiers. Quand vous demandez l'adresse du client, vous employez
      cin >> cAddress ;
Mais si l'adresse a les espaces dans elle, alors ceci prend seulement le premier mot. Vous devriez lire le lien suivant au sujet du getline pour résoudre ce problème :
    http://www.cplusplus.com/reference/iostream/istream/getline/


===========================
Passer…
>>  le vecteur tiendra seulement dix voitures avec toutes les variables sauvées à un dossier simple de .txt COMPRENANT des réservations de vecteur.

Ressemble à vous créent votre propre base de données. Vous pouvez prendre les idées suivantes et décider ce que vous vraiment devez faire pour votre tâche. Ainsi, en suivant une partie de l'approche de conception de DB, envisager de ne pas créer un, mais plusieurs dossiers de .txt :

- clients de listes assortis par identification de client (un nombre d'one-up)
- listes l'inventaire de voiture assorti par identification de voiture (un nombre d'one-up)
- listes le statut de voiture assorti par identification de voiture (c.-à-d., est elle dans le sort ; ou sinon, inclure l'identification de client et quand est elle devant retourner)
- réservations de listes using des critères de sorte (le car_id avec l'index secondaire de la date de début de réservation n'est pas probablement mauvais)
- histoire de listes d'information de facturation

Quand un client prend une location, l'entrée de réservation est enlevée, et les dossiers de statut de facturation et de voiture sont mis à jour.
===========================

re : votre classe de dossier
Êtes vous requis d'avoir une classe de dossier ; ou pourriez-vous inclure des opérations d'entrée-sortie dans vos différentes classes - voiture, client, et réservation ? Dans chacun, vous constructeur pourriez inclure le nom de fichier correspondant et ouvrir le dossier correspondant.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us