Algoritmi în programare - lucru cu fișiere binare și text în C

Proiect
7/10 (1 vot)
Domeniu: Calculatoare
Conține 5 fișiere: doc, cpp, exe, obj, bak
Pagini : 10 în total
Cuvinte : 1493
Mărime: 45.29KB (arhivat)
Publicat de: Florentin Cozma
Puncte necesare: 8

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

Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 1
Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 2
Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 3
Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 4
Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 5
Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 6
Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 7
Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 8
Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 9
Algoritmi în programare - lucru cu fișiere binare și text în C - Pagina 10

Conținut arhivă zip

  • PROIECT.BAK
  • PROIECT.CPP
  • proiect.doc
  • proiect.exe
  • proiect.obj

Alții au mai descărcat și

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Autentificarea prin semnătură digitală

Introducere O semnatura digitala reprezinta o informatie care il identifica pe expeditorul unui document. Semnatura digitala este creata prin...

Placa de Bază

Caracteristici generale ale placii de baza Placa de baza este un dizpozitiv ‘de baza’ un ‘pamânt’ pe care ‘se planteaza’ celelalte componente ....

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Te-ar putea interesa și

Transferul Datelor pe Internet

Capitolul I 1. Retele de calculatoare 1.1 Introducere Istoria relativ scurta a tehnicii de calcul a inceput in ultima perioada sa se aglomereze...

Hinter Soft SRL - Plan de afacere

1. Titlu plan de afaceri ( numele entității juridice create sau brand-ul sub care va fi derulată activitatea): SCOALA INFORMALA DE IT 2....

Bazele Informaticii

1.Criteriul cel mai important ce stă la baza împărţirii evoluţiei calculatoarelor în generaţii este dezvoltarea tehnologiei: a) optoelectronice...

Arbori Binari

Definire: Arborii sunt structuri de date dinamice şi omogene. In arborescenţă, există un nod numit rădăcină sau părinte. Acesta are descendenţi....

Metodica Predării Informaticii

Curs 1 - METODICA PREDĂRII INFORMATICII BIBLIOGRAFIE: 1. Clara Ionescu. Metodica predării informaticii, Cluj. 2. Cristian Masalagiu, Ioan...

Ai nevoie de altceva?