Advertisement
Guest User

cetvrti

a guest
Jan 17th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.58 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct Student {
  5. char prezime[20];
  6. char ime[15];
  7. int broj_bodova1;
  8. int broj_bodova2;
  9. };
  10.  
  11. void unesi(char niz[], int velicina)
  12. {
  13. char znak = getchar();
  14. if (znak == '\n') znak = getchar();
  15. int i = 0;
  16. while (i < velicina-1 && znak != '\n') {
  17. niz[i] = znak;
  18. i++;
  19. znak = getchar();
  20. }
  21. niz[i] = '\0';
  22. }
  23.  
  24. int main()
  25. {
  26. char ime[15];
  27. char prezime[20];
  28. struct Student studenti[300];
  29. FILE *ulaz;
  30. int i=0,vel;
  31. int val,n;
  32. int parc1,parc2;
  33. if((ulaz=fopen("ispit.txt","a+"))==NULL) {
  34. printf("Greska pri otvaranju datoteke ispit.txt\n");
  35. exit(1);
  36. }
  37.  
  38. i=0;
  39. 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) {
  40. i++;
  41. }
  42. vel=i;
  43. fclose(ulaz);
  44. do {
  45. printf("Unesite 1 za dodavanje, 2 za brisanje, 3 za izmjenu, 4 za ispis, 0 za izlaz: ");
  46. scanf("%d",&val);
  47. if(val==1) {
  48. ulaz=fopen("ispit.txt","a+");
  49. printf("Unesite ime: ");
  50. unesi(ime,15);
  51. printf("Unesite prezime: ");
  52. unesi(prezime,20);
  53. printf("Unesite broj bodova na I parcijalnom: ");
  54. scanf("%d", &parc1);
  55. printf("Unesite broj bodova na II parcijalnom: ");
  56. scanf("%d", &parc2);
  57. fprintf(ulaz,"%-20s",prezime);
  58. fprintf(ulaz,"%-15s%2d %2d\n",ime,parc1,parc2);
  59. vel++;
  60. fclose(ulaz);
  61. }
  62. else if(val==2) {
  63. ulaz=fopen("ispit.txt","a+");
  64. printf("Unesite redni broj studenta kojeg zelite obrisati: ");
  65. scanf("%d",&n);
  66. if(n>vel) {
  67. printf("Student sa rednim brojem %d ne postoji!\n",n);
  68. } else {
  69. printf("Student %s %s obrisan\n",studenti[n-1].ime,studenti[n-1].prezime);
  70. for(i=n-1; i<vel-1; i++) {
  71. studenti[i]=studenti[i+1];
  72. }
  73. vel--;
  74. for(i=0; i<vel; i++) {
  75. fprintf(ulaz,"%-20s",studenti[i].prezime);
  76. fprintf(ulaz,"%-15s%2d %2d",studenti[i].ime,studenti[i].broj_bodova1,studenti[i].broj_bodova2);
  77. }
  78. }
  79. fclose(ulaz);
  80. }
  81. else if(val==3) {
  82. ulaz=fopen("ispit.txt","w");
  83. printf("Unesite redni broj studenta kojeg zelite mijenjati: ");
  84. scanf("%d",&n);
  85. printf("Unesite novo ime: ");
  86. unesi(studenti[n-1].ime,15);
  87. printf("Unesite novo prezime: ");
  88. unesi(studenti[n-1].prezime,20);
  89. printf("Unesite novi broj bodova (I parcijalni): ");
  90. scanf("%d", &studenti[n-1].broj_bodova1);
  91. printf("Unesite novi broj bodova (II parcijalni): ");
  92. scanf("%d", &studenti[n-1].broj_bodova2);
  93. for(i=0; i<vel; i++) {
  94. fprintf(ulaz,"%-20s",studenti[i].prezime);
  95. fprintf(ulaz,"%-15s%2d %2d\n",studenti[i].ime,studenti[i].broj_bodova1,studenti[i].broj_bodova2);
  96. }
  97. fclose(ulaz);
  98. }
  99. else if(val==4) {
  100. for(i=0; i<vel; i++) {
  101. printf("\n%d. %s %s - %d, %d", i+1, studenti[i].ime, studenti[i].prezime, studenti[i].broj_bodova1, studenti[i].broj_bodova2);
  102. }
  103. printf("\n");
  104. }
  105. else if(val==0) {
  106. break;
  107. }
  108. }while(val!=0);
  109. return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement