Mam taki kod i nie mam pojęcia co zrobić żeby dodawać osoby do struktury więcej niż raz oraz żebym mógł wczytywać wartości z pliku do struktury
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <fstream>
using namespace std;
struct person
{
int wiek;
string forename;
string surname;
};
int z;
person persons[1024];
void menu();
void podajdane();
void wypiszdane();
void sort_fore();
void sort_sur();
void wyszukaj();
int main()
{
menu();
return 0;
}
void podajdane()
{
int i, j;
cout << "Podaj ile pozycji w bazie" << endl;
cin>>z;
for (j=0; j<1024; j++)
{
persons[j].wiek = NULL;
}
for(i=i;i<z;i++)
{
cout << "Podaj wiek: ";
cin >> persons[i].wiek;
cout << "podaj nazwisko: ";
cin >> persons[i].surname;
cout << "podaj imie: ";
cin >> persons[i].forename;
cout << endl;
}
menu();
}
void wypiszdane()
{
int i;
for (i=0; i<1024; i++)
{
if (persons[i].wiek!=NULL)
{
cout << "wiek: " << persons[i].wiek << endl;
cout << "nazwisko: " << persons[i].surname << endl;
cout << "imie: " << persons[i].forename << endl;
}
}
menu();
}
void sort_sur()
{
int i, j;
for( int i = 0; i < 1024; i++ )
{
for( int j = 0; j < 1024 - 1; j++ )
{
if( persons[ j ].surname > persons[ j + 1 ].surname )
swap( persons[ j ], persons[ j + 1 ] );
}
}
menu();
}
void sort_fore()
{
int i, j;
for( int i = 0; i < 1024; i++ )
{
for( int j = 0; j < 1024 - 1; j++ )
{
if( persons[ j ].forename > persons[ j + 1 ].forename )
swap( persons[ j ], persons[ j + 1 ] );
}
}
menu();
}
void wyszukaj()
{
string wysz, wysz_imie, wysz_nazw;
int i, wysz_wiek;
cout << "podaj po czym chcesz wyszukac(wiek, imie, nazwisko): ";
cin >> wysz;
if (wysz == "wiek")
{
cout << "podaj wiek: ";
cin >> wysz_wiek;
for (i=0; i<2024; i++)
{
if (wysz_wiek == persons[i].wiek)
{
cout << "wiek: " << persons[i].wiek << endl;
cout << "nazwisko: " << persons[i].surname << endl;
cout << "imie: " << persons[i].forename << endl;
break;
}
}
}
if (wysz == "imie")
{
cout << "podaj imie: ";
cin >> wysz_imie;
for (i=0; i<2024; i++)
{
if (wysz_imie == persons[i].forename)
{
cout << "wiek: " << persons[i].wiek << endl;
cout << "nazwisko: " << persons[i].surname << endl;
cout << "imie: " << persons[i].forename << endl;
break;
}
}
}
if (wysz == "nazwisko")
{
cout << "podaj nazwisko: ";
cin >> wysz_nazw;
for (i=0; i<2024; i++)
{
if (wysz_nazw == persons[i].surname)
{
cout << "wiek: " << persons[i].wiek << endl;
cout << "nazwisko: " << persons[i].surname << endl;
cout << "imie: " << persons[i].forename << endl;
break;
}
}
}
menu();
}
void zapisz()
{
int i;
string spac = "\n";
ofstream wiek("wiek.txt", ofstream::trunc);
ofstream imiona("imiona.txt", ofstream::trunc);
ofstream nazwiska("nazwiska.txt", ofstream::trunc);
for (int i=0; i<1024; i++)
{
wiek << persons[i].wiek;
wiek << spac;
imiona << persons[i].forename;
imiona << spac;
nazwiska << persons[i].surname;
nazwiska << spac;
}
}
void menu()
{
int a, i;
cout << "MENU" << endl
<< "1. Podaj liczbe osob do wprowadzenia oraz dane tych osob" << endl
<< "2. Koniec" << endl
<< "3. wyswietl" << endl
<< "4. sortuj wedlug nazwiska" << endl
<< "5. sortuj wedlug imienia" << endl
<< "6. wyszukaj osobe" << endl
<< "7. zapisz do pliku" << endl;
cin >> a;
switch (a)
{
case 1:
podajdane();
break;
case 2:
break;
break;
case 3:
wypiszdane();
break;
case 4:
sort_sur();
break;
case 5:
sort_fore();
break;
case 6:
wyszukaj();
break;
case 7:
zapisz();
break;
default:
cout << "Podales zla liczbe." << endl;
menu();
break;
}
}