Login
...or Sign up
Home
Search
Search Code Snippets
Search People
14 baza
#include
#include
typedef struct _osoba { struct _osoba *prev, *next; char imie[30]; char nazwisko[30]; int nr; } osoba; osoba *head=NULL, *tail=NULL; void dodaj (int n); void usun (int k,int n); void wypisz (int k); void szukaj (int n); int sprawdz (); void zapis (int n); void odczyt (); int main () { int ocb,n,k; do { printf ("to jest baza danych w ktorej dane sa pogrupowane wedle schematu\n" "Imie\n" "Nazwisko\n" "numer porzadkowy osoby\n"); n=sprawdz (); printf ("baza zawiera aktualnie %d elementow\n",n); printf ("1 dodaj osobe do bazy danych\n" "2 usun osobe z bazy\n" "3 wyswietlanie danych osoby na podstawie numeru porzadkowego\n" "4 szukanie osoby wedle: imienia/nazwiska\n" "5 odczyt/zapis bazy danych z/do pliku\n"); scanf ("%d",&ocb); switch (ocb) { default: printf ("nie wybrales rzadnej z opcji\n"); continue; break; case 1: dodaj (n); break; case 2: printf ("podaj numer porzadkowy osoby ktorej dane maja zostac skasowane\n"); scanf ("%d",&k); usun (k,n); break; case 3: printf ("podaj numer porzadkowy osoby ktorej dane maja zostac wyswietlone\n"); scanf ("%d",&k); wypisz (k); break; case 4: szukaj(n); break; case 5: printf ("co chcesz zrobic:\n" "1 zapisac" "2 odczytac"); scanf ("%d",&k); switch (k) { case 1: zapis (n); break; case 2: odczyt (); break; } break; } } while (1); } int sprawdz () { osoba *current; int n=0; if (head==NULL) { return 0; } else { current=head; do { current=current->next; n++; } while (current!=NULL); return n; } } void dodaj (int n) { char imie[30]; char nazwisko[30]; osoba *current,*e; printf ("podaj imie"); scanf ("%s",imie); printf ("podaj nazwisko"); scanf ("%s",nazwisko); if (head==NULL) { head=tail=(osoba*)malloc(sizeof(osoba)); head->next=NULL; head->prev=NULL; head->nr=n; strcpy(head->imie,imie); strcpy(head->nazwisko,nazwisko); } else { current=tail; e=(osoba*)malloc(sizeof(osoba)); current->next=e; e->prev=current; e->next=NULL; e->nr=n; strcpy(e->imie,imie); strcpy(e->nazwisko,nazwisko); tail=e; } } void usun (int k,int n) { osoba *current,*e; int i; current=head; if (k==1) { free (head); head=NULL; } else if (n==1) { current=current->next; current->prev=NULL; free (head); head=current; return 0; } else if (n==k) { current=tail->prev; current->next=NULL; free (tail); tail=current; return 0; } else { for (i=1;i
next; } current->next->next->prev=current; e=current->next; current->next=current->next->next; free (e); } return 0; } void wypisz (int k) { osoba *current; int i; current=head; for (i=1;i
next==NULL) break; current=current->next; } printf ("imie: %s\n nazwisko: %s\n", current->imie, current->nazwisko); } void szukaj (int n) { osoba *current; char dana[30]; int ocb,i; printf ("wybierz kryterium wyszukiwania\n" "1 imie\n" "2 nazwisko\n"); scanf ("%d",&ocb); switch (ocb) { case 1: printf ("podaj imie\n"); scanf ("%s",dana); for (i=0;i
next; if (strcmp(current->imie,dana)==0) { printf ("nr: %d\nimie: %s\n nazwisko: %s\n", current->nr, current->imie, current->nazwisko); } } break; case 2: printf ("podaj nazwisko"); scanf ("%s",dana); for (i=0;i
next; if (strcmp(current->nazwisko,dana)==0) { printf ("nr: %d\nimie: %s\n nazwisko: %s\n", current->nr, current->imie, current->nazwisko); } } break; } } void zapis (int n) { FILE *f; int i; osoba *current; char nazwa[20]; printf ("podaj nazwe pliku"); scanf ("%s",nazwa); f=fopen(nazwa,"w"); current=head; for (i=0;i
nr, current->imie, current->nazwisko); current=current->next; } fclose(f); } void odczyt () { FILE *f; int i=0; osoba *current,*e; char nazwa[20]; printf ("podaj nazwe pliku"); scanf ("%s",nazwa); f=fopen(nazwa,"r"); current=head; do { e=(osoba*)malloc(sizeof(osoba)); fscanf (f,"%d %s %s", &e->nr, e->imie, e->nazwisko); printf ("%d %s %s\n", e->nr, e->imie, e->nazwisko); if (i==0) { head=e; head->prev=NULL; current=head; continue; } e->prev=current; current->next=e; current=e; i++; } while (feof(f)==0); tail=current; tail->next=NULL; fclose(f); }
Score: 0/10
Would you like to comment?
Sign up
for a free account or
sign in
(if you are already a member).
URL:
Embed:
Uploaded on 5/28/2009 4:31:59 PM
by
migiel
Programming Language:
C
Tags:
Viewed 252 times
Help
Help by email
What is Naslu?
|
About Naslu
|
Contact
|
Terms of Use
|
Downloads
|
Webprogramacion.com
|
Blog
|
Top
Links
Select language:
Español
|
English
© 2009 naslu.com