Advertisement
Guest User

Kombinacije

a guest
May 25th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. typedef struct element *POKAZIVAC;
  7. typedef struct student {
  8. int br;
  9. char imePrezime[50];
  10. } STUDENT;
  11.  
  12. typedef struct element{
  13. STUDENT podatak;
  14. POKAZIVAC sledeci;
  15. } ELEMENT;
  16.  
  17. typedef struct glavarep{
  18. POKAZIVAC glava;
  19. POKAZIVAC rep;
  20. }* LISTA;
  21. typedef struct student NIZ[50];
  22.  
  23. void unesiStudenta(STUDENT * s){
  24. printf("Unesite broj: ");
  25. scanf("%d", &s->br);
  26. printf("Unesite ime i prezime: ");
  27. fflush(stdin);
  28. gets(s->imePrezime);
  29. }
  30. void ubaciNaKraj(NIZ niz, int * brEl, STUDENT s){
  31. niz[*brEl] = s;
  32. (*brEl)++;
  33. }
  34. void napuniNiz(NIZ niz, int * brEl){
  35. STUDENT s;
  36. for (int i = 0; i < 5; i++)
  37. {
  38. unesiStudenta(&s);
  39. ubaciNaKraj(niz, brEl, s);
  40. }
  41. }
  42. void prikaziStudenta(STUDENT s){
  43. printf("Broj indeksa: %d\n",s.br);
  44. printf("Ime: %s\n\n", s.imePrezime);
  45. }
  46. void prebaciUDat(NIZ niz, int brEl){
  47. FILE * datoteka = fopen("lalalala.bin", "wb");
  48. if (datoteka == NULL){
  49. printf("Greska");
  50. return;
  51. }
  52.  
  53. for (int i = 0; i < brEl; i++){
  54. if (niz[i].br>50){
  55. fwrite(&niz[i], sizeof(STUDENT), 1, datoteka);
  56. fflush(datoteka);
  57. }
  58. }
  59. fclose(datoteka);
  60. }
  61. void ubaciNaPocetak(LISTA lista,STUDENT s){
  62. POKAZIVAC noviElement = malloc(sizeof(ELEMENT));
  63. noviElement->podatak = s;
  64. noviElement->sledeci = lista->glava;
  65. lista->glava = noviElement;
  66. if (lista->rep == NULL)
  67. lista->rep = noviElement;
  68. }
  69. void izDatUListu(LISTA lista){
  70. FILE * datoteka = fopen("lalalala.bin", "rb");
  71. STUDENT s;
  72. if (datoteka == NULL){
  73. printf("Greska");
  74. return;
  75. }
  76. while (fread(&s, sizeof(STUDENT), 1, datoteka) != 0){
  77. if (strlen(s.imePrezime)<20)
  78. ubaciNaPocetak(lista, s);
  79. }
  80. fclose(datoteka);
  81.  
  82. }
  83. void prikaziListu(LISTA lista){
  84. POKAZIVAC pom = lista->glava;
  85. while (pom != NULL){
  86. prikaziStudenta(pom->podatak);
  87. pom = pom->sledeci;
  88. }
  89. }
  90. void izvestaj(LISTA lista){
  91. FILE * datoteka = fopen("izvestaj.txt", "w");
  92. int i = 1;
  93. POKAZIVAC pom = lista->glava;
  94. if (!(datoteka && lista->glava)){
  95. printf("Greska");
  96. return;
  97. }
  98. while (pom!=NULL){
  99. fprintf(datoteka, "Student %d:\n",i++);
  100. fprintf(datoteka, "Ime i prezime: %s\nBroj indeksa: %d\n\n", pom->podatak.imePrezime, pom->podatak.br);
  101. pom = pom->sledeci;
  102. }
  103. fclose(datoteka);
  104. }
  105. int main(){
  106. NIZ niz;
  107. LISTA lista;
  108. int brEl = 0;
  109. lista = malloc(sizeof(LISTA));
  110. lista->glava = NULL;
  111. lista->rep = NULL;
  112. napuniNiz(niz, &brEl);
  113. prebaciUDat(niz,brEl);
  114. izDatUListu(lista);
  115. prikaziListu(lista);
  116. izvestaj(lista);
  117. return;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement