Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TUT 13 sve osim 5.
- 1.
- #include <stdio.h>
- struct Student{
- char ime[15], prezime[20];
- int broj_bodova;
- };
- int main() {
- struct Student studenti[300], tmp;
- FILE *ulaz, *izlaz;
- int i, j, vel, max;
- /* Otvaranje datoteka */
- if ((ulaz = fopen("ispit.txt","r")) == NULL) {
- printf("Greska pri otvaranju datoteke ispit.txt");
- return 1;
- }
- if ((izlaz = fopen("ispit_sortiran.txt","w")) == NULL) {
- fclose(ulaz);
- printf("Greska pri otvaranju datoteke ispit_sortiran.txt");
- return 1;
- }
- /* Ucitavanje datoteke u niz studenti */
- i=0;
- while (fscanf(ulaz,"%20s%15s%2d\n", studenti[i].prezime, studenti[i].ime, &studenti[i].broj_bodova) == 3 && i<300)
- i++;
- vel = i;
- /* Sortiranje niza po broju bodova */
- for (i=0; i<vel; i++) {
- max = i;
- for (j=i+1; j<vel; j++)
- if(studenti[j].broj_bodova > studenti[max].broj_bodova)
- max = j;
- tmp = studenti[i];
- studenti[i] = studenti[max];
- studenti[max] = tmp;
- }
- // Upis niza u datoteku
- for (i=0; i<vel; i++)
- fprintf(izlaz,"%-20s%-15s%2d\n", studenti[i].prezime, studenti[i].ime, studenti[i].broj_bodova);
- printf ("Izlazna datoteka ispit_sortiran.txt je kreirana\n");
- fclose(ulaz);
- fclose(izlaz);
- return 0;
- }
- 2.
- #include <stdio.h>
- struct Student{
- char ime[15], prezime[20];
- int broj_bodova1, broj_bodova2;
- };
- int main() {
- struct Student studenti[10000], tmp;
- FILE *ulaz, *izlaz;
- remove("usmeni.txt");
- int i, j, vel, max;
- /* Otvaranje datoteka */
- if ((ulaz = fopen("ispit.txt","r")) == NULL) {
- printf("Greska pri otvaranju datoteke ispit.txt");
- return 1;
- }
- if ((izlaz = fopen("usmeni.txt","w")) == NULL) {
- fclose(ulaz);
- printf("Greska pri otvaranju datoteke usmeni.txt");
- return 1;
- }
- /* Ucitavanje datoteke u niz studenti */
- i=0;
- 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)
- i++;
- vel = i;
- for (i=0; i<vel; i++) {
- max = i;
- for (j=i+1; j<vel; j++)
- if(studenti[j].broj_bodova1 + studenti[j].broj_bodova2 > studenti[max].broj_bodova1 + studenti[max].broj_bodova2)
- max = j;
- tmp = studenti[i];
- studenti[i] = studenti[max];
- studenti[max] = tmp;
- }
- for (i=0; i<vel; i++)
- if(studenti[i].broj_bodova1 >= 10 && studenti[i].broj_bodova2 >= 10)
- fprintf(izlaz,"%-15s%-10s%2d\n", studenti[i].prezime, studenti[i].ime, studenti[i].broj_bodova1+studenti[i].broj_bodova2);
- printf ("Izlazna datoteka usmeni.txt je kreirana\n");
- fclose(ulaz);
- fclose(izlaz);
- return 0;
- }
- 3.
- #include <stdio.h>
- void unesi(char niz[], int velicina) {
- char znak = getchar();
- if (znak == '\n') znak = getchar();
- int i = 0;
- while(i < velicina - 1 && znak != '\n') {
- niz[i] = znak;
- i++;
- znak = getchar();
- }
- niz[i]='\0';
- }
- struct Student {
- char ime[15], prezime[20];
- int broj_bodova1, broj_bodova2;
- } s;
- int main()
- {
- FILE* izlaz, *ispis;
- int i=0,key=1;
- while(key) {
- printf("Unesite 1 za unos, 2 za ispis, 0 za izlaz: ");
- scanf("%d", &key);
- if(key == 1) {
- izlaz = fopen("ispit.txt", "a");
- printf("Unesite ime: ");
- unesi(s.ime,15);
- printf("Unesite prezime: ");
- unesi(s.prezime,20);
- printf("Unesite broj bodova na I parcijalnom: ");
- scanf("%d",&s.broj_bodova1);
- printf("Unesite broj bodova na II parcijalnom: ");
- scanf("%d",&s.broj_bodova2);
- fprintf(izlaz,"%-20s%-15s%2d%3d\n", s.prezime, s.ime, s.broj_bodova1, s.broj_bodova2);
- fclose(izlaz);
- i++;
- }
- if(key == 2) {
- int br = 0,j;
- ispis = fopen("ispit.txt", "r");
- struct Student studenti[1000];
- j = 0;
- while (fscanf(ispis,"%20s%15s%2d%2d\n", studenti[j].prezime, studenti[j].ime, &studenti[j].broj_bodova1, &studenti[j].broj_bodova2) == 4 && j<300)
- j++;
- while(br != j){
- printf("\n%d. %s %s - %d, %d\n",br+1,studenti[br].ime, studenti[br].prezime, studenti[br].broj_bodova1, studenti[br].broj_bodova2);
- br++;
- }
- }
- }
- return 0;
- }
- 4.
- #include <stdio.h>
- #include <stdlib.h> /* Zbog funkcije exit() */
- #include <string.h>
- struct Student {
- char prezime[20];
- char ime[15];
- int broj_bodova1;
- int broj_bodova2;
- int ukupno;
- };
- struct BinarniStudent {
- char prezime[20];
- char ime[15];
- int ukupno;
- };
- int main()
- {
- struct Student studenti[3000], tmp;
- struct BinarniStudent tmpBin;
- FILE *ulaz, *izlaz;
- int i, j, vel;
- remove("usmeni.txt");
- if ((ulaz = fopen("ispit.txt","r")) == NULL) {
- printf("Greska pri otvaranju datoteke ispit.txt");
- return 1;
- }
- if ((izlaz = fopen("usmeni.dat","wb")) == NULL) {
- fclose(ulaz);
- printf("Greska pri otvaranju datoteke usmeni.txt");
- return 1;
- }
- i=0;
- 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)
- i++;
- vel = i;
- for(i=0; i<vel; i++) {
- studenti[i].ukupno=studenti[i].broj_bodova1+studenti[i].broj_bodova2;
- }
- /* Sortiranje niza po broju bodova */
- for (i=0; i<vel; i++) {
- for (j=i+1; j<vel; j++) {
- if(studenti[j].ukupno>studenti[i].ukupno) {
- tmp = studenti[i];
- studenti[i] = studenti[j];
- studenti[j] = tmp;
- }
- }
- }
- // Upis niza u datoteku
- for (i=0; i<vel; i++)
- if(studenti[i].broj_bodova1>=10 && studenti[i].broj_bodova2>=10) {
- strcpy(tmpBin.ime,studenti[i].ime);
- strcpy(tmpBin.prezime,studenti[i].prezime);
- tmpBin.ukupno=studenti[i].ukupno;
- fwrite(&tmpBin,sizeof(tmpBin),1,izlaz);
- }
- printf ("Izlazna datoteka usmeni.dat je kreirana\n");
- fclose(ulaz);
- fclose(izlaz);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement