Zrobiłem bazę danych, kompiluje sie, ale jest problem. Sortowania wg wieku mi nie dziala i nie wiem, gdzie jest problem i dodatkowo odczyt bazy z pliku mi nie dziala, musze uzywac fwrite i fread do zapisu i odczytu. Proszę o szybka pomoc. O to mój kod:
#include <iostream>
#include <conio.h>
using namespace std;
struct struktura
{
char imie[20];
char nazwisko[30];
int wiek;
};
struktura dane[100];
int main()
{
int wybrano = 9;
int a = 0;
while (wybrano !=0)
{
system("cls");
cout << "Program jest przewidziany na 100 osob" << endl << endl;
cout << "Menu:" << endl << endl;
cout << "1. Dodaj osobe " << endl;
cout << "2. Wypisz osoby " << endl;
cout << "3. Posortuj osoby wg wieku " << endl;
cout << "4. Usun osobe " << endl;
cout << "5. Zapisz " << endl;
cout << "6. Wczytaj dane z pliku " << endl;
cout << "0. Wyjdz! " << endl;
cout << "Wybrano: ";
cin >> wybrano;
switch (wybrano)
{
case 1:
if (a < 100)
{
system ("cls");
cout << "Wprowadz dane: " << endl;
cout << "Podaj imie: " << endl;
cin >> dane[a].imie;
cout << "Wprowadz nazwisko: " << endl;
cin >> dane[a].nazwisko;
cout << "Podaj wiek: " << endl;
cin >> dane[a].wiek;
a++;
}
else cout << " Brak wolnego miejsca! " << endl;
break;
case 2:
system ("cls");
cout << "Osoby w bazie:" << endl;
for(int i=0; i<a; i++)
{
cout << dane[i].imie <<" "<< dane[i].nazwisko <<" "<< dane[i].wiek << " lat." << endl;
}
getch();
break;
case 3:
system ("cls");
cout << "Osoby sortowane wg wieku:" <<endl;
struktura zmienna;
for (int i=0; i<a;i++)
{
for(int j=0; j<a-1;j++)
{
if (dane[j].wiek>dane[j+1].wiek);
{
zmienna=dane[j+1];
dane[j+1]=dane[j];
dane[j]=zmienna;
}
}
}
for (int i=0; i<a;i++)
{
cout <<i+1<<" "<<dane[i].imie<<" "<<dane[i].nazwisko<<" "<<dane[i].wiek<<" "<<endl;
}
getch();
break;
case 4:
system ("cls");
cout<<"Wszystkie osoby w bazie: "<<endl;
for(int i=0; i<a;i++)
{
cout<<i+1<<" "<<dane[i].imie<<" "<<dane[i].nazwisko<<" "<<dane[i].wiek<< "lat"<<endl;
}
int miejsce;
cout<<"Ktora osobe chcesz usunac (0 = anuluj): ";
cin>>miejsce;
if (miejsce !=0)
{
for (int i = miejsce-1;i<a;i++)
{
dane[i]=dane[i+1];
}
a--;
}
break;
case 5:
system ("cls");
FILE *zapis;
zapis=fopen("baza danych.dat", "wb");
fwrite(dane,sizeof(struct struktura),a,zapis);
fclose(zapis);
cout<<"Zapisano do pliku";
getch();
break;
case 6:
system ("cls");
FILE *wczytaj;
wczytaj=fopen("baza danych.dat","rb");
fread (dane,sizeof(struct struktura),a,wczytaj);
fclose(wczytaj);
cout<<"Dane z pliku zostaly wczytane";
getch();
break;
}
}
return 0;
}
}