Frage : Wie verursache ich eine Kategorie, die Akte Input/Output für ein Automietreservierungsprogramm behandelt?

Im Allgemeinen möchte ich eine Kategorie addieren, die das ganzes Akteninput/output des below Programms behandelt. Das Programm, das angebracht wird, ist, was wir bis jetzt, in der Bemühung einen Benutzer ein Auto mieten zu lassen haben (wenn es nicht bereits reserviert ist), eine Reservierung zu überprüfen und eine Reservierung zu annullieren. Es verfehlt noch einige Teile, aber ich werde mit dem Herstellen einer neuen Akte betroffen, die Kategorie behandelt. Und wenn ja, wie kann ich sie, ungefähr zu tun gehen?

I morgens ein Neuer an C++ und zu diesem Forum also ich entschuldigen sich, wenn alles verrückt klingt. (Ich bin auch herauf die Kodierung 40 Stunden lang der letzten 48! gewesen) Dankt im Voraus zu jedermann, das die Zeit nimmt zu helfen!
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:
6:
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-Geschlechtskrankheit;

time_t convTime (int-Tag, int-Monat, int-Jahr)
{
   time_t rawtime;
   struct TM * timeinfo;
   Zeit (&rawtime);
   timeinfo = localtime (&rawtime);
   timeinfo->tm_year = Jahr - 1900;
   timeinfo->tm_mon = Monat - 1;
   timeinfo->tm_mday = Tag;
   Rückholmktime (timeinfo);
}

time_t askForTime ()
{
    int-Tag, Monat, Jahr;
    cout << „geben bitte alle Felder als Zahlen.“ ein << endl;
    cout << „Tag: “;
    cin >> Tag;
    cout << „Monat: “;
    cin >> Monat;
    cout << „Jahr: “;
    cin >> Jahr;
    RückholconvTime (Tag, Monat, Jahr);
}

Kunde createCust ()
{
	Schnur cName, cAddress, cccNumber, cccType, cEmail;
    cout<< " tragen bitte Ihren Namen ein und betätigen dann sich hereinkommen. „<> cName;
	
	cout<< " tragen bitte Ihre Adresse ein und betätigen dann sich hereinkommen. „<> cAddress;
	
	cout<< " geben bitte Ihre Kreditkartennummer ein und betätigen dann sich hereinkommen. „<> cccNumber;
	
	cout<< " tragen bitte Ihre Kreditkarteart ein und betätigen dann sich hereinkommen. „<> cccType;
	
	cout<< " tragen bitte Ihr email address ein und betätigen dann sich hereinkommen. „<> cEmail;
	
	Rückholkunde (cName, cAddress, cccNumber, cccType, cEmail);
}

int-Hauptleitung (Lücke)
{
    vector Kunden;
	Auto carArray [10] = {
	    Auto (1, „mittelgrosses“, 50.00, falsches),
		Auto (2, „mittelgroß“, 55.00, richten) aus,
		Auto (3, „Vertrag“, 40.00, falsches),
		Auto (4, „Vertrag“, 45.00, richten) aus,
		Auto (5, „Größengleich“, 55.00, falsches),
		Auto (6, „Größengleich“, 60.00, richten) aus,
		Auto (7, „Mehrzweckfahrzeug“, 55.00, falsches),
		Auto (8, „Mehrzweckfahrzeug“, 60.00, richten) aus,
		Auto (9, „SUV“, 60.00, falsches),
		Auto (10, „SUV“, 65.00, richten) aus,
    };

	int-Vorwähler;
	Kunde * currentCust;
	bool notDone = richten aus;

	cout << „bilden bitte eine Vorwähler: “ << endl;
	cout << „1. Ich bin ein neuer Kunde. “ << endl;
	cout << „2. Ich bin ein vorhandener Kunde. “ << endl;
	cout << „1 oder 2: “;
	cin >> Vorwähler;
	wenn (Vorwähler == 1)
	{
         customers.push_back (createCust ());
         currentCust = &customers [customers.size () - 1];
    }
    sonst wenn (Vorwähler == 2)
    {
         cout << „, das Kunde sind Sie?“ << endl;
         für (int I = 0; I < customers.size (); i++)
             cout << (i+1) << „. “ << Kunden [i] .getName () << endl;
         cout << „? “;
         cin >> Vorwähler;
         currentCust = &customers [Vorwähler];
    }
  während (notDone) {
    cout << endl << endl;
    cout << „bilden bitte eine Vorwähler: “ << endl;     
    cout << „1.  Eine Reservierung anbringen“ << endl;
	cout << „2. sehen Reservierungs-Zeitplan“ << endl an; 
	cout << „Ausgang 3.“ << endl;
    cout << „? “;
	cin >> Vorwähler;

	wenn (Vorwähler == 1) 
    {
  		cout << „tragen bitte Auswahl-Update.“ ein << endl;
		time_t outD = askForTime ();
		cout << „erreichen bitte Rückholdatum.“ << endl;
		time_t inD = askForTime ();
		cout << „bitte eingegebene Auto Identifikation Nr. (1-10): “;
		int idNum;
        cin >> idNum;
        Reservierung r = Reservierung (outD, inD, idNum, currentCust);
        cout << „Ihre Reservierung ist bestätigt worden. “;
    }
    sonst wenn (Vorwähler == 3)
         notDone = falsch;
  }

	Rückkehr 0;
}

// customer.h

#ifndef H_CUSTOMER
#define H_CUSTOMER

#include

using namespace-Geschlechtskrankheit;

Kategorie Kunde
{
Öffentlichkeit:
	leeres Druck () const;
	Schnur getName ();
	Schnur getAddress ();
	Schnur getccNumber ();
	Schnur getccType ();
	Schnur getEmail ();
	Kunde (Schnur _name, Schnur _address, Schnur _ccNumber, Schnur _ccType, Schnur _email);

privat:
	Schnurname;
	Schnuradresse;
	Schnur ccNumber;
	Schnur ccType;
	Schnur-eMail;
};

leerer Kunde:: Druck () const
{
	cout<< Namens<
#include 
#include 

#include „res.h“

using namespace-Geschlechtskrankheit;

Kategorie Auto
{
privat:
       int idNumber;
       Schnur cSize;
       doppeltes pricePerDay;
       bool Rauchen;
       vector Reservierungen;
Öffentlichkeit:
       Auto (int idN, Schnur s, doppeltes p, bool Inspektion);
       bool makeReservation (Reservierung *res);              
       leeres cancelReservation (Reservierung *res);
};

Auto:: Auto (int idN, Schnur s, doppeltes p, bool Inspektion)
{
     idNumber = idN;
     cSize = s;
     pricePerDay = p;
     Rauchen = Inspektion;
}

/*

Während:

        vector Auto:: Reservierungen;

        bool Reservierung:: Konflikt ();

*

bool Auto:: makeReservation (Reservierung *res)
{
    für (int i=0; I < reservations.size (); i++)
    {
        wenn (Reservierungen [i] .conflict (Res))  //-Konflikt bringt zutreffendes zurück, wenn die Daten widersprechen. NICHT SCHON GESCHRIEBEN
      //-Wurf („der Vormerkdatumkonflikt mit einem anderen reservation.");
     //-Fang (Putzfraumitteilung [])
        {
              cout << „die Vormerkdaten widersprechen mit einer anderen Reservierung.“ << endl;
              Rückholfalsches;
        }
    }

    //now, das wir kennen, dass das Datum nicht widerspricht. gerade Notwendigkeit, sie zu addieren
    reservations.push_back (*res);
/*
    //now-Update die Reservierungsakte
    cout << „versuchend sich zu öffnen“ << DATEINAME << endl;
    ifstream inp (DATEINAME, ifstream:: in); 

    wenn (! inp.good ())
       Wurf („es gab ein Problem, welches die Reservierung file.") öffnet;
    Fang (Putzfraumitteilung [])
    {
        cout << Mitteilung << endl;
        Rückholfalsches;
    }

    während (inp.good ())
    {
          //read die Reservierungen

    }
    *
    Rückhol ausrichten;
}

Auto aufheben:: cancelReservation (Reservierung * Res)
{
     für (int i=0; I < reservations.size (); i++)
         wenn (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-Geschlechtskrankheit;

Kategorie Reservierung
{
privat:
    time_t dateOut;
    time_t dateIn;
	int carID;
    Kunde * custInfo;
    int reservationNumber;
    
    
Öffentlichkeit:
    Reservierung (time_t dOut, time_t Lärm, int _carID, Kunde * custI);
    
    bool Konflikt (Reservierung *r);
    
    int getidNumber ();
    time_t getDateOut ();
    time_t getDateIn ();
    int getCarReserved ();
    Customer* getCustInfo ();
    
};

int-Reservierung:: getidNumber ()
{
    RückholreservationNumber;
}

time_t Reservierung:: getDateOut ()
{
       RückholdateOut;
}

time_t Reservierung:: getDateIn ()
{
       RückholdateIn;
}

int-Reservierung:: getCarReserved ()
{
    RückholcarID;
}

Customer* Reservierung:: getCustInfo ()
{
         RückholcustInfo;
}

bool Reservierung:: Konflikt (Reservierung *r)
{
     wenn ((r->getDateIn () < dateOut) || (r->getDateOut () > dateIn))
        Rückholfalsches;
     Rückhol ausrichten;
}     

Reservierung:: Reservierung (time_t dOut, time_t Lärm, int _carID, Kunde * custI)
{
   dateOut = dOut;
   dateIn = Lärm;
   carID = _carID;
   custInfo = custI;
   
}                             

#endif

Antwort : Wie verursache ich eine Kategorie, die Akte Input/Output für ein Automietreservierungsprogramm behandelt?

Ich habe ein Gefühl, das Sie benötigen können, um diese Projektart Frage des Entwurfs und der Implementierung in mehrfache Fragen über eine wie-erforderliche Basis zu brechen. Aber, ich versuche, das Kugelrollen mit einigen Vorschlägen zu erhalten. Aber, falls Ihre Frage Aktenschreibenstechniken beschäftigt, möchte ich, dass Sie einen Blick an dieser Verbindung nehmen und sehe, wenn die Ideen dort Ihnen einen Anfang geben.
         http://w.e-e.com/SiwPQt

Es gibt eine Input-/Outputausgabe, dass Sie, vor auf Akten weitergehen berücksichtigen sollten. Wenn Sie um die Adresse des Kunden bitten, verwenden Sie
      cin >> cAddress;
Aber, wenn die Adresse Räume in ihr hat, dann dieses aufhebt nur das erste Wort te. Sie sollten die folgende Verbindung über getline lesen, um dieses Problem zu lösen:
    http://www.cplusplus.com/reference/iostream/istream/getline/


===========================
Weitergehen…
>>  Vektor hält nur 10 Autos mit allen Variablen, die zu einer einfachen .txt-Akte EINSCHLIESSLICH vektorreservierungen gespeichert.

Aussieht wie Sie verursachen Ihre eigene Datenbank ne. Sie können die folgenden Ideen nehmen und entscheiden, was Sie für Ihre Anweisung wirklich tun müssen. So etwas von der DB-Entwurfsannäherung folgend, erwägen, nicht ein, aber einige .txt-Akten herzustellen:

- Listenkunden sortiert durch Kundenidentifikation (eine one-up Zahl)
- Listen der Autowarenbestand sortiert durch Autoidentifikation (eine one-up Zahl)
- Listen der Autostatus sortiert durch Autoidentifikation (, ist d.h. sie im Los; oder wenn nicht, die Kundenidentifikation einschließen und wenn sie passend zurückzugehen ist)
- Listenreservierungen using Sortierkriterien (vermutlich ist car_id mit alternativem Schlüssel des ReservierungsAnfangsdatums nicht ein schlechtes)
- Listengeschichte der Gebührenzählungsinformationen

Wenn ein Kunde eine Miete nimmt, entfernt die Reservierungseintragung, und die Gebührenzählungs- und Autostatusakten sind modernisiert.
===========================

Betr.: Ihre Aktenkategorie
Sind Sie erfordert, eine Aktenkategorie zu haben; oder konnten Sie Input-/Outputbetriebe in Ihre einzelnen Kategorien einbetten - Auto, Kunde und Reservierung? In jedem konnten Sie Erbauer den entsprechenden Dateinamen einschließen und die entsprechende Akte öffnen.
Weitere Lösungen  
 
programming4us programming4us