Structuri de date neomogene: Aplicații practice

Exemple de aplicații practice

Să explorăm câteva exemple concrete de utilizare a structurilor de date neomogene:

1. Gestionarea unei baze de date cu clienți:

  • Structură: C++struct Client { string nume; string prenume; string adresa; string telefon; // ... alte informații relevante }; Folosește codul cu precauție.
  • Utilizare:
    • Stocarea informațiilor despre un număr mare de clienți într-un vector sau într-o listă.
    • Căutarea unui client după nume sau după criterii specifice.
    • Sortarea clienților după diferite criterii (alfabetic, după data înregistrării).
    • Generarea de rapoarte (de exemplu, lista clienților dintr-o anumită regiune).

2. Simularea unui sistem de gestiune a unei biblioteci:

  • Structură: C++struct Carte { string titlu; string autor; int anPublicare; bool disponibila; }; Folosește codul cu precauție.
  • Utilizare:
    • Stocarea informațiilor despre cărți într-o bibliotecă.
    • Împrumutarea și returnarea cărților.
    • Căutarea unei cărți după titlu, autor sau alte criterii.
    • Generarea de rapoarte despre cărțile împrumutate, cele pierdute etc.

3. Gestionarea unui sistem de rezervări hoteliere:

  • Structură: C++struct Rezervare { string numeClient; Date dataSosire; Date dataPlecare; int numarCamere; }; Folosește codul cu precauție.
  • Utilizare:
    • Stocarea informațiilor despre rezervările efectuate.
    • Verificarea disponibilității camerelor.
    • Anularea unei rezervări.
    • Generarea de facturi.

Gestionarea unei baze de date cu produse într-un magazin online:

  • Structură: C++struct Produs { string nume; float pret; int cantitateStoc; // ... alte caracteristici }; Folosește codul cu precauție.
  • Utilizare:
    • Stocarea informațiilor despre produsele disponibile.
    • Gestionarea stocului.
    • Afișarea produselor într-un catalog online.
    • Procesarea comenzilor.

program care gestionează o bibliotecă.

C++

#include <iostream>
#include <string>
#include <vector>

using namespace std;

struct Carte {
    string titlu;
    string autor;
    int anPublicare;
    bool disponibila;
};

vector<Carte> biblioteca;

// Funcție pentru a adăuga o carte în bibliotecă
void adaugaCarte(const Carte& carte) {
    biblioteca.push_back(carte);
}

// Funcție pentru a căuta o carte după titlu
Carte* cautaCarte(const string& titlu) {
    for (Carte& carte : biblioteca) {
        if (carte.titlu == titlu) {
            return &carte;
        }
    }
    return nullptr;
}

// ... alte funcții pentru împrumut, returnare, afișare catalog ...

int main() {
    // Adăugare cărți în bibliotecă
    Carte carte1 = {"Ion", "Liviu Rebreanu", 1920, true};
    adaugaCarte(carte1);
    // ... adăugare alte cărți ...

    // Căutare carte
    Carte* carteGasita = cautaCarte("Ion");
    if (carteGasita) {
        cout << "Cartea a fost găsită!" << endl;
    } else {
        cout << "Cartea nu a fost găsită." << endl;
    }

    return 0;
}