Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. //functions.h
  2.  
  3. #ifndef FUNCTIONS_H
  4. #define FUNCTIONS_H
  5. typedef struct student {
  6. char* ime;
  7. char* indeks;
  8. float prosjek;
  9. }STUDENT;
  10. int BrojElemenata(void);
  11. STUDENT* Zauzimanje(int);
  12. void Popunjavanje(STUDENT*, int);
  13. void Zapisivanje(STUDENT*, int, char*);
  14. void Ispisivanje(char*, int);
  15. void Oslobadanje(STUDENT*, int);
  16. #endif
  17.  
  18.  
  19. //main.c
  20. #include <stdio.h>
  21. #include <stdlib.h>
  22. #include <string.h>
  23. #include "functions.h"
  24.  
  25. int BrojElemenata(void)
  26. {
  27. int n;
  28. scanf ("%d", &n);
  29. return n;
  30. }
  31.  
  32. STUDENT* Zauzimanje(int n)
  33. {
  34.  
  35. STUDENT* P = (STUDENT*)malloc(n * sizeof(STUDENT));
  36. return P;
  37. }
  38.  
  39. void Popunjavanje(STUDENT* P, int n)
  40. {
  41. char ime[100], indeks[100];
  42. float prosjek;
  43. for (int i = 0; i < n; ++i) {
  44. P[i].ime = malloc(100 * sizeof(char));
  45. P[i].indeks = malloc(100 * sizeof(char));
  46. scanf ("%s", ime);
  47. scanf ("%s", indeks);
  48. scanf ("%f", &prosjek);
  49. P[i].prosjek = prosjek;
  50. strcpy(P[i].indeks, indeks);
  51. strcpy(P[i].ime, ime);
  52. }
  53. }
  54.  
  55. void Zapisivanje(STUDENT* P, int n, char* s)
  56. {
  57. FILE* fp;
  58. fp = fopen(s, "wb");
  59. for (int i = 0; i < n; ++i)
  60. fwrite(&(P[i]), sizeof(STUDENT), 1, fp);
  61. fclose(fp);
  62. }
  63.  
  64. void Ispisivanje(char* s, int n)
  65. {
  66. STUDENT tmp;
  67. FILE* fp;
  68. fp = fopen(s, "rb");
  69. for (int i = 0; i < n; ++i) {
  70. fread(&tmp, sizeof(STUDENT), 1, fp);
  71. fprintf(stdout, "%s ", tmp.ime);
  72. fprintf(stdout, "%s ", tmp.indeks);
  73. printf ("%f\n", tmp.prosjek);
  74. }
  75. fclose(fp);
  76. }
  77.  
  78. void Oslobadanje(STUDENT* P, int n)
  79. {
  80. free(P);
  81. }
  82.  
  83. int main()
  84. {
  85. int n = BrojElemenata();
  86. STUDENT* P = Zauzimanje(n);
  87. Popunjavanje(P, n);
  88. Zapisivanje(P, n, "Studenti.bin");
  89. Ispisivanje("Studenti.bin", n);
  90. Oslobadanje(P, n);
  91. return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement