Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct Student {
- char prezime[20];
- char ime[15];
- int broj_bodova1;
- int broj_bodova2;
- };
- void unesi(char niz[], int velicina)
- {
- char znak = getchar();
- if (znak == '\n') znak = getchar();
- int i = 0;
- while (i < velicina-1 && znak != '\n') {
- niz[i] = znak;
- i++;
- znak = getchar();
- }
- niz[i] = '\0';
- }
- int main()
- {
- char ime[15];
- char prezime[20];
- struct Student studenti[300];
- FILE *ulaz;
- int i=0,vel;
- int val,n;
- int parc1,parc2;
- if((ulaz=fopen("ispit.txt","a+"))==NULL) {
- printf("Greska pri otvaranju datoteke ispit.txt\n");
- exit(1);
- }
- i=0;
- while(fscanf(ulaz,"%20s%15s%2d %2d\n",studenti[i].prezime,studenti[i].ime,&studenti[i].broj_bodova1,&studenti[i].broj_bodova2)==4 && i<300) {
- i++;
- }
- vel=i;
- fclose(ulaz);
- do {
- printf("Unesite 1 za dodavanje, 2 za brisanje, 3 za izmjenu, 4 za ispis, 0 za izlaz: ");
- scanf("%d",&val);
- if(val==1) {
- ulaz=fopen("ispit.txt","a+");
- printf("Unesite ime: ");
- unesi(ime,15);
- printf("Unesite prezime: ");
- unesi(prezime,20);
- printf("Unesite broj bodova na I parcijalnom: ");
- scanf("%d", &parc1);
- printf("Unesite broj bodova na II parcijalnom: ");
- scanf("%d", &parc2);
- fprintf(ulaz,"%-20s",prezime);
- fprintf(ulaz,"%-15s%2d %2d\n",ime,parc1,parc2);
- vel++;
- fclose(ulaz);
- }
- else if(val==2) {
- ulaz=fopen("ispit.txt","a+");
- printf("Unesite redni broj studenta kojeg zelite obrisati: ");
- scanf("%d",&n);
- if(n>vel) {
- printf("Student sa rednim brojem %d ne postoji!\n",n);
- } else {
- printf("Student %s %s obrisan\n",studenti[n-1].ime,studenti[n-1].prezime);
- for(i=n-1; i<vel-1; i++) {
- studenti[i]=studenti[i+1];
- }
- vel--;
- for(i=0; i<vel; i++) {
- fprintf(ulaz,"%-20s",studenti[i].prezime);
- fprintf(ulaz,"%-15s%2d %2d",studenti[i].ime,studenti[i].broj_bodova1,studenti[i].broj_bodova2);
- }
- }
- fclose(ulaz);
- }
- else if(val==3) {
- ulaz=fopen("ispit.txt","w");
- printf("Unesite redni broj studenta kojeg zelite mijenjati: ");
- scanf("%d",&n);
- printf("Unesite novo ime: ");
- unesi(studenti[n-1].ime,15);
- printf("Unesite novo prezime: ");
- unesi(studenti[n-1].prezime,20);
- printf("Unesite novi broj bodova (I parcijalni): ");
- scanf("%d", &studenti[n-1].broj_bodova1);
- printf("Unesite novi broj bodova (II parcijalni): ");
- scanf("%d", &studenti[n-1].broj_bodova2);
- for(i=0; i<vel; i++) {
- fprintf(ulaz,"%-20s",studenti[i].prezime);
- fprintf(ulaz,"%-15s%2d %2d\n",studenti[i].ime,studenti[i].broj_bodova1,studenti[i].broj_bodova2);
- }
- fclose(ulaz);
- }
- else if(val==4) {
- for(i=0; i<vel; i++) {
- printf("\n%d. %s %s - %d, %d", i+1, studenti[i].ime, studenti[i].prezime, studenti[i].broj_bodova1, studenti[i].broj_bodova2);
- }
- printf("\n");
- }
- else if(val==0) {
- break;
- }
- }while(val!=0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement