gdyby ktos wiedzial jak napisac sortowanie wg nazwiska i imienia przy pomocy funkcji qsort czyli opcja 4 to bylbym dozgonnie wdzieczny, ja nie mam pojecia
napiszcie cokolwiek dziekuje
oto program
#include <stdio.h>
#include <conio.h>
#include <string.h>
typedef struct{
char imie[10];
char nazwisko[25];
char telefon[10];
} baza;
int wczytaj_dane(baza *wsk){
fprintf(stdout,"\n\nPodaj dane osoby\n");
fprintf(stdout,"Podaj imie: "); gets(wsk->imie);
fprintf(stdout,"Podaj nazwisko: "); gets(wsk->nazwisko);
fprintf(stdout,"Podaj telefon: "); gets(wsk->telefon);
return(0);
}
int zapisz_dane(baza *wsk){
FILE *wsk_pliku;
if((wsk_pliku=fopen("baza.txt","a+"))!=NULL) {
fprintf(wsk_pliku,wsk->imie); fprintf(wsk_pliku," ");
fprintf(wsk_pliku,wsk->nazwisko); fprintf(wsk_pliku," ");
fprintf(wsk_pliku,wsk->telefon); fprintf(wsk_pliku,"\n");
fclose(wsk_pliku);
}
return(0);
}
int wyswietl_dane(baza *wsk){
fprintf(stdout,"Imie: %s",wsk->imie);
fprintf(stdout,"\tNazwisko: %s", wsk->nazwisko);
fprintf(stdout,"\tTelefon: %s\n", wsk->telefon);
return(0);
}
int pobierz_dane(baza *wsk, int x){
FILE *wsk_pliku;
baza kopia;
int i;
char znak;
strcpy(kopia.imie,wsk->imie);
strcpy(kopia.nazwisko,wsk->nazwisko);
strcpy(kopia.telefon,wsk->telefon);
if((wsk_pliku=fopen("baza.txt","r"))!=NULL) {
do {
fscanf(wsk_pliku,"%s %s %s", wsk->imie, wsk->nazwisko, wsk->telefon);
znak=fgetc(wsk_pliku);
if(x==1)
wyswietl_dane(wsk);
if(x==2) {
if((strcmp(kopia.imie,wsk->imie)==0) || (strcmp(kopia.nazwisko,wsk->nazwisko)==0) || (strcmp(kopia.telefon,wsk->telefon)==0))
wyswietl_dane(wsk);
}
} while(fscanf(wsk_pliku,&znak)!=EOF);
fclose(wsk_pliku);
}
return(0);
}
int odp;
int main() {
baza *wsk_osoby;
do
{ clrscr();
textcolor(GREEN);
gotoxy(30, 1);
printf("1. Zapis do bazy\n");
gotoxy(30, 2);
printf("2. Odczyt calej bazy\n");
gotoxy(30, 3);
printf("3. Wyszukiwanie w bazie\n");
gotoxy(30, 4);
printf("4. Sortowanie\n");
gotoxy(30, 5);
printf("5. Wyjscie\n");
gotoxy(1, 6);
printf("\nWybieram opcje: ");
odp = getch();
switch(odp)
{
case '1':{
wczytaj_dane(wsk_osoby);
zapisz_dane(wsk_osoby);
printf("\n\nNacisnij dowolny klawisz");
getch();
break;}
case '2':{
fprintf(stdout,"\n\nPoczatek bazy\n");
pobierz_dane(wsk_osoby,1);
fprintf(stdout,"Koniec bazy");
printf("\n\nNacisnij dowolny klawisz");
getch();
break;}
case'3':{
wczytaj_dane(wsk_osoby);
pobierz_dane(wsk_osoby,2);
printf("\n\nNacisnij dowolny klawisz");
getch();
break;}
case'4':{
printf("\nOpcja niedostepna");
getch();
break;}
case '5':{
{ printf("Koniec programu\n");
}
}
}
}
while (odp != '5');
return 0;
}