Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- struct E{
- int nfoto,ano;
- char local[50],maquina[50],tipo[50];
- };
- E reg;
- FILE *fx;
- bool pesquisa(int N){
- fx=fopen("fotos.dat","r");
- fread(®,sizeof(reg),1,fx);
- while(!feof(fx)&®.nfoto!=N)fread(®,sizeof(reg),1,fx);
- fclose(fx);
- return (reg.nfoto==N);
- }
- void inserir(){
- int N;cout<<"Insira o numero da foto: ";cin>>N;
- while(pesquisa(N)){
- cout<<"Numero replicado!"<<'\n';
- cout<<"Insira o numero da foto: ";cin>>N;
- }
- fx=fopen("fotos.dat","a+");
- reg.nfoto=N;
- cout<<"Local: ";cin>>reg.local;
- cout<<"Maquina: ";cin>>reg.maquina;
- cout<<"Ano: ";cin>>reg.ano;
- cout<<"Tipo: ";cin>>reg.tipo;
- fwrite(®,sizeof(reg),1,fx);
- fclose(fx);
- }
- void listar(){
- int lo,hi;
- cout<<"Lim. Inferior: ";cin>>lo;
- cout<<"Lim. Superior: ";cin>>hi;
- int fotosAno[10000];for(int i=0;i<10000;i++)fotosAno[i]=0;
- fx=fopen("fotos.dat","r");
- fread(®,sizeof(reg),1,fx);
- while(!feof(fx)){
- if(reg.ano>=lo&®.ano<=hi){
- cout<<"Local: "<<reg.local<<'\n';
- cout<<"Maquina: "<<reg.maquina<<'\n';
- cout<<"Ano: "<<reg.ano<<'\n';
- cout<<"Tipo: "<<reg.tipo<<'\n'<<'\n';
- fotosAno[reg.ano]++;
- }
- fread(®,sizeof(reg),1,fx);
- }
- cout<<"Fotografias por Ano:"<<'\n';
- for(int i=0;i<10000;i++)if(fotosAno[i]>0)cout<<i<<" - "<<fotosAno[i]<<'\n';
- fclose(fx);
- }
- void alterar(){
- char encontrar[50],alterar[50];
- cout<<"Local a pesquisar: ";cin>>encontrar;
- cout<<"Local a alterar: ";cin>>alterar;
- fx=fopen("fotos.dat","r+");
- fread(®,sizeof(reg),1,fx);
- while(!feof(fx)){
- if(strcmp(reg.local,encontrar)==0){
- strcpy(reg.local,alterar);
- fseek(fx,-sizeof(reg),1);
- fwrite(®,sizeof(reg),1,fx);
- fseek(fx,sizeof(reg),1);
- }
- fread(®,sizeof(reg),1,fx);
- }
- fclose(fx);
- }
- int main(){
- if(!fopen("fotos.dat","r")){
- fx=fopen("fotos.dat","w");
- fclose(fx);
- }
- int task;
- cout<<"1 - Inserir"<<'\n';
- cout<<"2 - Listar"<<'\n';
- cout<<"3 - Alterar"<<'\n';
- cout<<"10 - Sair"<<'\n'<<'\n';
- do{
- cout<<": ";cin>>task;
- switch(task){
- case 1:inserir();break;
- case 2:listar();break;
- case 3:alterar();break;
- }
- }while(task!=10);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement