Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. Header
  2. #ifndef HEADER_H
  3. #define HEADER_H
  4.  
  5. typedef struct Datum {
  6. int dan;
  7. int mjesec;
  8. int godina;
  9. }DATUM;
  10.  
  11. typedef struct Igrac {
  12. char ime[15];
  13. char prezime[15];
  14. DATUM rodjenje;
  15. int level;
  16. float novac;
  17. }IGRAC;
  18.  
  19. IGRAC* Alokacija(int);
  20. void Upis(FILE*, IGRAC*, int);
  21. void Ispis(FILE*, IGRAC*, int);
  22. #endif
  23.  
  24. Funkcije
  25. #define _CRT_SECURE_NO_WARNINGS
  26.  
  27. #include <stdio.h>
  28. #include <stdlib.h>
  29. #include "Header.h"
  30.  
  31. IGRAC *Alokacija(int n) {
  32. return (IGRAC*)calloc(n, sizeof(IGRAC));
  33. }
  34. void Upis(FILE *dat, IGRAC *igr, int n) {
  35. dat = fopen("Igraci.bin", "wb");
  36. for (int i = 0; i < n; i++) {
  37. getchar();
  38. fprintf(dat, "Igrac %d [", i + 1);
  39. printf("Unesite ime igraca:\n");
  40. scanf("%s", (igr + i)->ime);
  41. printf("Unesite prezime igraca:\n");
  42. scanf("%s", (igr + i)->prezime);
  43. printf("Unesite datum rodjenja igraca:\n");
  44. scanf("%d%d%d", &(igr + i)->rodjenje.dan, &(igr + i)->rodjenje.mjesec, &(igr + i)->rodjenje.godina);
  45. printf("Unesite level igraca:\n");
  46. scanf("%d", &(igr + i)->level);
  47. printf("Unesite novac igraca:\n");
  48. scanf("%f", &(igr + i)->novac);
  49. fprintf(dat, "%s, %s, %d.%d.%d., %d, %.2f]\n", (igr + i)->ime, (igr + i)->prezime, (igr + i)->rodjenje.dan, (igr + i)->rodjenje.mjesec, (igr + i)->rodjenje.godina, (igr + i)->level, (igr + i)->novac);
  50. }
  51. fclose(dat);
  52. }
  53.  
  54. void Ispis(FILE *dat, IGRAC *igr, int n) {
  55. dat = fopen("Igraci.bin", "rb");
  56. fread(igr, sizeof(IGRAC), sizeof(igr)/sizeof(IGRAC), dat);
  57. fprintf(stdout, "Spremljeno %d igraca.\n", n);
  58. for (int i = 0; i < n; i++) {
  59. fprintf(stdout, "Ime: %s\nPrezime: %s\nDatum rodjenja: %d.%d.%d.\nLevel: %d\nNovac: %.2fkn\n", (igr + i)->ime, (igr + i)->prezime, (igr + i)->rodjenje.dan, (igr + i)->rodjenje.mjesec, (igr + i)->rodjenje.godina, (igr + i)->level, (igr + i)->novac);
  60. }
  61. fclose(dat);
  62. free(igr);
  63. }
  64.  
  65. Main
  66. #define _CRT_SECURE_NO_WARNINGS
  67.  
  68. #include <stdio.h>
  69. #include <stdlib.h>
  70. #include "Header.h"
  71.  
  72. int main() {
  73. int n = 0, broj = 0;
  74. IGRAC *igraci = NULL;
  75. FILE *datoteka = NULL;
  76. while (n != 3) {
  77. printf("Izaberite radnju:\n");
  78. printf("1: Upisivanje u datoteku\n2: Citanje iz datoteke\n3: Kraj programa\n");
  79. scanf("%d", &n);
  80. switch (n) {
  81. case 1:
  82. {
  83. printf("Unesite broj igraca:\n");
  84. scanf("%d", &broj);
  85. igraci = Alokacija(broj);
  86. Upis(datoteka, igraci, broj);
  87. break;
  88. }
  89. case 2:
  90. {
  91. Ispis(datoteka, igraci, broj);
  92. break;
  93. }
  94. case 3:
  95. {
  96. printf("Kraj programa.\n");
  97. break;
  98. }
  99. default:
  100. printf("Pogresan unos.\n");
  101. break;
  102. }
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement