Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct element *POKAZIVAC;
- typedef struct student {
- int br;
- char imePrezime[50];
- } STUDENT;
- typedef struct element{
- STUDENT podatak;
- POKAZIVAC sledeci;
- } ELEMENT;
- typedef struct glavarep{
- POKAZIVAC glava;
- POKAZIVAC rep;
- }* LISTA;
- typedef struct student NIZ[50];
- void unesiStudenta(STUDENT * s){
- printf("Unesite broj: ");
- scanf("%d", &s->br);
- printf("Unesite ime i prezime: ");
- fflush(stdin);
- gets(s->imePrezime);
- }
- void ubaciNaKraj(NIZ niz, int * brEl, STUDENT s){
- niz[*brEl] = s;
- (*brEl)++;
- }
- void napuniNiz(NIZ niz, int * brEl){
- STUDENT s;
- for (int i = 0; i < 5; i++)
- {
- unesiStudenta(&s);
- ubaciNaKraj(niz, brEl, s);
- }
- }
- void prikaziStudenta(STUDENT s){
- printf("Broj indeksa: %d\n",s.br);
- printf("Ime: %s\n\n", s.imePrezime);
- }
- void prebaciUDat(NIZ niz, int brEl){
- FILE * datoteka = fopen("lalalala.bin", "wb");
- if (datoteka == NULL){
- printf("Greska");
- return;
- }
- for (int i = 0; i < brEl; i++){
- if (niz[i].br>50){
- fwrite(&niz[i], sizeof(STUDENT), 1, datoteka);
- fflush(datoteka);
- }
- }
- fclose(datoteka);
- }
- void ubaciNaPocetak(LISTA lista,STUDENT s){
- POKAZIVAC noviElement = malloc(sizeof(ELEMENT));
- noviElement->podatak = s;
- noviElement->sledeci = lista->glava;
- lista->glava = noviElement;
- if (lista->rep == NULL)
- lista->rep = noviElement;
- }
- void izDatUListu(LISTA lista){
- FILE * datoteka = fopen("lalalala.bin", "rb");
- STUDENT s;
- if (datoteka == NULL){
- printf("Greska");
- return;
- }
- while (fread(&s, sizeof(STUDENT), 1, datoteka) != 0){
- if (strlen(s.imePrezime)<20)
- ubaciNaPocetak(lista, s);
- }
- fclose(datoteka);
- }
- void prikaziListu(LISTA lista){
- POKAZIVAC pom = lista->glava;
- while (pom != NULL){
- prikaziStudenta(pom->podatak);
- pom = pom->sledeci;
- }
- }
- void izvestaj(LISTA lista){
- FILE * datoteka = fopen("izvestaj.txt", "w");
- int i = 1;
- POKAZIVAC pom = lista->glava;
- if (!(datoteka && lista->glava)){
- printf("Greska");
- return;
- }
- while (pom!=NULL){
- fprintf(datoteka, "Student %d:\n",i++);
- fprintf(datoteka, "Ime i prezime: %s\nBroj indeksa: %d\n\n", pom->podatak.imePrezime, pom->podatak.br);
- pom = pom->sledeci;
- }
- fclose(datoteka);
- }
- int main(){
- NIZ niz;
- LISTA lista;
- int brEl = 0;
- lista = malloc(sizeof(LISTA));
- lista->glava = NULL;
- lista->rep = NULL;
- napuniNiz(niz, &brEl);
- prebaciUDat(niz,brEl);
- izDatUListu(lista);
- prikaziListu(lista);
- izvestaj(lista);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement