Sunteți pe pagina 1din 3

Lucrarea de Laborator nr.

4
Tema: Fișiere
Scopul: utilizarea fișierelor pentru scrierea programelor în limbajul de
programare C++.
Sarcini
Scrieți un program care permite utilizatorului să selecteze unul din punctele meniului

(crearea fișierului din structuri; afișarea conținutului fișierului; adăugarea datelor în

fișier; modificarea datelor din fișier; eliminarea datelor din fișier; căutarea datelor în

fișier conform căruiva criteriu; sortarea datelor din fișier; ieșirea din program ș.a.).

Tema, pe baza căreia trebuie să creați fișierul este aceiași ca și la lucrarea de laborator

nr. 3. Se recomandă să utilizați fișiere binare.

13) Tehnică de calcul (nr, denumire, model, preț, an editare, țară)

#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

struct TehnicaCalcul {
int nr;
std::string denumire;
std::string model;
float pret;
int anEditare;
std::string tara;
};

void afisareMeniu() {
std::cout << "1. Creare fisier din structuri" << std::endl;
std::cout << "2. Afisare continut fisier" << std::endl;
std::cout << "3. Adaugare date in fisier" << std::endl;
std::cout << "4. Modificare date in fisier" << std::endl;
std::cout << "5. Eliminare date din fisier" << std::endl;
std::cout << "6. Cautare date in fisier conform criteriului" <<
std::endl;
std::cout << "7. Sortare date in fisier" << std::endl;
std::cout << "8. Iesire din program" << std::endl;
}

void afisareTehnica(const TehnicaCalcul &tehnica) {


std::cout << "Numar: " << tehnica.nr << ", Denumire: " <<
tehnica.denumire
<< ", Model: " << tehnica.model << ", Pret: " << tehnica.pret
<< ", An editare: " << tehnica.anEditare << ", Tara: " <<
tehnica.tara << std::endl;
}

void scrieInFisier(const std::string &numeFisier, const


std::vector<TehnicaCalcul> &vectorTehnicaCalcul) {
std::ofstream fisier(numeFisier, std::ios::binary);

if (fisier.is_open()) {
for (const auto &tehnica : vectorTehnicaCalcul) {
fisier.write(reinterpret_cast<const char*>(&tehnica),
sizeof(TehnicaCalcul));
}
fisier.close();
} else {
std::cerr << "Eroare la deschiderea fisierului pentru scriere." <<
std::endl;
}
}

void citesteDinFisier(const std::string &numeFisier,


std::vector<TehnicaCalcul> &vectorTehnicaCalcul) {
std::ifstream fisier(numeFisier, std::ios::binary);

if (fisier.is_open()) {
vectorTehnicaCalcul.clear();

while (!fisier.eof()) {
TehnicaCalcul tehnica;
fisier.read(reinterpret_cast<char*>(&tehnica),
sizeof(TehnicaCalcul));

if (!fisier.eof()) {
vectorTehnicaCalcul.push_back(tehnica);
}
}

fisier.close();
} else {
std::cerr << "Eroare la deschiderea fisierului pentru citire." <<
std::endl;
}
}

int main() {
std::vector<TehnicaCalcul> vectorTehnicaCalcul;
const std::string numeFisier = "tehnica.dat";

while (true) {
afisareMeniu();

int optiune;
std::cout << "Introduceti optiunea: ";
std::cin >> optiune;

switch (optiune) {
case 1: {
TehnicaCalcul tehnica;
std::cout << "Introduceti numarul: "; std::cin >>
tehnica.nr;
std::cout << "Introduceti denumirea: "; std::cin >>
tehnica.denumire;
std::cout << "Introduceti modelul: "; std::cin >>
tehnica.model;
std::cout << "Introduceti pretul: "; std::cin >>
tehnica.pret;
std::cout << "Introduceti anul editarii: "; std::cin >>
tehnica.anEditare;
std::cout << "Introduceti tara: "; std::cin >> tehnica.tara;
vectorTehnicaCalcul.push_back(tehnica);
scrieInFisier(numeFisier, vectorTehnicaCalcul);
std::cout << "Fisier creat cu succes." << std::endl;
break;
}
case 2: {
citesteDinFisier(numeFisier, vectorTehnicaCalcul);

if (vectorTehnicaCalcul.empty()) {
std::cout << "Fisierul este gol." << std::endl;
} else {
std::cout << "Continutul fisierului:" << std::endl;
for (const auto &tehnica : vectorTehnicaCalcul) {
afisareTehnica(tehnica);
}
}
break;
}
case 8: {
std::cout << "Programul s-a incheiat." << std::endl;
return 0;
}
default:
std::cout << "Optiune invalida. Va rugam sa introduceti o
optiune valida." << std::endl;
}
}

return 0;
}

S-ar putea să vă placă și

  • Lab 3
    Lab 3
    Document3 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 5
    Lab 5
    Document3 pagini
    Lab 5
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document5 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Raport
    Raport
    Document32 pagini
    Raport
    braileanu
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document3 pagini
    Lab 6
    Igor Pascal
    Încă nu există evaluări
  • Lab 7
    Lab 7
    Document4 pagini
    Lab 7
    Igor Pascal
    Încă nu există evaluări
  • ZinveliuIoana Cumulate Lab8 An1 Sem2
    ZinveliuIoana Cumulate Lab8 An1 Sem2
    Document12 pagini
    ZinveliuIoana Cumulate Lab8 An1 Sem2
    Ioana Zinveliu
    Încă nu există evaluări
  • Patrat PDF
    Patrat PDF
    Document2 pagini
    Patrat PDF
    Julia Varga
    Încă nu există evaluări
  • Lucrarea de Laborator NR 7 POO
    Lucrarea de Laborator NR 7 POO
    Document7 pagini
    Lucrarea de Laborator NR 7 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Lab.4 POO UD
    Lab.4 POO UD
    Document9 pagini
    Lab.4 POO UD
    Miroslava
    Încă nu există evaluări
  • Lucrarea de Laborator NR 7 POO
    Lucrarea de Laborator NR 7 POO
    Document7 pagini
    Lucrarea de Laborator NR 7 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Laborator1 1 PDF
    Laborator1 1 PDF
    Document5 pagini
    Laborator1 1 PDF
    Denis Minjineanu
    Încă nu există evaluări
  • Lucrarea de Laborator nr.1 POO
    Lucrarea de Laborator nr.1 POO
    Document27 pagini
    Lucrarea de Laborator nr.1 POO
    Mihai Marchitan
    Încă nu există evaluări
  • Lab 1 POO
    Lab 1 POO
    Document24 pagini
    Lab 1 POO
    Grosu Maxim
    Încă nu există evaluări
  • Lab 1 POO
    Lab 1 POO
    Document5 pagini
    Lab 1 POO
    Catalin Morari
    Încă nu există evaluări
  • Lab 7
    Lab 7
    Document8 pagini
    Lab 7
    Ion Popescu
    Încă nu există evaluări
  • Beriksadsada
    Beriksadsada
    Document17 pagini
    Beriksadsada
    Marius Turcan
    Încă nu există evaluări
  • 1.sarcini Individuale
    1.sarcini Individuale
    Document13 pagini
    1.sarcini Individuale
    Maria
    Încă nu există evaluări
  • Lucrarea de Laborator nr3 - C++
    Lucrarea de Laborator nr3 - C++
    Document9 pagini
    Lucrarea de Laborator nr3 - C++
    CapitanMD
    Încă nu există evaluări
  • Proiect Poo
    Proiect Poo
    Document14 pagini
    Proiect Poo
    Donia Andrei
    Încă nu există evaluări
  • Proiect Lectie3
    Proiect Lectie3
    Document4 pagini
    Proiect Lectie3
    Idriceanu Daniela
    Încă nu există evaluări
  • Lab 3 Informat
    Lab 3 Informat
    Document4 pagini
    Lab 3 Informat
    spotifymusicme1
    Încă nu există evaluări
  • Laborar 4 Programare
    Laborar 4 Programare
    Document13 pagini
    Laborar 4 Programare
    cristian
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document8 pagini
    Lab 4
    Veronica Loghinova
    Încă nu există evaluări
  • RefC1 Din14 2021-p
    RefC1 Din14 2021-p
    Document9 pagini
    RefC1 Din14 2021-p
    MariusELpatron
    Încă nu există evaluări
  • Joudi Leila PICS Laborator 3 Si 4 SMIM 9MF211
    Joudi Leila PICS Laborator 3 Si 4 SMIM 9MF211
    Document9 pagini
    Joudi Leila PICS Laborator 3 Si 4 SMIM 9MF211
    Leila Joudi
    Încă nu există evaluări
  • Tronciu Raport POO-3
    Tronciu Raport POO-3
    Document11 pagini
    Tronciu Raport POO-3
    trfetr4frfrf
    Încă nu există evaluări
  • An1 Lab07 Sem2 20-21
    An1 Lab07 Sem2 20-21
    Document8 pagini
    An1 Lab07 Sem2 20-21
    Ioana
    Încă nu există evaluări
  • Rezolvari Programare Procedurala
    Rezolvari Programare Procedurala
    Document53 pagini
    Rezolvari Programare Procedurala
    micklamickla
    100% (1)
  • Proiect Pachete Software
    Proiect Pachete Software
    Document21 pagini
    Proiect Pachete Software
    Andrei
    Încă nu există evaluări
  • LAB 4 OOP LunguConstantin
    LAB 4 OOP LunguConstantin
    Document9 pagini
    LAB 4 OOP LunguConstantin
    lungu constantin
    Încă nu există evaluări
  • Lucrarea de Laborator 2 SDA
    Lucrarea de Laborator 2 SDA
    Document17 pagini
    Lucrarea de Laborator 2 SDA
    Mihai Marchitan
    Încă nu există evaluări
  • Laborator Nr.4
    Laborator Nr.4
    Document8 pagini
    Laborator Nr.4
    Ion Petrenco
    Încă nu există evaluări
  • IDP Laborator 7
    IDP Laborator 7
    Document7 pagini
    IDP Laborator 7
    Fifu One
    Încă nu există evaluări
  • L1 - L2 Vectori-Matrici
    L1 - L2 Vectori-Matrici
    Document5 pagini
    L1 - L2 Vectori-Matrici
    mircica ilie
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document4 pagini
    Lab 6
    Егор Казаков
    Încă nu există evaluări
  • Raport Lucrare de Laborator PC Nr.6
    Raport Lucrare de Laborator PC Nr.6
    Document16 pagini
    Raport Lucrare de Laborator PC Nr.6
    maxlab
    Încă nu există evaluări
  • Notiuni Introductive - POO
    Notiuni Introductive - POO
    Document7 pagini
    Notiuni Introductive - POO
    Albu Daniela Gabriela
    Încă nu există evaluări
  • 7
    7
    Document23 pagini
    7
    ramsesaha
    Încă nu există evaluări
  • Atestat Informatica - Vectori
    Atestat Informatica - Vectori
    Document48 pagini
    Atestat Informatica - Vectori
    Mihaela Dan
    Încă nu există evaluări
  • Laborator 1 - Horobrih Eradj
    Laborator 1 - Horobrih Eradj
    Document14 pagini
    Laborator 1 - Horobrih Eradj
    Anonymous CZYe2H
    Încă nu există evaluări
  • Cum Să Conectați Baza de Date SQL În ASP
    Cum Să Conectați Baza de Date SQL În ASP
    Document18 pagini
    Cum Să Conectați Baza de Date SQL În ASP
    Bobe Danut
    Încă nu există evaluări
  • Lab07 Pointeri
    Lab07 Pointeri
    Document8 pagini
    Lab07 Pointeri
    Raifury
    Încă nu există evaluări
  • Cheregi Florin Lab1
    Cheregi Florin Lab1
    Document21 pagini
    Cheregi Florin Lab1
    Florin Cheregi
    100% (2)
  • Hgjyujvvgvhgvn
    Hgjyujvvgvhgvn
    Document5 pagini
    Hgjyujvvgvhgvn
    CS:GO cFG
    100% (2)
  • Lucrarea de Laborator NR 4 POO
    Lucrarea de Laborator NR 4 POO
    Document10 pagini
    Lucrarea de Laborator NR 4 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Raport 1
    Raport 1
    Document14 pagini
    Raport 1
    Dima Grigoras
    Încă nu există evaluări
  • Sda LP07 V05
    Sda LP07 V05
    Document13 pagini
    Sda LP07 V05
    Music NoCopyright
    Încă nu există evaluări
  • SDA Raport 9
    SDA Raport 9
    Document17 pagini
    SDA Raport 9
    Alina Axenti
    Încă nu există evaluări
  • Utilizarea Internetului in Afaceri Fsega
    Utilizarea Internetului in Afaceri Fsega
    Document20 pagini
    Utilizarea Internetului in Afaceri Fsega
    Florin Drule
    Încă nu există evaluări
  • Laborator 4
    Laborator 4
    Document2 pagini
    Laborator 4
    Roman Grițco
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document6 pagini
    Lab 3
    Igor Pascal
    Încă nu există evaluări
  • Mamta in RAzboi
    Mamta in RAzboi
    Document1 pagină
    Mamta in RAzboi
    Igor Pascal
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document2 pagini
    Lab 2
    Igor Pascal
    Încă nu există evaluări
  • Eseu Bilant
    Eseu Bilant
    Document2 pagini
    Eseu Bilant
    Igor Pascal
    Încă nu există evaluări
  • Riscul-De-Faliment Manoli Vladislav
    Riscul-De-Faliment Manoli Vladislav
    Document7 pagini
    Riscul-De-Faliment Manoli Vladislav
    Igor Pascal
    Încă nu există evaluări