Pornind de la definitia de mai jos:
struct Carti {
char titlu[50];
char autor[50];
char domeniu[100];
int id_carte;
} carte;
Implementati un program in care sa definiti cateva functii: introducere, adaugare, afisare, cautare, utilizate intr-un program principal.
Răspunsuri la întrebare
#include <iostream>
#include <iomanip>
#include <vector>
struct Carti {
char titlu[50];
char autor[50];
char domeniu[100];
int id_carte;
} carte;
Carti citeste_carte() {
Carti tmp;
std::cout << "\n\nIntroduceti titlu : ", std::cin >> tmp.titlu;
std::cout << "Introduceti autor : ", std::cin >> tmp.autor;
std::cout << "Introduceti domeniu : ", std::cin >> tmp.domeniu;
std::cout << "Introduceti ID : ", std::cin >> tmp.id_carte;
return tmp;
}
void afisare_carti(std::vector<Carti>& biblioteca) {
std::cout << std::endl << std::left << std::setw(15) << "ID" << std::setw(30) << "TITLU" << std::setw(25) << "AUTOR" << std::setw(15) << "DOMENIU\n";
for (Carti element : biblioteca) {
std::cout << std::left << std::setw(15) << element.id_carte << std::setw(30) << element.titlu << std::setw(25) << element.autor << std::setw(15) << element.domeniu << std::endl;
}
}
void cautare(std::vector<Carti>& biblioteca) {
int cautata;
std::cout << "\nIntroduceti ID de cautat : ";
std::cin >> cautata;
bool gasit = 0;
for (int i = 0; i < biblioteca.size(); i++) {
if (biblioteca[i].id_carte == cautata) {
std::cout << "\nCartea exista in biblioteca pe pozitia : " << i;
gasit = 1;
}
}
if (!gasit)
std::cout << "\nCartea nu exista in biblioteca";
}
int main() {
int alegere = 10;
std::vector<Carti> biblioteca;
do {
std::cout << "\n\n|| MENIU ||";
std::cout << "\n1. Introducere carte";
std::cout << "\n2. Afisare carti";
std::cout << "\n3. Cautare carte";
std::cout << "\n0. Iesire";
std::cout << "\nAlegerea dumneavoastra : ";
std::cin >> alegere;
switch (alegere)
{
case 1:
biblioteca.push_back(citeste_carte());
break;
case 2:
afisare_carti(biblioteca);
break;
case 3:
cautare(biblioteca);
break;
case 0:
std::cout << "\nAti ales sa parasiti programul";
break;
}
} while (alegere);
}