Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct ex{
- int num;
- char local[50];
- char maquina[50];
- int ano;
- char tipo[50];
- }estrutura;
- estrutura fotograf;
- FILE *fx;
- FILE *fa;
- int pesquisan(int num){
- fa=fopen("fotos.dat","a+");
- fread(&fotograf,sizeof(fotograf),1,fa);
- while (!feof(fa) && fotograf.num!=num){
- fread(&fotograf,sizeof(fotograf),1,fa);
- }
- int p=ftell(fa);
- fclose(fa);
- if(fotograf.num==num){
- return p;
- }
- else{
- return 0;
- }
- }
- void inserir(){
- int c,n;
- do{
- printf("Numero da foto:\n");
- scanf("%d",&n);
- if(pesquisan(n)==0){
- fx=fopen("fotos.dat","a+");
- fotograf.num=n;
- printf("Local:\n");
- scanf("%s",fotograf.local);
- printf("Maquina:\n");
- scanf("%s",fotograf.maquina);
- printf("Ano:\n");
- scanf("%d",&fotograf.ano);
- printf("Tipo:\n");
- scanf("%s",fotograf.tipo);
- fwrite(&fotograf,sizeof(fotograf),1,fx);
- fclose(fx);
- }
- else{
- printf("Ja existe!\n");
- }
- printf("Quer continuar a inserir dados? \n");
- scanf("%d",&c);
- }while (c==1);
- }
- void listagem(){
- int a1,a2,k=0,w=0;
- printf("Introduza o primeiro ano:\n");
- scanf("%d",&a1);
- printf("Introduza o segundo ano:\n");
- scanf("%d",&a2);
- fx=fopen("fotos.dat","r");
- fread(&fotograf,sizeof(fotograf),1,fx);
- while(!feof(fx)){
- if(fotograf.ano==a1){
- k=k+1;
- }
- else if(fotograf.ano==a2){
- w=w+1;
- }
- if(fotograf.ano>=a1 && fotograf.ano<=a2){
- printf("Numero:%d\nLocal:%s\nMaquina:%s\nAno:%d\nTipo:%s\n\n",fotograf.num,fotograf.local,fotograf.maquina,fotograf.ano,fotograf.tipo);
- fread(&fotograf,sizeof(fotograf),1,fx);
- }
- else{
- fread(&fotograf,sizeof(fotograf),1,fx);
- }
- }
- fclose(fx);
- printf("Numero de fotos no ano %d: %d\n",a1,k);
- printf("Numero de fotos no ano %d: %d\n",a2,w);
- }
- void consulta()
- {
- fx=fopen("fotos.dat","r");
- fread(&fotograf,sizeof(fotograf),1,fx);
- while(!feof(fx)){
- printf("Numero:%d\nLocal:%s\nMaquina:%s\nAno:%d\nTipo:%s\n\n",fotograf.num,fotograf.local,fotograf.maquina,fotograf.ano,fotograf.tipo);
- fread(&fotograf,sizeof(fotograf),1,fx);
- }
- fclose(fx);
- }
- void limpa(){
- fx=fopen("fotos.dat","w");
- fclose(fx);
- }
- int main() {
- int op;
- if(fopen("fotos.dat","r")==NULL){
- fx=fopen("fotos.dat","w");
- fclose(fx);
- }
- do{
- printf("1-Inserir dados\n");
- printf("2-Consulta global\n");
- printf("3-Consulta pelo intervalo de dois anos\n");
- printf("4-Limpar\n");
- printf("5-Sair\n");
- scanf("%d",&op);
- switch(op){
- case 1:inserir();
- break;
- case 2:consulta();
- break;
- case 3: listagem();
- break;
- case 4: limpa();
- break;
- }
- }while (op!=5);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement