Sunteți pe pagina 1din 27

2.

1 Sa se copieze liniile unui fisier de tip text cuprinse intre numerele de secventa n1 si
n2 (n1<n2) dupa a n-a linie folosidu-se o functie adecvata pentru aceasta.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
FILE *ptrfile;
FILE *ptrfman;
FILE *ptrftem;
char specfiss[2!;
"oid mutare#int $%&int $2&int $'
(
int i&);
char c&*c;
i+%;
if##ptrfile+fopen#specfiss&,r,''++-.LL'
(
printf#,/n fis 0s nu poate fi deschis in
citire,&specfiss';
e$it#%';
1
if##ptrftem+fopen#,ftemp,&,*,''++-.LL'
(
printf#,/n fis F2E34 nu poate fi deschis in scriere,';
e$it#%';
1
5* citirea in gol a liniilor < n%*5
c+fgetc#ptrfile';
*hile##i<$%' 66 #7feof#ptrfile'''
(
*hile ##7feof#ptrfile''66#c7+8/n8'66#i<$%''
(
c+fgetc#ptrfile';
1
if##c++8/n8''
c+fgetc#ptrfile';
i99;
1
printf#,/n se copia:a liniile 0d;0d in fis ftemp
/n,&$%&$2';
5* citirea si scrierea liniilor cuprinse intre n% si n2
in F2E34*5
*hile##i<+$2' 66 #i>+$%' 66 #7feof#ptrfile'''
(
*hile##c7+8/n8'66#7feof#ptrfile''66#i<+$2''
(
fputc#c&ptrftem';
c+fgetc#ptrfile';
1
if##c++8/n8''
(
fputc#c&ptrftem';
c+fgetc#ptrfile';
1
i99;
1
c+fgetc#ptrfile';
*hile##i>$2' 66 #7feof#ptrfile'''
(
*hile ##7feof#ptrfile''66#c7+8/n8'66#i>$2''
(
c+fgetc#ptrfile';
1
if##c++8/n8'<<#i>$2''
c+fgetc#ptrfile';
i99;
1
fclose#ptrftem';
fclose#ptrfile';
if##ptrfile+fopen#specfiss&,r,''++-.LL'
(
printf#,/n fis 0s nu poate fi deschis in
citire,&specfiss';
e$it#%';
1
if##ptrfman+fopen#,fisman,&,*,''++-.LL'
(
printf#,/n fis FI=3>- nu poate fi deschis in scriere,';
e$it#%';
1
5* citirea si scrierea in FI=3>- a primelor n%;% randuri*5
i+%;
c+fgetc#ptrfile';
*hile##i<+$' 66 #7feof#ptrfile'''
(
*hile ##c7+8/n8' 66#i<+$' 66 #7feof#ptrfile'''
(
fputc#c&ptrfman';
c+fgetc#ptrfile';
1
if##c++8/n8'<<#i<$''
(
fputc#c&ptrfman';
c+fgetc#ptrfile';
1
i99;
1
*c+c;
5* se citesc si se scriu randurile sal"ate in F2E34 *5
if##ptrftem+fopen#,ftemp,&,r,''++-.LL'
(
printf#,/n fis F2E34 nu poate fi deschis in citire,';
e$it#%';
1
c+fgetc#ptrftem';
*hile#7feof#ptrftem''
(
*hile##c7+8/n8'66#7feof#ptrftem'''
(
fputc#c&ptrfman';
c+fgetc#ptrftem';
1
if #c++8/n8'
(
fputc#c&ptrfman';
c+fgetc#ptrftem';
i99;
1
1
fclose#ptrftem';
5* citirea si scrierea in FI=3>- a rand. cu nr de sec">n*5
fputc#*c&ptrfman';
c+fgetc#ptrfile';
*hile##i>$' 66 #7feof#ptrfile'''
(
*hile ##c7+8/n8'66#i>$'66 #7feof#ptrfile'''
(
fputc#c&ptrfman';
c+fgetc#ptrfile';
1
if##c++8/n8'<<#feof#ptrfile'''
(
fputc#c&ptrfman';
c+fgetc#ptrfile';
i99;
1
i99;
1
fclose#ptrfile';
re*ind#ptrfman';
if##ptrfman+fopen#,fisman,&,r,''++-.LL'
(
printf#,/n fis FI=3>- nu poate fi deschis in citire,';
e$it#%';
1
remo"e#specfiss';
if##ptrfile+fopen#specfiss&,*,''++-.LL'
(
printf#,/n fis 0s nu poate fi deschis in
scriere,&specfiss';
e$it#%';
1
c+fgetc#ptrfman';
*hile#7feof#ptrfman''
(
*hile##c7+8/n8'66#7feof#ptrfman'''
(
fputc#c&ptrfile';
c+fgetc#ptrfman';
1
if ##c++8/n8''
(
fputc#c&ptrfile';
c+fgetc#ptrfman';
1
1
fclose#ptrfile';
fclose#ptrfman';
1
"oid main #'
(
int n%&n2&n;
char r;
printf#,/n continuati mutarea de linii ?#d5n'@,';
r+getche#';
*hile##r++8d8'<<#r++8A8''
(
printf#,/n specificatorul fisierului de modificat@,';
scanf#,0s,&specfiss';
do
(
printf#,/n nr. de sec"enta ale liniilor de mutat
n%&n2#n%<n2'@,';
scanf#,0d0d,&6n%&6n2';
printf#,/n nr. liniei dupa care se face mutarea n@,';
scanf#,0d,&6n';
1
*hile ##n%<%'<<#n2<%'<<#n%>n2'<<#n<'';
mutare#n%&n2&n';
printf#,/n continuati mutarea de linii ?#d5n'@,';
r+getch#';
1
1
2.2 Sa se caute in directorul specificat toate programele sursa de tip *.CPP si sa se
afiseze pe ecran caracter cu caracteraceste programe determinadu-se si afisandu-se
pentru fiecare numarul de linii sursa.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <dos.h>
"oid main #'
(
FILE *ptrfile;
char specfis[2!&speccale[2!&c&r;
char cale[2!;
struct findBt f;
register int gata;
long numarBlinii&);
printf#,/n continuati afisarea de programe *.C44 ?
#d5n'@,';
r+getche#';
*hile##r++8d8'<<#r++8A8''
(
printf#,/n calea directorului in care se cauta@,';
scanf#,0s,&speccale';
strcpD#specfis&speccale';
strcat#speccale&,*.C44,';
gata +BdosBfindfirst#speccale&B>B-EF3>L& 6f';
strcpD#cale&, ,';
*hile#7gata'
(
strcpD#specfis&speccale';
strcat#specfis&f.name';
5* deschiderea in citire a fisierului *5
if##ptrfile+fopen#specfis&,r,''++-.LL'
(
printf#,/n fisierul 0s nu poate fi deschis in
citire,&specfis';
e$it#%';
1
printf#,/n fisier@0s,&specfis';
getchar#';
numarBlinii+;
*hile #7feof#ptrfile''
(
)+%;
*hile##)<+2G'66#7feof#ptrfile'''
(
c+fgetc#ptrfile';
if#c++8/n8'
(
numarBlinii99; )99;
1
putchar#c';
1
getchar#';
1
getchar#';
fclose#ptrfile';
printf#,/n in fisierul 0s sunt 0d
linii,&specfis&numarBlinii';
getchar#';
gata+BdosBfindne$t#6f';
1
printf#,/n continuati afisarea de programe *.C44 ?
#d5n'@,';
r+getche#';
1
1
2.! Sa se creeze un fisier care sa contina coeficientii necunoscutelor si termenii li"eri
dintr-un sistem de n ecuatii cu n necunoscute.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
"oid main#"oid'
(
FILE *ptrfile;
float a[%![%!&b[%!;
int n&i&H;
char specfis[%I!;
printf#,/n dati dimensiunea sistemului@,';
scanf#,0d,&6n';
5* citirea matricii coeficientilor necunoscutelor si
termenii liberi*5
for#i+;i<n;i99'
(
for#H+;H<n;H99'
(
printf#,/n a#0d&0d'+,&i&H';
scanf#,0f,&6a[i![H!';
1
printf#,/n b#0d'+,&i';
scanf#,0f,&6b[i!';
1
printf#,/n dati specifiactorul fiserului de creat@,';
scanf#,0s,&specfis';
if##ptrfile+fopen#specfis&,*b,''++-.LL'
(
printf#,/n eroare de deschidere fisier,';
e$it#%';
1
5* scrierea dimensiunii n a sistemului *5
f*rite#6n&si:eof#int'&%&ptrfile';
for#i+;i<n;i99'
(
for#H+;H<n;H99'
5* scrierea coeficientilor necunoscutelor din linia i
*5
f*rite#6a[i![H!&si:eof#float'&%&ptrfile';
5* scrierea termenului liber din linia i *5
f*rite#6b[i!&si:eof#float'&%&ptrfile';
1
fclose#ptrfile';
1
2.# Sa se afiseze pe ecran sistemul de n ecuatii cu n necunoscute ai caror coeficienti si
termeni li"eri se gasesc in fisierul creat in pro"lema precedenta.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
"oid main#"oid'
(
FILE *ptrfile;
float a[%![%!&b[%!;
int n&i&H;
char specfis[%I!;
printf#,/ spec fis cu necunoscutele si termenii liberi@,';
scanf#,0s,&6specfis';
if##ptrfile+fopen#specfis&,rb,''++-.LL'
(
printf#,/n eroare de deschidere fisier,';
e$it#%';
1
5* citirea din fisier a dimensiunii sistemului *5
fread#6n&si:eof#int'&%&ptrfile';
5* citirea matricii coeficientilor necunoscutelor si
termenilor liberi *5
for#i+;i<n;i99'
(
for#H+;H<n;H99'
5* citirea coeficientilor necunoscutelor din linia i
*5
fread#6a[i![H!&si:eof#float'&%&ptrfile';
5* citirea termenului liber din linia i *5
fread#6b[i!&si:eof#float'&%&ptrfile';
1
5* afisarea sistemului citit din fisier *5
for#i+;i<n;i99'
(
for#H+;H<n;H99'
printf#,9#0I.2f'*J#0d',&a[i![H!&H9%';
printf#,+#0I.2f'/n,&b[i!';
1
fclose#ptrfile';
1
2.$ Sa se creeze un fisier de studenti pe disc continand articole cu structura% cod student
un camp numeric de la 1 la 1&&& nume un camp de 1& caractere alfa"etice prenume un
camp de 1& caractere alfa"etice numar de note un camp intreg de la 1 la 1$ si notele
studentului un ta"lou de intregi cuprins intre 1 si 10.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <process.h>
"oid main#"oid'
(
5* definirea structurii articolelor de studenti *5
struct tipstud
(
int cm; 5* codul matricol *5
char nume[%!; 5* numele studentului *5
char prenume[%!; 5* prenumele *5
int nrn; 5* numarul de note al unui
student *5
int nota[%I!; 5* sirul de ma$imum %I note ale
unui student *5
1s; 5* s este un articol de tip
structura tipstud *5
FILE *ptrfile;
int n&i;
char specfis[%I!&r;
printf#,/n specificatorul fisierului de note@,';
scanf#,0s,&6specfis';
if##ptrfile+fopen#specfis&,*b,''++-.LL'
(
printf#,/n eroare de deschidere fisier,';
e$it#%';
1
printf#,/n continuati introducerea de articole?#d5n'@,';
r+getche#';
*hile##r++8d8' << #r++8A8''
(
do
(
printf#,/n codul matricolol#%;%'@,';
scanf#,0d,&6s.cm';
1
*hile ##s.cm<+' << #s.cm>%'';
printf#,/n numele studentului@,';
scanf#,0s,&s.nume';
printf#,/n prenumele studentului@,';
scanf#,0s,&s.prenume';
do
(
printf#,/n numarul de note#%;%I'@,';
scanf#,0d,&6s.nrn';
1
*hile ##s.nrn<+' << #s.nrn>%I'';
for#i+;i<s.nrn;i99'
do
(
printf#,/n nota#0d'+,&i9%';
scanf#,0d,&6s.nota[i!';
1
*hile ##s.nota[i!<+' << #s.nota[i!>%'';
f*rite#6s&si:eof#struct tipstud'&%&ptrfile';
printf#,/n continuati introducerea de articole?#d5n'@,';
r+getche#';
1
fclose#ptrfile';
1
2.' Sa se creeze pornind de la fisierul de note anterior creat un fisier cu mediile
studentilor pe disc continand articole cu structura%cod student ( un camp numeric de la 1
la 1&&& nume - un camp de 1& caractere alfa"etice prenume - un camp de 1& caractere
alfa"etice si media - un camp real de la 1 la 1& apoi sa se listeze fisierul de medii ordonat
crescator dupa codurile matricole si dupa medii.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <process.h>
"oid main#"oid'
(
5* definirea structurii articolelor cu notele studentilor
*5
struct tipstud
(
int cm; 5* codul matricol *5
char nume[%!; 5* numele studentului *5
char prenume[%!; 5* prenumele *5
int nrn; 5* numarul de note al unui
student *5
int nota[%I!; 5* sirul de ma$imum %I note
ale unui student *5
1s; 5* s este un articol de tip
structura tipstud *5
5* definirea structurii articolelor cu mediile
studentilor *5
struct tipmedie
(
int cm; 5* codul matricol *5
char nume[%!; 5* numele studentului *5
char prenume[%!; 5* prenumele *5
float media;
1m&tabmedii[2!&au$; 5* m este un articol de tip
structura tipmedie *5
FILE *ptrfnote; 5* tabmedii este un "ector
cu artcolele de medii *5
FILE *ptrfmedii;
int ns&nc&i&o);
char specfisn[%I!&specfism[%I!&r;
printf#,/n specificatorul fisierului de note@,';
scanf#,0s,&6specfisn';
if##ptrfnote+fopen#specfisn&,rb,''++-.LL'
(
printf#,/n eroare de deschidere fisier de note, ';
e$it#%';
1
printf#,/n specificatorul fisierului de medii@,';
scanf#,0s,&6specfism';
if##ptrfmedii+fopen#specfism&,*9b,''++-.LL'
(
printf#,/n eroare de deschidere in scriere a fisierului
de medii, ';
e$it#%';
1
ns+;
fread#6s&si:eof#struct tipstud'&%&ptrfnote';
*hile#7feof#ptrfnote''
(
ns99; 5* in ns se numara articolele
fisierului de medii *5
m.cm+s.cm; strcpD#m.nume&s.nume';
strcpD#m.prenume&s.prenume';
m.media+;
for#i+;i<s.nrn;i99' m.media+m.media9s.nota[i!;
m.media+m.media5s.nrn;
f*rite#6m&si:eof#struct tipmedie'&%&ptrfmedii';
fread#6s&si:eof#struct tipstud'&%&ptrfnote';
1
fclose#ptrfnote';
fclose#ptrfmedii';
5* citirea fisierului de medii in tabloul de medii pentru
sortare *5
if##ptrfmedii+fopen#specfism&,r9b,''++-.LL'
(
printf#,/n eroare de deschidere in citire a fisierului
de medii, ';
e$it#%';
1
nc+;i+;
fread#6m&si:eof#struct tipmedie'&%&ptrfmedii';
*hile#7feof#ptrfmedii''
(
nc99;
tabmedii[i!.cm+m.cm;
strcpD#tabmedii[i!.nume&m.nume';
strcpD#tabmedii[i!.prenume&m.prenume';
tabmedii[i!.media+m.media;
i99;
fread#6m&si:eof#struct tipmedie'&%&ptrfmedii';
1
5* ordonarea crescatoare a "ectorului studentilor dupa
cod matricol *5
o)+%;
*hile#o)++%'
(
o)+;
for #i+;i<nc;%;i99'
if#tabmedii[i!.cm > tabmedii[i9%!.cm'
(
au$+tabmedii[i!; tabmedii[i!+tabmedii[i9%!;
tabmedii[i9%!+au$; o)+%;
1
1
printf#,/n lista studentilor ordonata dupa cod matricol,';
printf#,/n ++++++++++++++++++++++++++++++++++++++++++++,';
printf#,/n matricol nume si prenume media ,';
printf#,/n ++++++++++++++++++++++++++++++,';
for#i+;i<nc;i99'
printf#,/n 0d 0;%s 0;%s
0I.2f,&tabmedii[i!.cm&

tabmedii[i!.nume&tabmedii[i!.prenume&tabmedii[i!.media';
printf#,/n ++++++++++++++++++++++++++++++,';
fclose#ptrfmedii';
5* citirea fisierului de medii in tabloul de medii pentru
sortare *5
if##ptrfmedii+fopen#specfism&,r9b,''++-.LL'
(
printf#,/n eroare de deschidere in citire a fisierului
de medii, ';
e$it#%';
1
nc+;i+;
fread#6m&si:eof#struct tipmedie'&%&ptrfmedii';
*hile#7feof#ptrfmedii''
(
nc99;
tabmedii[i!.cm+m.cm;
strcpD#tabmedii[i!.nume&m.nume';
strcpD#tabmedii[i!.prenume&m.prenume';
tabmedii[i!.media+m.media;
i99;
fread#6m&si:eof#struct tipmedie'&%&ptrfmedii';
1
5* ordonarea descrescatoare a "ectorului studentilor dupa
medie *5
o)+%;
*hile#o)++%'
(
o)+;
for #i+;i<nc;%;i99'
if#tabmedii[i!.media < tabmedii[i9%!.media'
(
au$+tabmedii[i!; tabmedii[i!+tabmedii[i9%!;
tabmedii[i9%!+au$; o)+%;
1
1
printf#,/n lista studentilor ordonata dupa media ,';
printf#,/n ++++++++++++++++++++++++++++++++++++++++++++,';
printf#,/n matricol nume si prenume media ,';
printf#,/n ++++++++++++++++++++++++++++++++++++++++++++,';
for#i+;i<nc;i99'
printf#,/n 0d 0;%s 0;%s
0I.2f,&tabmedii[i!.cm&

tabmedii[i!.nume&tabmedii[i!.prenume&tabmedii[i!.media';
printf#,/n ++++++++++++++++++++++++++++++++++++++++++++,';
fclose#ptrfmedii';
1
2.) Sa se afiseze pe ecran cautandu-se aleator in fisierul de medii creat anterior
informatiile referitoare la studentul gasit in mod aleator (folosindu-se functia de
randomizare rand()) impreuna cu pozitia ocupata in fisier de acesta.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctDpe.h>
#include <conio.h>
#include <process.h>
struct tipmedie
(
int cm; 5* codul matricol *5
char nume[%!; 5* numele studentului *5
char prenume[%!; 5* prenumele *5
float media;
1m; 5* m este un articol de tip
structura tipmedie *5
"oid main#"oid'
(
FILE *ptrfmedia;
int n&i;
long nrocteti; 5* po:itia in fisier in octeti
*5
int po:+&nc+; 5* po:itia in fisier in numar de
articole *5
char r;
char specfism[%I!;
printf#,/n specifiacatorul fisierului de medii@,';
scanf#,0s,&specfism';
if##ptrfmedia+fopen#specfism&,rb,''++-.LL'
(
printf#,/n eroare de deschidere a fisierului de medii,';
e$it#%';
1
po:+;
printf#,/n lista cu mediile studentilor in ordinea din
fisier ,';
printf#,/n
++++++++++++++++++++++++++++++++++++++++++++++++++++,';
printf#,/n po:itia matricol nume si prenume
media ,';
printf#,/n
++++++++++++++++++++++++++++++++++++++++++++++++++++,';
po:+; nc+;
5* citirea unui articol de medii *5
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia';
*hile #7feof#ptrfmedia''
(
printf#,/n 0Id 0Id 0;%s 0;%s
0K.2f,&po:&m.cm&
m.nume&m.prenume&m.media';
po:99; nc99;
5* citirea unui articol de medii *5
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia';
1
printf#,/n
++++++++++++++++++++++++++++++++++++++++++++++++++++,';
re*ind#ptrfmedia';
printf#,/n lista cu mediile studentilor in ordine
aleatoare ,';
printf#,/n continuati po:itionarea aleatoare in fisier?
#d5n'@,';
r+getche#';
*hile#r++8d8'
(
5* det. aleatoare a po:itiei in fisier& in nr de
articole *5
po:+abs##F>-AB3>J'5#rand#';%'';
5* det. aleatoare a po:itiei in fisier& in numar de
octeti *5
nrocteti+po:*si:eof#struct tipmedie';
if #po:<nc'
(
5* po:itionarea pe articolul cu po:itia det. aleator
*5
fsee)#ptrfmedia&nrocteti&=EELB=E2';
5* citirea articolului cautat *5
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia';
5* afisarea datelor articolului citit *5
printf#,/n
++++++++++++++++++++++++++++++++++++++++++++++++++,';
printf#,/n po:itia matricol nume si prenume
media ,';
printf#,/n
++++++++++++++++++++++++++++++++++++++++++++++++++,';
printf#,/n 0Id 0Id 0;%s 0;%s
0K.2f,&po:&m.cm&
m.nume&m.prenume&m.media';
printf#,/n continuati po:itionarea aleatoare in
fisier?#d5n'@,';
r+getche#';
1
re*ind#ptrfmedia'; 5* repo:itionarea pe inceputul
fisierului *5
1
fclose#ptrfmedia';
1
2.) Sa se proiecteze o aplicatie care sa rezolve urmatoarele pro"leme% crearea intr-o
functie adecvat definita a unui fisier cu mediile studentilor pe disc continand articole cu
structura%cod student ( un camp numeric de la 1 la 1&&& nume - un camp de 1& caractere
alfa"etice prenume - un camp de 1& caractere alfa"etice si media - un camp real de la 1
la 1& actualizarea fisierului de medii (adaugari printr-o functie de adaugare modificari
printr-o functie de modificare si stergeri printr-o functie de stergere) listarea fisierului de
medii (cu o functie de listare).
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctDpe.h>
#include <conio.h>
#include <process.h>
struct tipmedie
(
int cm; 5* codul matricol *5
char nume[%!; 5* numele studentului *5
char prenume[%!; 5* prenumele *5
float media;
1m; 5* m este un articol de
tip structura tipmedie *5
int po:media[2!&*po:media[2!;
FILE *ptrfmedia;
FILE *ptrfmedia*;
FILE *ptrtinde$;
int n&i;
long nrocteti&po:modif; 5* po:itii in
fisier in octeti *5
int *cod&po:+&nc&*nc+&first; 5* po:itia in fisier
in numar de articole *5
char r&rp;
char specfism[%I!;
"oid creare#"oid'
(
int i;
if##ptrtinde$+fopen#,tabinde$,&,*9b,''++-.LL'
(
printf#,/n eroare de deschidere fisier tabela,';
e$it#%';
1
printf#,/n este prima creare a fisierului de medii?
#d5n'@,';
rp+getche#';
if##rp++8d8'<<#rp++8A8''
(
for#i+;i<2;i99' po:media[i!+;
printf#,/n continuati introducerea de articole?
#d5n'@,';
r+getche#';i+;nc+;
*hile##r++8d8' << #r++8A8''
(
do
(
printf#,/n codul matricolol#%;%'@,';
scanf#,0d,&6m.cm';
1
*hile ##m.cm<+' << #m.cm>%'';
printf#,/n numele studentului@,';
scanf#,0s,&m.nume';
printf#,/n prenumele studentului@,';
scanf#,0s,&m.prenume';
do
(
printf#,/n media'+,';
scanf#,0f,&6m.media';
1
*hile ##m.media<+' << #m.media>%'';
f*rite#6m&si:eof#struct tipmedie'&%&ptrfmedia';
po:media[i!+m.cm;
i99;nc99;
printf#,/n continuati introducerea de articole?
#d5n'@,';
r+getche#';
1
f*rite#6po:media&2*si:eof#int'&%&ptrtinde$';
1
else
(
re*ind#ptrtinde$';
fsee)#ptrtinde$&&=EELB=E2';
fread#6po:media&2*si:eof#int'&%&ptrtinde$';
1
fclose#ptrtinde$';
1
"oid adaugare#'
(
int o);
if##ptrtinde$+fopen#,tabinde$,&,rb,''++-.LL'
(
printf#,/n eroare de deschidere fisier tabela in
citire,';
e$it#%';
1
fread#6po:media&2*si:eof#int'&%&ptrtinde$';
fclose#ptrtinde$';
fsee)#ptrfmedia&&=EELBE-A';
printf#,/n continuati adaugarea de articole?#d5n'@,';
r+getche#';i+nc;;
*hile##r++8d8' << #r++8A8''
(
do
(
printf#,/n dati corect codul studentului de
adaugat@,';
scanf#,0d,&6*cod';
1
*hile ##*cod<+' << #*cod>%'';
o)+;
for#i+;i<nc;i99'
(
if #*cod++po:media[i!'
(
printf#,/n studentul cu matricola+0d este deHa in
fisier,&*cod';
o)+%;
1
1
if#o)++'
(
m.cm+*cod;
printf#,/n numele studentului@,';
scanf#,0s,&m.nume';
printf#,/n prenumele studentului@,';
scanf#,0s,&m.prenume';
do
(
printf#,/n media'+,';
scanf#,0f,&6m.media';
1
*hile ##m.media<+' << #m.media>%'';
f*rite#6m&si:eof#struct tipmedie'&%&ptrfmedia';
po:media[i!+m.cm;
nc99;
1
printf#,/n continuati introducerea de articole?
#d5n'@,';
r+getche#';
1
if##ptrtinde$+fopen#,tabinde$,&,*b,''++-.LL'
(
printf#,/n eroare de deschidere fisier tabela in
citire,';
e$it#%';
1
re*ind#ptrtinde$';
f*rite#6po:media&2*si:eof#int'&%&ptrtinde$';
fclose#ptrtinde$';
1
"oid modificare#'
(
int o);
fsee)#ptrfmedia&&=EELB=E2';
printf#,/n continuati modificarea de articole?#d5n'@,';
r+getche#';i+;
*hile##r++8d8' << #r++8A8''
(
do
(
printf#,/n dati corect codul studentului de
mofificat@,';
scanf#,0d,&6*cod';
1
*hile ##*cod<+' << #*cod>%'';
o)+;
for#i+;i<nc;i99'
if #*cod++po:media[i!'
(
o)+%;
*nc+i;
1
if#o)++'
printf#,/n stud. de modif. cu codul 0d nu este in
fisier,&*cod';
else
(
o)+;
nrocteti+#*nc'*si:eof#struct tipmedie';
re*ind#ptrfmedia';
fsee)#ptrfmedia&&=EELB=E2';
fsee)#ptrfmedia&nrocteti&=EELB=E2';
po:modif+ftell#ptrfmedia';
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia';
m.cm+*cod;
printf#,/n numele studentului@,';
scanf#,0s,&m.nume';
printf#,/n prenumele studentului@,';
scanf#,0s,&m.prenume';
do
(
printf#,/n media'+,';
scanf#,0f,&6m.media';
1
*hile ##m.media<+' << #m.media>%'';
re*ind#ptrfmedia';
fsee)#ptrfmedia&&=EELB=E2';
fsee)#ptrfmedia&po:modif&=EELB=E2';
f*rite#6m&si:eof#struct tipmedie'&%&ptrfmedia';
1
printf#,/n continuati modificarea de articole?#d5n'@,';
r+getche#';
1
1
"oid stergere#'
(
int o);
if##ptrtinde$+fopen#,tabinde$,&,*9b,''++-.LL'
(
printf#,/n eroare de deschidere fisier tabela in
citire,';
e$it#%';
1
remo"e#,fmedia*,';
if##ptrfmedia*+fopen#,fmedia*,&,*b,''++-.LL'
(
printf#,/n eroare de deschidere fisier de medii in
scriere,';
e$it#%';
1
fread#6po:media&2*si:eof#int'&%&ptrtinde$';
fclose#ptrtinde$';
printf#,/n continuati stergerea de articole?#d5n'@,';
r+getche#';
*hile##r++8d8' << #r++8A8''
(
re*ind#ptrfmedia';
do
(
printf#,/n dati corect codul studentului de sters@,';
scanf#,0d,&6*cod';
1
*hile ##*cod<+' << #*cod>%'';
o)+;*nc+;%;
for#i+;i<nc;i99'
(
if #*cod++po:media[i!'
(
o)+%;
*nc+i;
1
1
if#o)++'
printf#,/n stud.de sters cu mat+0d nu este
fis,&*cod';
else
(
for#i+;i<2;i99' *po:media[i!+;
re*ind#ptrfmedia';i+;
*hile #7feof#ptrfmedia''
(
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia';
if#i++*nc'
(
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia';
f*rite#6m&si:eof#struct tipmedie'&%&ptrfmedia*';
1
else
f*rite#6m&si:eof#struct tipmedie'&%&ptrfmedia*';
i99;
1
fclose#ptrfmedia*';
for#i+;i<2;i99'
(
if#i<*nc'
*po:media[i!+po:media[i!;
else
if#i<#nc;%''
*po:media[i!+po:media[i9%!;
else
*po:media[i!+;
1
for#i+;i<2;i99' po:media[i!+;
for#i+;i<2;i99' po:media[i!+*po:media[i!;
if##ptrfmedia*+fopen#,fmedia*,&,r*b,''++-.LL'
(
printf#,/n eroare de deschidere fisier de medii in
scriere,';
e$it#%';
1
remo"e#specfism';
re*ind#ptrfmedia';
if##ptrfmedia+fopen#specfism&,*9b,''++-.LL'
(
printf#,/n eroare de deschidere fisier de medii in
scriere,';
e$it#%';
1
re*ind#ptrfmedia*';
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia*';
*hile #7feof#ptrfmedia*''
(
f*rite#6m&si:eof#struct tipmedie'&%&ptrfmedia';
fflush#ptrfmedia';
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia*';
1
1
printf#,/n continuati stergerea de articole?#d5n'@,';
r+getche#';
1
if##ptrtinde$+fopen#,tabinde$,&,*b,''++-.LL'
(
printf#,/n eroare de deschidere fisier tabela in
citire,';
e$it#%';
1
re*ind#ptrtinde$';
f*rite#6po:media&2*si:eof#int'&%&ptrtinde$';
fclose#ptrtinde$';
re*ind#ptrfmedia';
1
"oid listare#'
(
if##ptrtinde$+fopen#,tabinde$,&,rb,''++-.LL'
(
printf#,/n eroare de deschidere fisier tabela in
citire,';
e$it#%';
1
fread#6po:media&2*si:eof#int'&%&ptrtinde$';
fclose#ptrtinde$';
re*ind#ptrfmedia';
printf#,/n lista cu mediile studentilor in ordinea din
fisier ,';
printf#,/n
++++++++++++++++++++++++++++++++++++++++++++++++,';
printf#,/n po:itia matricol nume si prenume
media ,';
printf#,/n
++++++++++++++++++++++++++++++++++++++++++++++++,';
po:+;
5* citirea unui articol de medii *5
fsee)#ptrfmedia&&=EELB=E2';
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia';
*hile #7feof#ptrfmedia''
(
printf#,/n 0Id 0Id 0;%s 0;%s
0K.2f,&po:&m.cm&
m.nume&m.prenume&m.media';
po:99;
5* citirea unui articol de medii *5
fread#6m&si:eof#struct tipmedie'&%&ptrfmedia';
1
printf#,/n
++++++++++++++++++++++++++++++++++++++++++++++++,';
printf#,/n listarea tabelei de inde$i@/n,';
for#i+;i<2;i99' printf#,0d ,&po:media[i!';
1
"oid main#"oid'
(
int optiune;
printf#,/n specifiacatorul fisierului de medii@,';
scanf#,0s,&6specfism';
if##ptrfmedia+fopen#specfism&,*9b,''++-.LL'
(
printf#,/n eroare de deschidere a fisierului de medii,';
e$it#%';
1
do
(
clrscr#';
re*ind#ptrfmedia';
printf#,/n %;crearea fisierului de medii si a tabelei
de inde$,';
printf#,/n 2;adaugare in fisierul de medii si in tabela
de inde$,';
printf#,/n M;modificare in fisierul de medii si in
tabela de inde$,';
printf#,/n G;stergere in fisierul de medii si in tabela
de inde$,';
printf#,/n I;listarea fisierului de medii si a tabelei
de inde$,';
printf#,/n N;terminare aplicatie,';
printf#,/n optiunea aleasa #%;N'@,';
scanf#,0d,&6optiune';
*hile ##optiune>+%'66#optiune<+I''
(
s*itch #optiune'
(
case %@creare#';
brea);
case 2@adaugare#';
brea);
case M@modificare#';
brea);
case G@stergere#';
brea);
case I@listare#';
brea);
1
re*ind#ptrfmedia';
printf#,/n %;crearea fisierului de medii si a tabelei
de inde$,';
printf#,/n 2;adaugare in fisierul de medii si in
tabela de inde$,';
printf#,/n M;modificare in fisierul de medii si in
tabela de inde$,';
printf#,/n G;stergere in fisierul de medii si in
tabela de inde$,';
printf#,/n I;listarea fisierului de medii si a
tabelei de inde$,';
printf#,/n N;terminare aplicatie,';
printf#,/n optiunea aleasa #%;N'@,';
scanf#,0d,&6optiune';
1
1
*hile ##optiune<%'<<#optiune>N'';
fclose#ptrfmedia';
fclose#ptrtinde$';
1

S-ar putea să vă placă și