Cuestión : ¿Cómo creo una clase que maneje la entrada-salida del archivo para un programa de la reservación del alquiler de coches?

Básicamente, quiero agregar una clase que maneje toda la entrada-salida del archivo del programa below. El programa atado es lo que tenemos hasta ahora en un intento por dejar a un usuario alquilar un coche (si no es ya reservado), comprobar una reservación y cancelar una reservación. Todavía está faltando algunas piezas pero me refiero a crear un nuevo archivo que maneja la clase. ¿Y si es así cómo puedo ir alrededor a hacerla? el

I un newbie en C++ y a este foro así que yo se disculpa si cualquier cosa suena loco. (También he estado encima de la codificación por 40 horas de los últimos 48!) ¡Agradece por adelantado a cualquier persona que tarde la época de ayudar!
class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
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= " del id= " codeSnippet737196 del
 .cpp
 del #include
 del #include
#include 


#include “car.h”
#include “customer.h”
#include “res.h”

usar namespace std;

convTime del time_t (día de la internacional, mes de la internacional, año de la internacional)
{
   rawtime del time_t;
   struct TM * timeinfo;
   tiempo (&rawtime);
   timeinfo = localtime (&rawtime);
   timeinfo->tm_year = año - 1900;
   timeinfo->tm_mon = mes - 1;
   timeinfo->tm_mday = día;
   mktime de vuelta (timeinfo);
}

askForTime del time_t ()
{
    día de la internacional, mes, año;
    el cout << “incorpora por favor todos los campos como números.” << endl;
    cout << “día: ”;
    cin >> día;
    cout << “mes: ”;
    cin >> mes;
    cout << “año: ”;
    cin >> año;
    convTime de vuelta (día, mes, año);
}

createCust del cliente ()
{
	cName de la secuencia, cAddress, cccNumber, cccType, cEmail;
    el cout<< " incorpora por favor su nombre y después presiona entra. “<> cName;
	
	el cout<< " incorpora por favor su dirección y después presiona entra. “<> cAddress;
	
	el cout<< " incorpora por favor su número de tarjeta de crédito y después presiona entra. “<> cccNumber;
	
	el cout<< " incorpora por favor su tipo de la tarjeta de crédito y después presiona entra. “<> cccType;
	
	el cout<< " incorpora por favor su email address y después presiona entra. “<> cEmail;
	
	cliente de vuelta (cName, cAddress, cccNumber, cccType, cEmail);
}

cañería de la internacional (vacío)
{
    clientes del vector;
	Coche carArray [10] = {
	    Coche (1, “de tamaño mediano”, 50.00, falsos),
		Coche (2, “de tamaño mediano”, 55.00, verdad),
		Coche (3, “acuerdo”, 40.00, falsos),
		Coche (4, “acuerdo”, 45.00, verdad),
		Coche (5, “del mismo tamaño”, 55.00, falsos),
		Coche (6, “del mismo tamaño”, 60.00, verdad),
		Coche (7, “minivan”, 55.00, falsos),
		Coche (8, “minivan”, 60.00, verdad),
		Coche (9, “SUV”, 60.00, falso),
		Coche (10, “SUV”, 65.00, verdad),
    };

	selección de la internacional;
	Cliente * currentCust;
	el notDone del bool = verdad;

	el cout << “hace por favor una selección: ” << endl;
	cout << “1. Soy un nuevo cliente. ” << endl;
	cout << “2. Soy un cliente existente. ” << endl;
	cout << “1 o 2: ”;
	cin >> selección;
	si (== de la selección 1)
	{
         customers.push_back (createCust ());
         currentCust = &customers [customers.size () - 1];
    }
    si (== de la selección 2)
    {
         cout << “que el cliente es usted?” << endl;
         para (internacional i = 0; i < customers.size (); i++)
             cout << (i+1) << “. ” << clientes [i] .getName () << endl;
         ¿cout << “? ”;
         cin >> selección;
         currentCust = &customers [selección];
    }
  mientras que (notDone) {
    cout << endl << endl;
    el cout << “hace por favor una selección: ” << endl;     
    cout << “1.  Hacer una reservación” << endl;
	el cout << “2. ve horario de la reservación” << endl; 
	cout << “salida 3.” << endl;
    ¿cout << “? ”;
	cin >> selección;

	si (== de la selección 1) 
    {
  		el cout << “incorpora por favor la actualización de la selección.” << endl;
		outD = askForTime del time_t ();
		el cout << “incorpora por favor la fecha de vuelta.” << endl;
		time_t inD = askForTime ();
		cout << “identificación por favor entrada número (1-10) del coche: ”;
		idNum de la internacional;
        cin >> idNum;
        Reservación r = reservación (outD, inD, idNum, currentCust);
        se ha confirmado el cout << “su reservación. ”;
    }
    si (== de la selección 3)
         notDone = falso;
  }

	vuelta 0;
}

// customer.h

#ifndef H_CUSTOMER
#define H_CUSTOMER

#include

usar namespace std;

cliente de la clase
{
público:
	const vacío de la impresión ();
	getName de la secuencia ();
	getAddress de la secuencia ();
	getccNumber de la secuencia ();
	getccType de la secuencia ();
	getEmail de la secuencia ();
	Cliente (_name de la secuencia, _address de la secuencia, _ccNumber de la secuencia, _ccType de la secuencia, _email de la secuencia);

privado:
	nombre de la secuencia;
	dirección de la secuencia;
	ccNumber de la secuencia;
	ccType de la secuencia;
	email de la secuencia;
};

cliente vacío:: const de la impresión ()
{
	< del #include
 del #include
 del #include

#include “res.h”

usar namespace std;

coche de la clase
{
privado:
       idNumber de la internacional;
       la secuencia cSize;
       pricePerDay doble;
       el fumar del bool;
       reservaciones del vector;
público:
       Coche (internacional idN, secuencia s, p doble, bool SM);
       makeReservation del bool (*res de la reservación);              
       cancelReservation vacío (*res de la reservación);
};

Coche:: Coche (internacional idN, secuencia s, p doble, bool SM)
{
     idNumber = idN;
     cSize = s;
     pricePerDay = p;
     el fumar = SM;
}

/*

Pendiente:

        coche del vector:: reservaciones;

        reservación del bool:: conflicto ();

*

coche del bool:: makeReservation (*res de la reservación)
{
    para (internacional i=0; i < reservations.size (); i++)
    {
        si (reservaciones [i] .conflict (res))  el conflicto de // vuelve verdad si están en conflicto las fechas. NO TODAVÍA ESCRITO
      tiro de // (“el conflicto de las fechas de reservación con otro reservation.");
     retén de // (mensaje del carbón de leña [])
        {
              el cout << “las fechas de reservación está en conflicto con otra reservación.” << endl;
              falso de vuelta;
        }
    }

    //now que conocemos que no está en conflicto la fecha. apenas necesidad de agregarla
    reservations.push_back (*res);
/*
    actualización de //now el archivo de la reservación
    cout << “intentando abrirse” << NOMBRE DE FICHERO << endl;
    INP del ifstream (NOMBRE DE FICHERO, ifstream:: en); 

    ¡si (! inp.good ())
       tiro (“había un problema que abría la reservación file.");
    retén (mensaje del carbón de leña [])
    {
        cout << mensaje << endl;
        falso de vuelta;
    }

    mientras que (inp.good ())
    {
          //read las reservaciones

    }
    *
    de vuelta verdad;
}

anular el coche:: cancelReservation (reservación * res)
{
     para (internacional i=0; i < reservations.size (); i++)
         si idNumber del == (del res->getidNumber ())
              reservations.erase (reservations.begin () + i);
}

#endif

// res.h

#ifndef H_RESERVATION
#define H_RESERVATION

#include 
#include “car.h”
#include “customer.h”

usar namespace std;

reservación de la clase
{
privado:
    dateOut del time_t;
    dateIn del time_t;
	carID de la internacional;
    Cliente * custInfo;
    reservationNumber de la internacional;
    
    
público:
    Reservación (dOut del time_t, dinar del time_t, _carID de la internacional, cliente * custI);
    
    conflicto del bool (*r) de la reservación;
    
    getidNumber de la internacional ();
    getDateOut del time_t ();
    getDateIn del time_t ();
    la internacional getCarReserved ();
    getCustInfo de Customer* ();
    
};

reservación de la internacional:: getidNumber ()
{
    reservationNumber de vuelta;
}

reservación del time_t:: getDateOut ()
{
       dateOut de vuelta;
}

reservación del time_t:: getDateIn ()
{
       dateIn de vuelta;
}

reservación de la internacional:: getCarReserved ()
{
    carID de vuelta;
}

Reservación de Customer*:: getCustInfo ()
{
         custInfo de vuelta;
}

reservación del bool:: conflicto (*r) de la reservación
{
     si ((r->getDateIn () < dateOut) || (r->getDateOut () > dateIn))
        falso de vuelta;
     de vuelta verdad;
}     

Reservación:: Reservación (dOut del time_t, dinar del time_t, _carID de la internacional, cliente * custI)
{
   dateOut = dOut;
   dateIn = dinar;
   carID = _carID;
   custInfo = custI;
   
}                             

#endif
class= del

Respuesta : ¿Cómo creo una clase que maneje la entrada-salida del archivo para un programa de la reservación del alquiler de coches?

Tengo una sensación que usted pueda necesitar para romper este tipo cuestión del proyecto de diseño y de puesta en práctica en preguntas múltiples sobre una base como-necesaria. Pero, intentaré conseguir el balanceo de la bola con algunas sugerencias. Pero en caso de que su pregunta se esté ocupando de técnicas de la escritura del archivo, quisiera que usted hechara una ojeada este acoplamiento, y veo si las ideas allí le dan un comienzo.
         http://w.e-e.com/SiwPQt

Hay una edición de la entrada-salida que usted debe ser consciente antes de trasladarse encendido a los archivos. Cuando usted pide la dirección del cliente, usted está utilizando
      cin >> cAddress;
Pero si la dirección tiene espacios en ella, después éste coge solamente la primera palabra. Usted debe leer el acoplamiento siguiente con getline para resolver este problema:
    http://www.cplusplus.com/reference/iostream/istream/getline/


===========================
Mudanza encendido…
>>  el vector sostendrá solamente diez coches con todas las variables ahorradas a un archivo simple de .txt INCLUYENDO reservaciones del vector.

Parece usted están creando su propia base de datos. Usted puede tomar las ideas siguientes y decidir lo que usted tiene que hacer realmente para su asignación. Así pues, siguiendo algo del acercamiento del diseño del DB, considerar crear no uno, sino varios archivos de .txt:

- clientes de las listas clasificados por la identificación del cliente (un número del one-up)
- listas el inventario del coche clasificado por la identificación del coche (un número del one-up)
- listas el estado del coche clasificado por la identificación del coche (es decir, está en la porción; o si no, incluir la identificación del cliente y cuando es debida volver)
- reservaciones de las listas usar criterios de una clase (el car_id con el índice secundario de la fecha de inicio de la reservación no es probablemente mán)
- historia de las listas de la información de facturación

Cuando un cliente toma un alquiler, se quita la entrada de la reservación, y los archivos del estado de la facturación y del coche son actualizados.
===========================

re: su clase del archivo
Es usted requerido tener una clase del archivo; ¿o podría usted encajar operaciones de la entrada-salida en sus clases individuales - coche, cliente, y reservación? En cada uno, usted constructor podría incluir el nombre de fichero correspondiente y abrir el archivo correspondiente.
Otras soluciones  
 
programming4us programming4us