Pentru tabloul unidimensional dat cu elemente de tip structură
să se afișeze la ecran următorul meniu de opțiuni:
Să se elaboreze funcțiile pentru implementarea opțiunilor meniului
puts("1. Alocarea dinamica a memoriei p/u tabl. de structuri");
puts("2. Introducerea elementelor tabloului de la tastatura");
puts("3. Afisarea elementelor tabloului la ecran ");
puts("4. Adaugarea unui element nou la sfirsit");
puts("5. Modificarea elementului tabloului");
puts("6. Cautarea elementului tabloului");
puts("7. Sortarea tabloului");
puts("8. Eliminarea elementului indicat din tablou ");
puts("9. Eliberarea memoriei alocate pentru tablou ");
puts("10. Inserarea Unui element");
puts("11. Citirea Elementelor din Fisier ");
puts("12. Salvarea Elementelor in Fisier");
puts("0. Iesire din program");
Structura Universitate cu câmpurile: denumirea, adresa, telefonul,
numărul de facultăți, numărul de studenți.In limbajul C/C++
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
struct Universitate {
string denumire;
string adresa;
int telefon;
int numar_facultati;
int numar_studenti;
};
Universitate* alocare_dinamica(int n) {
Universitate* tab = new Universitate[n];
return tab;
}
void introducere_elemente(Universitate* tab, int n) {
for (int i = 0; i < n; i++) {
cout << "Introduceti denumirea universitatii: ";
cin >> tab[i].denumire;
cout << "Introduceti adresa universitatii: ";
cin >> tab[i].adresa;
cout << "Introduceti telefonul universitatii: ";
cin >> tab[i].telefon;
cout << "Introduceti numarul de facultati: ";
cin >> tab[i].numar_facultati;
cout << "Introduceti numarul de studenti: ";
cin >> tab[i].numar_studenti;
}
}
void afisare_elemente(Universitate* tab, int n) {
for (int i = 0; i < n; i++) {
cout << "Universitatea " << i+1 << ":" << endl;
cout << "Denumire: " << tab[i].denumire << endl;
cout << "Adresa: " << tab[i].adresa << endl;
cout << "Telefon: " << tab[i].telefon << endl;
cout << "Numar facultati: " << tab[i].numar_facultati << endl;
cout << "Numar studenti: " << tab[i].numar_studenti << endl;
}
}
void adaugare_element(Universitate* tab, int &n) {
n++;
Universitate* tab_nou = new Universitate[n];
for (int i = 0; i < n-1; i++) {
tab_nou[i] = tab[i];
}
cout << "Introduceti denumirea universitatii: ";
cin >> tab_nou[n-1].denumire;
cout << "Introduceti adresa universitatii: ";
cin >> tab_nou[n-1].adresa;
cout << "Introduceti telefonul universitatii: ";
cin >> tab_nou[n-1].telefon;
cout << "Introduceti numarul de facultati: ";
cin >> tab_nou[n-1].numar_facultati;
cout << "Introduceti numarul de studenti: ";
cin >> tab_nou[n-1].numar_studenti;
delete
int main() {
int optiune, n;
Universitate* tab;
do {
cout << "Alegeti o optiune:" << endl;
cout << "1. Alocarea dinamica a memoriei p/u tablou de structuri" << endl;
cout << "2. Introducerea elementelor tabloului de la tastatura" << endl;
cout << "3. Afisarea elementelor tabloului la ecran" << endl;
cout << "4. Adaugarea unui element nou la sfarsit" << endl;
cout << "5. Modificarea elementului tabloului" << endl;
cout << "6. Cautarea elementului tabloului" << endl;
cout << "7. Sortarea tabloului" << endl;
cout << "8. Eliminarea elementului indicat din tablou" << endl;
cout << "9. Eliberarea memoriei alocate pentru tablou" << endl;
cout << "10. Inserarea unui element" << endl;
cout << "11. Citirea elementelor din fisier" << endl;
cout << "12. Salvarea elementelor in fisier" << endl;
cout << "0. Iesire din program" << endl;
cin >> optiune;
switch (optiune) {
case 1:
cout << "Introduceti numarul de elemente: ";
cin >> n;
tab = alocare_dinamica(n);
break;
case 2:
introducere_elemente(tab, n);
break;
case 3:
afisare_elemente(tab, n);
break;
case 4:
adaugare_element(tab, n);
break;
case 5:
// Function to modify an element in the array
break;
case 6:
// Function to search for an element in the array
break;
case 7:
// Function to sort the array
break;
case 8:
// Function to delete an element from the array
break;
case 9:
// Function to free memory allocated for the array
break;
case 10:
// Function to insert an element in the array
break;
case 11:
// Function to read elements from a file
break;
case 12:
// Function to save elements to a file
break;
}
} while (optiune != 0);
return 0;
}
Explicație:
Funcția principală prezintă un meniu cu opțiuni din care utilizatorul poate alege și apelează funcția corespunzătoare în funcție de alegerea utilizatorului.
Opțiunile sunt:
Alocați memorie dinamic pentru matricea de structuri.
Introduceți elementele matricei de la tastatură.
Afișați elementele matricei pe ecran.
Adăugați un nou element la sfârșit.
Modificați un element al matricei.
Căutați un element al matricei.