Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <string.h>
- typedef struct stud{
- char ime[30];
- char prezime[30];
- char brind[10];
- int godstd;
- struct stud *sledeci;
- }scvor;
- int brStd(scvor *vrh){
- int brojStd=0;
- while(vrh){
- brojStd++;
- vrh=vrh->sledeci;}
- return brojStd;}
- void unos(scvor **vrh,char *ime,char *prezime, char *brind, int godstd,int pozicija){
- if((pozicija>=0) && (pozicija<=brStd(*vrh))){
- int i;
- scvor *novi,*prethodni=*vrh,*tekuci=*vrh;
- novi=(scvor *)malloc(sizeof(scvor));
- strcpy(novi->ime,ime);
- strcpy(novi->prezime,prezime);
- strcpy(novi->brind,brind);
- novi->godstd=godstd;
- novi->sledeci=NULL;
- for(i=0;i<pozicija;i++){
- prethodni=tekuci;
- tekuci=tekuci->sledeci;
- }
- novi->sledeci=tekuci;
- if(tekuci==*vrh)
- *vrh=novi;
- else
- prethodni->sledeci=novi;
- } printf("\nbravo");
- }
- void ispisALL(scvor *vrh){
- printf("Prikaz studenata\n");
- if(vrh!=NULL){
- ispisALL(vrh->sledeci);
- printf("\n-------------------------\n");
- puts(vrh->ime);
- puts(vrh->prezime);
- puts(vrh->brind);
- printf("%d", vrh->godstd);
- }
- }
- void brisiALL(scvor **vrh){
- scvor *temp;
- while(*vrh){
- temp=*vrh;
- *vrh=(*vrh)->sledeci;
- free(temp);
- }
- }
- /*ne zaboravi u mainu char index[30]; i gets */
- void brisiStd(scvor **vrh,char *index){
- scvor *tekuci=*vrh, *prethodni=NULL, *temp=NULL;
- while(tekuci){
- if(!strcmp(tekuci->brind,index)){
- temp=tekuci;
- tekuci=tekuci->sledeci;
- if(temp==*vrh)
- *vrh=(*vrh)->sledeci;
- else{
- prethodni->sledeci=tekuci;
- free(temp);}
- }
- else{
- prethodni=tekuci;
- tekuci=tekuci->sledeci;}
- }
- }
- void ducit(scvor **vrh){
- FILE *f=fopen("studenti.txt","r");
- char ime[20],prezime[20],brind[10];
- int godstd;
- while(fscanf(f,"%s %s %s d",ime,prezime,brind,&godstd)!=EOF){
- unos(vrh,ime,prezime,brind,godstd,brStd(*vrh));
- }
- fclose(f);
- }
- void dispis(scvor *vrh){
- FILE *f=fopen("studenti.txt","w");
- while(vrh){
- fprintf("Student %s %s %s %d",vrh->ime,vrh->prezime,vrh->brind,vrh->godstd);
- vrh=vrh->sledeci;}
- fclose(f);
- }
- int main()
- {
- scvor *vrh=NULL;
- int godstdp, opcija, pozp;
- char imep[30],prezimep[30],brindp[10],s[10];
- do
- {
- printf("\n\tOpcije:\n\t1. Prikaz svih studenata:\n\t2. Broj studenata\n\t3. Dodavanje studenta\n\t4. Brisanje studenta po indeksu\n\t5. Brisanje studenata\n\t6. Sacuvavanje studenata\n\t7.Citanje datoteke \n\t8.Izlaz\n\n>>>>");
- scanf("%d",&opcija);
- switch(opcija)
- {
- case 1: ispisALL(vrh);
- break;
- case 2: printf("\nbroj studenata je:%d\n",brStd(vrh));
- break;
- case 3: printf("unesi ime:");
- fflush(stdin);
- gets(imep);
- printf("unesi prezime:");
- gets(prezimep);
- fflush(stdin);
- printf("unesi broj indeksa:");
- gets(brindp);
- fflush(stdin);
- printf("unesi godinu upisa:");
- scanf("%d",&godstdp);
- fflush(stdin);
- printf("unesi poziciju studenta u listi:");
- scanf("%d",&pozp);
- fflush(stdin);
- unos(&vrh,imep,prezimep,brindp,godstdp,pozp);
- break;
- case 4: printf("\nUnesite broj indeksa:");
- gets(s);
- fflush(stdin);
- brisiStd(&vrh,s);
- break;
- case 5: brisiALL(&vrh);
- break;
- case 6: dispis(vrh);
- break;
- case 7: ducit(&vrh);
- break;
- default: printf("Choose your destiny:");
- }} while(opcija!=8);
- return 0;
- }
Add Comment
Please, Sign In to add comment