Extras din proiect
#include <conio.h>
#include <stdio.h>
#include <string.h>
int terminareProgram = 0;
int optiuneInexistenta = 0;
typedef struct{ char numeAlbum[40],numeArtist[40];
int durata, nrMelodii, is;
char melodii[15][30];
}
album;
int nrart(FILE *f,int l)
{
long poz=ftell(f);
fseek(f,0,2);
int n=ftell(f)/l;
fseek(f,poz,0);
return n;
}
void doCreare()
{
FILE *f;
album m;
int cod;
char fis[20];
printf("nIntroduceti numele fisierului: ");
gets(fis);
f=fopen(fis, "wb+");
//while(!feof(stdin))
int repetare = 1;
while(repetare)
{
printf("nIntroduceti codul albumului: ");
scanf("%d",&cod );
if(cod >= nrart(f,sizeof(album) ) )
{ m.is=0;
fseek(f,0,2);
for(int i=nrart(f,sizeof(album)); i<cod; i++)
fwrite(&m,sizeof(album),1,f);
}
fseek(f,cod*sizeof(album),0);
fread(&m,sizeof(album),1,f);
if(m.is==1)
printf("nAlbumul este deja inregistrat ");
else
{
printf("nIntroduceti numele albumului: ");
fflush(stdin);
gets(m.numeAlbum);
printf("nIntroduceti numele artistului: ");
fflush(stdin);
gets(m.numeArtist);
printf("nIntroduceti durata totala a albumului(min): " );
scanf("%d" ,&m.durata);
printf("nIntroduceti numarul de melodii de pe album: ");
scanf("%d", &m.nrMelodii);
fflush(stdin);
for(int i=0; i<m.nrMelodii; i++)
{
printf("n Melodia %d: ",i+1);
gets(m.melodii[i]);
}
m.is=1;
fseek(f,cod*sizeof(album),0);
fwrite(&m,sizeof(album),1,f);
}
printf("n Doriti sa mai adaugati un album? d / n: ");
char option = getch();
repetare = 0;
if(option == 'd')
{
repetare = 1;
}
}
fclose(f);
}
void doAdaugare()
{
FILE *f;
album m;
int cod;
char fis[20];
printf("nIntroduceti numele fisierului: ");
gets(fis);
f=fopen(fis, "rb+");
if(!f)
{
f = fopen(fis, "wb+");
}
int repetare = 1;
//while(!feof(stdin))
while(repetare)
{
printf("nIntroduceti codul albumului de adaugat: ");
scanf("%d",&cod );
if(cod >= nrart(f,sizeof(album) ) )
{ m.is=0;
fseek(f,0,2);
for(int i=nrart(f,sizeof(album)); i<cod; i++)
fwrite(&m,sizeof(album),1,f);
}
fseek(f,cod*sizeof(album),0);
fread(&m,sizeof(album),1,f);
if(m.is==1)
printf("nAlbumul este deja inregistrat ");
else
{
printf("nIntroduceti numele albumului: ");
fflush(stdin);
gets(m.numeAlbum);
printf("nIntroduceti numele artistului: ");
fflush(stdin);
gets(m.numeArtist);
printf("nIntroduceti durata totala a albumului(min): " );
scanf("%d" ,&m.durata);
printf("nIntroduceti numarul de melodii de pe album: ");
scanf("%d", &m.nrMelodii);
fflush(stdin);
for(int i=0; i<m.nrMelodii; i++)
{
printf("n Melodia %d: ",i+1);
gets(m.melodii[i]);
}
m.is=1;
fseek(f,cod*sizeof(album),0);
fwrite(&m,sizeof(album),1,f);
}
printf("n Doriti sa mai adaugati un album? d / n: ");
char option = getch();
repetare = 0;
if(option == 'd')
{
repetare = 1;
}
}
fclose(f);
}
void doModificare()
{
FILE *f;
album m;
int cod;
char fis[20];
printf("nIntroduceti numele fisierului: ");
gets(fis);
f=fopen(fis, "rb+");
if(!f)
{
printf("n Nu exista fisierul de modificat");
getch();
return;
}
int repetare = 1;
// while(!feof(stdin))
while(repetare)
{
printf("nIntroduceti codul albumului de modificat: ");
scanf("%d",&cod);
if(cod >= nrart(f,sizeof(album) ) )
{
m.is = 0;
}
else
{
fseek(f,cod*sizeof(album),0);
fread(&m,sizeof(album),1,f);
}
if(m.is==0)
printf("nAlbumul nu este inregistrat ");
else
{
printf("nAlbum de modificat:");
printf("nnumele albumului: %s", m.numeAlbum);
printf("nnumele artistului: %s",m.numeArtist);
printf("ndurata totala a albumului(min): %d", m.durata);
printf("nnumarul de melodii de pe album: %d", m.nrMelodii);
{for(int i=0; i<m.nrMelodii; i++)
{
printf("n Melodia %d: %s",i+1, m.melodii[i]);
}}
printf("nIntroduceti numele albumului: ");
fflush(stdin);
gets(m.numeAlbum);
printf("nIntroduceti numele artistului: ");
fflush(stdin);
gets(m.numeArtist);
printf("nIntroduceti durata totala a albumului: " );
scanf("%d" ,&m.durata);
printf("nIntroduceti numarul de melodii de pe album: ");
scanf("%d", &m.nrMelodii);
fflush(stdin);
{for(int i=0; i<m.nrMelodii; i++)
Preview document
Conținut arhivă zip
- PROIECT.BAK
- PROIECT.CPP
- proiect.doc
- proiect.exe
- proiect.obj