Transcript

Exemple fiiere secveniale1. Ssescrieprogramul carecreeazunfiiersecvenial cudatedesprestudenii uneifaculti. Articolele au urmtoarea structur: numr matricol, nume, anul, grupa, numruldenote, notelemaxim1!". #atelesepreiaudelatastatur, sf$ritul introducerii fiindmarcat standard. Acolo unde nu se cunoate %nc nota se va introduce valoarea &. 'umelefisierului (inar stud.dat"#includetypedef struct{int nr;char nume[30];int an;int grupa;int n;int note[15];!tudent;"oid main#${%&'( )f;char s1[*0];!tudent s;int i;printf#+,n%isier- +$;gets#s1$;f.fopen#s1/+01+$;printf#+2r.matricol- +$;scanf#+3d+/4s.nr$;0hile#5feof#stdin$${printf#+2ume- +$;fflush#stdin$;gets#s.nume$;printf#+6n- +$;scanf#+3d+/4s.an$;printf#+7rupa- +$;scanf#+3d+/4s.grupa$;printf#+2r.note-#l;fsee=#f/p/0$;return n;typedef struct{int nr;char nume[30];int an;int grupa;int n;int note[15];!tudent;"oid main#${%&'( )f/)g;char s[*0];!tudent s1/s*;int o=/n/i;printf#+,n%isier- +$;gets#s$;if#5#f.fopen#s/+r18+$$$printf#+,n%isierul 3s nu poate fi deschis+/s$;else{n.nrart#f/si9eof#!tudent$$;o=.1;0hile#o=${o=.0;for#i.0;is*.an$?? ##s1.an..s*.an$ 44 #s1.grupa>s*.grupa$$${o=.1;fsee=#f/i)si9eof#!tudent$/0$;f0rite#4s*/ si9eof#!tudent$/ 1/ f$;f0rite#4s1/ si9eof#!tudent$/ 1/ f$;

fclose#f$;

,. Ssescrieprogramulcarelisteaz, %ntr*unfiiertext, studenii integraliti, peani igrupe, calcul$nd media fiecrei grupe i a fiecrui an. fisierul rezultat se va numi stud+.txtsi se va verifica rezultatul comparand cu datele din stud).txt"#include#define f0rite1#:/f$ f0rite#4#:$/si9eof#!tudent$/1/#f$$#define fread1#:/f$ fread#4#:$/si9eof#!tudent$/1/#f$$typedef struct{int nr;char nume[30];int an;int grupa;int n;int note[15];!tudent;"oid main#${%&'( )f/)g;char s1[*0];!tudent s;int i/na/@/e/ng/ca/cg;float ma/mg/ms;printf#+,n%isier- +$;gets#s1$;if#5#f.fopen#s1/+r1+$$$printf#+,n%isierul 3s nu poate fi deschis+/s1$;else {printf#+,n%isier te:t- +$;gets#s1$;g.fopen#s1/+0+$;fread1#s/f$;0hile#5feof#f$${>> operatii initiale pentru anca.s.an;fprintf#g/+,n,n6nul 3d+/ca$;ma.0; na.0;0hile##5feof#f$$44 #s.an..ca$${>> operatii initiale pentru grupamg.0; ng.0;cg.s.grupa;fprintf#g/+,n,t7rupa 3d+/cg$;30hile##5feof#f$$44#ca..s.an$44#cg..s.grupa$${e.1;ms.0;for#@.0;@operatii finale grupaif#ng${fprintf#g/+,n,t7rupa 3d/ media- 35.*f+/cg/mg>ng$;ma8.mg;na8.ng;else fprintf#g/+,n,7rupa nu are integralisti+$;>>operatii finale anif#na$fprintf#g/+,nAedia anului 3d este- 35.*f+/ca/ma>na$;else fprintf#g/+,n6nul nu are integralisti+$;fclose#f$;fclose#g$;

!. S se scrie programul pentru adugarea punctului din oficiu la nota la filosofie pentrustudenii din grupa al crei numr este introdus de la tastatur.#includetypedef struct{int nr;char nume[30];int an;int grupa;int n;int note[15];!tudent;"oid main#${%&'( )f;char s1[*0];!tudent s;int n/i;printf#+,n%isier- +$;gets#s1$;if#5#f.fopen#s1/+r18+$$$printf#+,n%isierul 3s nu poate fi deschis+/s1$;else{printf#+,n2r. grupei- +$;scanf#+3d+/4n$;0hile#5feof#stdin$${re0ind#f$;fread#4s/ si9eof#!tudent$/ 1/ f$;i.0;0hile#5feof#f$${if#n..s.grupa${i.1;s.note[0].#s.note[0]..10$B s.note[0]- s.note[0]81;fsee=#f/ ftell#f$;si9eof#!tudent$/ 0$;4f0rite#4s/ si9eof#!tudent$/ 1/ f$;fsee=#f/ 0/ 1$; >>folosit la trecerea de la scriere la citire

fread#4s/ si9eof#!tudent$/ 1/ f$;

if#5i$ printf#+,n 2u a fost gasit nici un student+$;printf#+,n2r grupei- +$;scanf#+3d+/4n$;fclose#f$;

-. S se scrie programul care afieaz datele despre studenii ale cror numere matricole seintroduc de la tastatur. Sf$ritul introducerii este marcat standard.#include#define f0rite1#:/f$ f0rite#4#:$/si9eof#!tudent$/1/#f$$#define fread1#:/f$ fread#4#:$/si9eof#!tudent$/1/#f$$typedef struct{int nr;char nume[30];int an;int grupa;int n;int note[15];!tudent;"oid main#${%&'( )f/)g;char s1[*0];!tudent s;int i/n/@;printf#+,n%isier- +$;gets#s1$;if#5#f.fopen#s1/+r1+$$$printf#+,n%isierul 3s nu poate fi deschis+/ s1$;else{printf#+,n2r. matricol- +$;scanf#+3d+/4n$;0hile#5feof#stdin$${re0ind#f$;fread1#s/f$;i.0;0hile##5feof#f$$44#5i$${if#n..s.nr${i.1;printf#+,n2r.mat-33d 2ume- 3;30s 6n- 3*d 7rupa- 3


Top Related