Să se creeze o coadă ce conține datele despre elevii unei clase : numele, prenumele și anul nașterii. Să se afișeze coada la ecran precum și vărsta fiecărui elev.
Programul să fie creat în limbajul C cu ajutorul la Prelucrarea tipurilor de date stivă, coadă.
Dau Coroana!!!!!
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <queue>
#include <time.h>
using namespace std;
struct Date
{
string nume;
string prenume;
int an_nastere;
};
int main()
{
queue<Date> coada;
Date student1 = {"Popescu", "Mihai", 2000};
Date student2 = {"Ionescu", "Andrei", 2002};
Date student3 = {"Radu", "Alexandru", 2001};
coada.push(student1);
coada.push(student2);
coada.push(student3);
int varsta;
time_t t = time(NULL);
tm* timePtr = localtime(&t);
int an_curent = timePtr->tm_year + 1900;
cout << "Informatii elevi:" << endl;
while (!coada.empty()) {
Date student = coada.front();
varsta = an_curent - student.an_nastere;
cout << "Nume: " << student.nume << "\n";
cout << "Prenume: " << student.prenume << "\n";
cout << "Varsta: " << varsta << endl;
coada.pop();
}
return 0;
}
Explicație:
În acest cod, am definit o structură numită Date care conține informațiile despre elevi numele, prenumele și anul nașterii. Apoi, am creat trei obiecte de tip Date, care conțin datele despre trei elevi. Aceste obiecte au fost apoi introduse într-o coadă.
În bucla while, în primul rând, am luat primul element din coadă, care reprezintă datele despre un student, și le-am afișat la ecran. Apoi, am calculat vârsta acestuia prin scăderea anului curent din anul de naștere. La sfârșitul buclei, am eliminat elementul din coadă. Această operație se repetă până când coada devine goală.
<time.h> este un header folosit pentru unitati de masurarea al timpului si pentru manipularea datelor iar <queue> este un alt header care tradus inseamna coada, foloseste sistemul FIFO (first in first out) si are functii speciale precum push() care adauga un element la sfarsitul cozii si pop() care extrage primul element din coada.
Din pacate in C nu ai queue sau string, trebuie implementat manual.