Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.24 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. struct E{
  4.   int nfoto,ano;
  5.   char local[50],maquina[50],tipo[50];
  6. };
  7. E reg;
  8. FILE *fx;
  9. bool pesquisa(int N){
  10.   fx=fopen("fotos.dat","r");
  11.   fread(&reg,sizeof(reg),1,fx);
  12.   while(!feof(fx)&&reg.nfoto!=N)fread(&reg,sizeof(reg),1,fx);
  13.   fclose(fx);
  14.   return (reg.nfoto==N);
  15. }
  16. void inserir(){
  17.   int N;cout<<"Insira o numero da foto: ";cin>>N;
  18.   while(pesquisa(N)){
  19.     cout<<"Numero replicado!"<<'\n';
  20.     cout<<"Insira o numero da foto: ";cin>>N;
  21.   }
  22.   fx=fopen("fotos.dat","a+");
  23.   reg.nfoto=N;
  24.   cout<<"Local: ";cin>>reg.local;
  25.   cout<<"Maquina: ";cin>>reg.maquina;
  26.   cout<<"Ano: ";cin>>reg.ano;
  27.   cout<<"Tipo: ";cin>>reg.tipo;
  28.   fwrite(&reg,sizeof(reg),1,fx);
  29.   fclose(fx);
  30. }
  31. void listar(){
  32.   int lo,hi;
  33.   cout<<"Lim. Inferior: ";cin>>lo;
  34.   cout<<"Lim. Superior: ";cin>>hi;
  35.   int fotosAno[10000];for(int i=0;i<10000;i++)fotosAno[i]=0;
  36.   fx=fopen("fotos.dat","r");
  37.   fread(&reg,sizeof(reg),1,fx);
  38.   while(!feof(fx)){
  39.     if(reg.ano>=lo&&reg.ano<=hi){
  40.       cout<<"Local: "<<reg.local<<'\n';
  41.       cout<<"Maquina: "<<reg.maquina<<'\n';
  42.       cout<<"Ano: "<<reg.ano<<'\n';
  43.       cout<<"Tipo: "<<reg.tipo<<'\n'<<'\n';
  44.       fotosAno[reg.ano]++;
  45.     }
  46.     fread(&reg,sizeof(reg),1,fx);
  47.   }
  48.   cout<<"Fotografias por Ano:"<<'\n';
  49.   for(int i=0;i<10000;i++)if(fotosAno[i]>0)cout<<i<<" - "<<fotosAno[i]<<'\n';
  50.   fclose(fx);
  51. }
  52. void alterar(){
  53.   char encontrar[50],alterar[50];
  54.   cout<<"Local a pesquisar: ";cin>>encontrar;
  55.   cout<<"Local a alterar: ";cin>>alterar;
  56.   fx=fopen("fotos.dat","r+");
  57.   fread(&reg,sizeof(reg),1,fx);
  58.   while(!feof(fx)){
  59.     if(strcmp(reg.local,encontrar)==0){
  60.       strcpy(reg.local,alterar);
  61.       fseek(fx,-sizeof(reg),1);
  62.       fwrite(&reg,sizeof(reg),1,fx);
  63.       fseek(fx,sizeof(reg),1);
  64.     }
  65.     fread(&reg,sizeof(reg),1,fx);
  66.   }
  67.   fclose(fx);
  68. }
  69. int main(){
  70.  if(!fopen("fotos.dat","r")){
  71.    fx=fopen("fotos.dat","w");
  72.    fclose(fx);
  73.  }
  74.  int task;
  75.   cout<<"1 - Inserir"<<'\n';
  76.   cout<<"2 - Listar"<<'\n';
  77.   cout<<"3 - Alterar"<<'\n';
  78.   cout<<"10 - Sair"<<'\n'<<'\n';
  79.  do{
  80.    cout<<": ";cin>>task;
  81.    switch(task){
  82.      case 1:inserir();break;
  83.      case 2:listar();break;
  84.      case 3:alterar();break;
  85.    }
  86.  }while(task!=10);
  87.  return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement