You are on page 1of 6

Datele fișierului de intrare:

Turisti.txt
1 ursu ilie b 3242342 2 20 7 2019 5 8 2019
2 cazacu vasile b 3211234 3 3 7 2019 5 7 2019
3 ursu valeria b 32421235 1 20 6 2019 4 7 2019
Unitati.txt
1 grand h 4
2 motel m 2
3 eleon h 5
4 leon m 3
Camere.txt
1 2 2 40 true true
2 1 3 60 false true
3 4 2 30 false false

Rezolvare:
#include <iostream>
#include <fstream>
#include <Windows.h>

void inregistrare();//ex1
void del();//ex2
void update();//Actualizarea datelor in fisier
void read();//Citirea datellor din fisier

int n = 0, a = 0, b = 0;//nr de rinturi in 3 fisiere

using namespace std;


struct infomation {
int CodU, Confort, CodC, Np, Pret, CodT, ZiuaC, LunaC, AnulC, ZiuaP, LunaP, AnulP, Nb;
char NumeU[99], Tip[10], Tf[10], Tv[10], NumeT[99], PrenumeT[99], Sb[99];
}C[99], U[99], T[99];

void inregistrare() {//new tourist


infomation i;
ofstream f("Turisti.txt", ios_base::app);

cout << "Introduceti data cazari ( Data curenta ) : \n";


cout << "Ziua : "; cin >> i.ZiuaC;
cout << "Luna : "; cin >> i.LunaC;
cout << "Anul : "; cin >> i.AnulC;
cout << endl;
cout << "Introduceti informatia despre turist !!!\n";
cout << "Codul turistului - "; cin >> i.CodT;
cout << "Numele - "; cin >> i.NumeT;
cout << "Prenumele - "; cin >> i.PrenumeT;
cout << "Seria Buletinului -"; cin >> i.Sb;
cout << "NR Buletinului - "; cin >> i.Nb;
cout << "Codul Camerii -"; cin >> i.CodC;
cout << endl;
cout << "Data plecarii : \n";
cout << "Ziua : "; cin >> i.ZiuaP;
cout << "Luna : "; cin >> i.LunaP;
cout << "Anul : "; cin >> i.AnulP;
cout << endl;

f << i.CodT << " " << i.NumeT << " " << i.PrenumeT << " " << i.Sb << " " << i.Nb << " " << i.CodC << " " <<
i.ZiuaC << " " << i.LunaC << " " << i.AnulC << " " << i.ZiuaP << " " << i.LunaP << " " << i.AnulP << endl;
f.close();
}
void read() {

ifstream u("Unitati.txt");
ifstream c("Camere.txt");
ifstream t("Turisti.txt");

while (u >> U[a].CodU >> U[a].NumeU >> U[a].Tip >> U[a].Confort)


a++;

while (c >> C[b].CodC >> C[b].CodU >> C[b].Np >> C[b].Pret >> C[b].Tf >> C[b].Tv)
b++;

while (t >> T[n].CodT >> T[n].NumeT >> T[n].PrenumeT >> T[n].Sb >> T[n].Nb >> T[n].CodC >> T[n].ZiuaC >>
T[n].LunaC >> T[n].AnulC >> T[n].ZiuaP >> T[n].LunaP >> T[n].AnulP)
n++;

u.close();
c.close();
t.close();

}
void del() {
int cod;
int poz = 0;
for (int i = 0; i < n; i++) {
if ((T[i].ZiuaC == T[i].ZiuaP) && (T[i].LunaC == T[i].LunaP) && (T[i].AnulC == T[i].AnulP)) {
cout << T[i].CodT << " " << T[i].NumeT << " " << T[i].PrenumeT << " " << T[i].Sb << " " <<
T[i].Nb << " " << T[i].CodC << " " << T[i].ZiuaC << " " << T[i].LunaC << " " << T[i].AnulC << " " << T[i].ZiuaP << " " <<
T[i].LunaP << " " << T[i].AnulP << endl;
}
}

cout << "\t Introduceti codul unui Turistului de mai sus care trebuie exclus : "; cin >> cod;
for (int i = 0; i < n; i++)
if (T[i].CodT == cod) {
n--;
for (int j = i; j < n; j++)
T[j] = T[j + 1];
update();
poz++;
}

if (poz == 0)
cout << "Nu exista asa produs !!" << endl;

}
int main()
{
int c;
char m;

read();

system("CLS");

do {
cout << "\t Meniu !!! \n";
cout << " 1) Inregistraza un nou turist \n";
cout << " 2) Scoate din evidenta un turist care pleaca in ziua curenta \n";
cout << "Alegerea ta este : "; cin >> c;
switch (c) {
case 1:
inregistrare(); break;
case 2:
del(); break;
}
cout << "\n Daca doresti sa continui apasa 'y' : "; cin >> m;
} while (m == 'y');
return 0;
}

void update() {
ofstream f("Turisti.txt");
for (int i = 0; i <= n; i++) {
f << T[i].CodT << " " << T[i].NumeT << " " << T[i].PrenumeT << " " << T[i].Sb << " " << T[i].Nb << " "
<< T[i].CodC << " " << T[i].ZiuaC << " " << T[i].LunaC << " " << T[i].AnulC << " " << T[i].ZiuaP << " " << T[i].LunaP << " "
<< T[i].AnulP << endl;
}
f.close();
}
Rezultate obținute în urma execuției programului:
Datele fișierelor de ieșire:

You might also like