Buscar

TRABALHO SOBRE ARQUIVOS-PROGRAMAÇÃO PARA ENGENHARIA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Ceará - UFC 
Centro de ciências – CC 
Departamento de Computação – DC 
Fundamentos de Programação 
 
Exercício: Arquivo 
Objetivos: Introduzir as principais estruturas de repetição. 
 ALICE BARROS FREIRE Matrícula: 471490 
JOSE LUCAS SIQUEIRA FREITAS Matrícula: 475167 
JULYANA XAVIER MARTINS Matrícula: 485324 
 
1 ) 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
struct s_aluno{ 
 int numero; 
 char nome[30]; 
 char curso[30]; 
 float nota1; 
 float nota2; 
}; 
 
typedef struct s_aluno aluno; 
aluno consultaraluno(int numero); 
 
void cadAluno(); 
int adcAluno(aluno a); 
int adicionarAlunos(aluno a[],int total); 
 
int lerAlunos(aluno alunos[]); 
void imprAlunos(); 
 
int atualizarAluno(aluno a); 
void formAtualizarAluno(); 
int contAlunos(); 
 
int totalalunos; 
 
int main(void) 
{ 
 totalalunos=contAlunos(); 
 impAlunos(); 
 formAtualizarAluno(); 
 return 0; 
} 
 
void cadAluno() 
{ 
 aluno a; 
 int flag; 
 
 printf("\nNumero do Aluno: "); 
 scanf("%d",&a.numero); 
 getchar(); 
 printf("\nNome do Aluno: "); 
 fgets(a.nome,30,stdin); 
 getchar(); 
 printf("\nCurso do Aluno: "); 
 fgets(a.curso,30,stdin); 
 getchar(); 
 printf("\nNota1: "); 
 scanf("%f",&a.nota1); 
 printf("\nNota2: "); 
 scanf("%f",&a.nota2); 
 
 flag=adcAluno(a); 
 
 if (flag==-1) 
 { 
 printf("Aluno cadastrado com sucesso!"); 
 totalalunos=totalalunos+1; 
 } 
 else 
 { 
 printf("Erro ao cadastrar aluno!"); 
 } 
} 
int adcAluno(aluno a) 
{ 
 FILE *arq; 
 int retorno=-1; 
 
 char str[30]; 
 char alunostring[30]; 
 
 arq=fopen("Alunos3.DATA","a"); 
 if (arq==NULL) 
 { 
 printf("\nErro na criacao do arquivo"); 
 retorno=0; 
 } 
 else 
 { 
 printf("\nSucesso na criacao do arquivo"); 
 
 fwrite(&a,sizeof(aluno),1,arq); 
 
 if(ferror(arq)!=0) 
 { 
 printf("\nErro ao gravar string"); 
 retorno=0; 
 } 
 else 
 printf("\nCaractere gravado com sucesso"); 
 
 } 
 fclose(arq); 
 printf("\nFim do Programa"); 
 return retorno; 
} 
 
void impAlunos() 
{ 
 aluno alunos[totalalunos]; 
 int total,i; 
 
 total=lerAlunos(alunos); 
 
 for(i=0;i<total;i++) 
 { 
 printf("\n\nAluno %d\n",i+1) ; 
 printf("\nNumero: %d\n",alunos[i].numero); 
 printf("\nNome: %s",alunos[i].nome); 
 printf("\nCurso: %s",alunos[i].curso); 
 printf("\nNota 1: %f\n",alunos[i].nota1); 
 printf("\nNota 2: %f\n",alunos[i].nota2); 
 } 
 
} 
 
int lerAlunos(aluno alunos[]) 
{ 
 FILE *arq; 
 char str[30]; 
 aluno a; 
 int totalalunos=0; 
 
 arq=fopen("Alunos3.DATA","r"); 
 if (arq==NULL) 
 printf("\nErro ao ler do arquivo"); 
 else 
 { 
 printf("\nSucesso na criacao do arquivo\n"); 
 fread(&a,sizeof(aluno),1,arq); 
 
 while(!feof(arq)) 
 { 
 if(ferror(arq)!=0) 
 printf("Erro ao ler caractere"); 
 else 
 { 
 alunos[totalalunos]=a; 
 totalalunos=totalalunos+1; 
 } 
 
 fread(&a,sizeof(aluno),1,arq); 
 } 
 } 
 fclose(arq); 
 printf("\nFim do Programa"); 
 return totalalunos; 
} 
 
int adicionarAlunos(aluno a[],int total) 
{ 
 FILE *arq; 
 int retorno=-1; 
 
 char str[30]; 
 char alunostring[30]; 
 
 arq=fopen("Alunos3.DATA","w"); 
 if (arq==NULL) 
 { 
 printf("\nErro na criacao do arquivo"); 
 retorno=0; 
 } 
 else 
 { 
 printf("\nSucesso na criacao do arquivo"); 
 
 fwrite(a,sizeof(aluno),total,arq); 
 
 if(ferror(arq)!=0) 
 { 
 printf("\nErro ao gravar string"); 
 retorno=0; 
 } 
 else 
 printf("\nCaractere gravado com sucesso"); 
 
 } 
 fclose(arq); 
 printf("\nFim do Programa"); 
 return retorno; 
} 
 
void formAtualizarAluno() 
{ 
 aluno a; 
 
 impAlunos(); 
 
 printf("\n\nAtualizacao do Aluno\n"); 
 printf("\nNumero do Aluno: "); 
 scanf("%d",&a.numero); 
 getchar(); 
 printf("\nNome do Aluno: "); 
 fgets(a.nome,30,stdin); 
 getchar(); 
 printf("\nCurso do Aluno: "); 
 fgets(a.curso,30,stdin); 
 getchar(); 
 printf("\nNota1: "); 
 scanf("%f",&a.nota1); 
 printf("\nNota2: "); 
 scanf("%f",&a.nota2); 
 
 atualizarAluno(a); 
} 
 
int atualizarAluno(aluno a) 
{ 
 aluno alunos[totalalunos]; 
 int total,i, flag; 
 
 total=lerAlunos(alunos); 
 
 for(i=0;i<total;i++) 
 { 
 if (alunos[i].numero==a.numero) 
 { 
 strcpy(alunos[i].nome,a.nome); 
 strcpy(alunos[i].curso,a.curso); 
 alunos[i].nota1=a.nota1; 
 alunos[i].nota2=a.nota2; 
 } 
 } 
 
 flag=adicionarAlunos(alunos,total); 
 
 
 if (flag==-1) 
 { 
 printf("\nAlunos atualizados com sucesso!"); 
 } 
 else 
 { 
 printf("\nErro ao atualizar alunos!"); 
 } 
} 
 
int contAlunos() 
{ 
 FILE *arq; 
 aluno a; 
 int totalalunos=0; 
 
 arq=fopen("Alunos3.DATA","r"); 
 if (arq==NULL) 
 printf("\nErro ao ler do arquivo"); 
 else 
 { 
 printf("\nSucesso na criacao do arquivo\n"); 
 fread(&a,sizeof(aluno),1,arq); 
 
 while(!feof(arq)) 
 { 
 if(ferror(arq)!=0) 
 printf("Erro ao ler caractere"); 
 else 
 { 
 totalalunos=totalalunos+1; 
 } 
 
 fread(&a,sizeof(aluno),1,arq); 
 } 
 } 
 fclose(arq); 
 printf("\nFinal do Programa"); 
 return totalalunos; 
} 
 
2) 
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
#include <ctype.h> 
 
struct mvenda{ 
 int cven; 
 char nven[100]; 
 float valv; 
 int mes; 
}; 
typedef struct mvenda variavel_v; 
int nregistro();//numero de registros 
//int tam=nregistro();//recebe o numero de reg. 
void cadastro_v(variavel_v v[],int tam[]);//cadastra vendedor 
int insv(variavel_v v[],int tam[]);//insere os dados do vendedor 
void armav(variavel_v v[],int tam[]);//armazena os dados do arquivo pro struct 
void exiven(variavel_v v[],int tam[]);//exibe as vendas 
void altven(variavel_v v[],int tam[]);//altera uma venda especifica de algum 
vendedor 
void delven(variavel_v v[],int tam[]);//exclui os dados de um vendedor 
void venmes(variavel_v v[],int tam[]);//vê as vendas do mes de um determinado 
vendedor 
void totven(variavel_v v[],int tam[]);//O valor total de vendas obtida por um 
vendedor 
void maiorv(variavel_v v[],int tam[]);//maior venda de determinado mes 
void mesmaval(variavel_v v[],int tam[]);//maior venda de todas 
 
int main(){ 
 int op,n=1; 
 int tam[1]; 
 FILE *p; 
 p=fopen("Vendas.dat","a"); 
 if(p==NULL){ 
 printf("Falha ao criar!\n"); 
 }else{ 
 fclose(p); 
 while(n<2){ 
 tam[0]=nregistro(); 
 variavel_v v[999]; 
 armav(v,tam); 
 exiven(v,tam); 
 printf("\n1)Cadastrar um vendedor\n2)Alterar Venda\n3)Excluir 
vendedor\n4)Vendas do mes de um vendedor\n5)Total de vendas de um 
vendedor\n6)Maior venda de determinado mes\n7)Para obter a maior venda, 
com seu vendedor e mes\n8)Sair\n"); 
 scanf("%i",&op); 
 if(op==1){ 
 cadastro_v(v,tam); 
 } 
 if(tam[0]!=0){ 
 if(op==2){ 
 altven(v,tam); 
 } 
 if(op==3){ 
 delven(v,tam); 
 } 
 if(op==4){ 
 venmes(v,tam); 
 } 
 if(op==5){ 
 totven(v,tam); 
 } 
 if(op==6){maiorv(v,tam); 
 } 
 if(op==7){ 
 mesmaval(v,tam); 
 } 
 }else{ 
 printf("E necessario fazer um registro antes!\n"); 
 } 
 if(op==8){ 
 n=3; 
 } 
 } 
 return 0; 
 } 
} 
 
 void cadastro_v(variavel_v v[],int tam[]){ 
 int con,k=0,i; 
 printf("digite o codigo do vendedor: \n"); 
 scanf("%d",&v[tam[0]].cven); 
 printf("digite o nome do vendedor: \n"); 
 fflush(stdin); 
 gets(v[tam[0]].nven); 
 printf("digite o valor da venda: \n"); 
 scanf("%f",&v[tam[0]].valv); 
 printf("digite o mes:(Ex: janeiro, digite 1) \n"); 
 scanf("%d",&v[tam[0]].mes); 
 for(i=0;i<=tam[0];i++){ 
 if(v[i].cven==v[tam[0]].cven || v[i].mes==v[tam[0]].mes){ 
 k++; 
 } 
 } 
 if(k==1){ 
 con=insv(v,tam); 
 if(con==-1){ 
 printf("Vendedor cadastrado com sucesso!\n"); 
 }else{ 
 printf("Erro ao cadastrar.\n"); 
 } 
 }else{ 
 printf("os vendedores não podem ter códigos iguais no mesmo mes.\n"); 
 } 
} 
 
int insv(variavel_v v[],int tam[]){ 
 FILE *p; 
 int conf=-1; 
 char codc[20]; 
 p=fopen("Vendas.dat","a"); 
 if(p==NULL){ 
 printf("Erro ao abrir.\n"); 
 conf=0; 
 }else{ 
 fprintf(p,"%d",v[tam[0]].cven); 
 fprintf(p,"\n%s",v[tam[0]].nven); 
 fprintf(p,"\n%f",v[tam[0]].valv); 
 fprintf(p,"\n%d\n",v[tam[0]].mes); 
 } 
 
 if(ferror(p)){ 
 printf("Erro ao inserir dados.\n"); 
 conf=0; 
 }else{ 
 printf("Dados gravados com sucesso!\n"); 
 tam[0]++; 
 } 
 fclose(p); 
 return conf; 
 
} 
int nregistro(){ 
 int ntot=0; 
 char str[50]; 
 int i=0; 
 FILE *p; 
 p=fopen("Vendas.dat","r"); 
 if(p==NULL){ 
 printf("Erro ao abrir.\n"); 
 }else{ 
 while(!feof(p)){ 
 fgets(str,50,p); 
 i++; 
 } 
 } 
 fclose(p); 
 ntot=i/4; 
 return ntot; 
} 
void exiven(variavel_v v[],int tam[]){ 
 int i=0; 
 for(i=0;i<tam[0];i++){ 
 printf("\n------VENDA %i------\n",i+1); 
 printf("Codigo: %i\n",v[i].cven); 
 printf("Nome: %s\n",v[i].nven); 
 printf("Valor da venda: %f\n",v[i].valv); 
 printf("Mes: %i\n",v[i].mes); 
 printf("--------------------\n"); 
 } 
} 
void altven(variavel_v v[],int tam[]){ 
 int cod,i,j=1,k,me; 
 float nven=0; 
 char str[100]; 
 FILE *p; 
 printf("Digite o codigo da venda que deseja alterar: \n"); 
 scanf("%i",&cod); 
 printf("Digite o valor do mes da nova venda: \n"); 
 scanf("%i",&me); 
 printf("Qual o valor da nova venda?\n"); 
 scanf("%f",&nven); 
 for(i=0;i<tam[0];i++){ 
 if(cod==v[i].cven && me==v[i].mes){ 
 k=i; 
 } 
 } 
 v[k].valv=nven; 
 p=fopen("Vendas.dat","w"); 
 if(p==NULL){ 
 printf("Erro ao abrir.\n"); 
 }else{ 
 for(i=0;i<tam[0];i++){ 
 fprintf(p,"%d",v[i].cven); 
 fprintf(p,"\n%s",v[i].nven); 
 fprintf(p,"\n%f",v[i].valv); 
 fprintf(p,"\n%d\n",v[i].mes); 
 } 
 } 
 if(ferror(p)){ 
 printf("Erro ao inserir dados.\n"); 
 }else{ 
 printf("Dados gravados\n"); 
 } 
 fclose(p); 
 } 
 
void delven(variavel_v v[],int tam[]){ 
 int cod,i,k=1,j; 
 FILE *p; 
 printf("Digite o codigo do Vendedor que deseja excluir: \n"); 
 scanf("%i",&cod); 
 for(int i=0;i<tam[0];i++){ 
 if(cod==v[i].cven){ 
 p=fopen("Vendas.dat","w"); 
 if(p==NULL){ 
 printf("Erro ao abrir.\n"); 
 }else{ 
 for(k=0;k<tam[0];k++){ 
 if(k!=i){ 
 fprintf(p,"%d",v[k].cven); 
 fprintf(p,"\n%s",v[k].nven); 
 fprintf(p,"\n%f",v[k].valv); 
 fprintf(p,"\n%d\n",v[k].mes); 
 } 
 } 
 } 
 } 
 } 
 fclose(p); 
 
} 
void venmes(variavel_v v[],int tam[]){ 
 int cod,me,i; 
 printf("Digite o codigo do vendedor: \n"); 
 scanf("%i",&cod); 
 printf("Digite o numero do mes: \n"); 
 scanf("%i",&me); 
 for(i=0;i<tam[0];i++){ 
 if(cod==v[i].cven && me==v[i].mes){ 
 printf("\n--------------------\n"); 
 printf("Codigo: %i\n",v[i].cven); 
 printf("Nome: %s\n",v[i].nven); 
 printf("Valor da venda: %f\n",v[i].valv); 
 printf("Mes: %i\n",v[i].mes); 
 printf("--------------------\n"); 
 } 
 } 
 
} 
void totven(variavel_v v[],int tam[]){ 
 int cod,i,k; 
 float total=0; 
 printf("Digite o codigo do vendedor: \n"); 
 scanf("%i",&cod); 
 for(i=0;i<tam[0];i++){ 
 if(cod==v[i].cven){ 
 total=total+v[i].valv; 
 k=i; 
 } 
 } 
 printf("O total de vendas do %s, foi de %f",v[k].nven,total); 
} 
void maiorv(variavel_v v[],int tam[]){ 
 int me,i,k; 
 float valor=0; 
 printf("Digite o mes para obter o maior vendedor desse respectivo mes: \n"); 
 scanf("%i",&me); 
 for(i=0;i<tam[0];i++){ 
 if(v[i].valv>valor && me==v[i].mes){ 
 valor=v[i].valv; 
 k=i; 
 } 
 } 
 printf("O vendedor que obtever o maior valor no mes %i foi o %s, com codigo 
%i\n",me,v[k].nven,v[k].cven); 
} 
void mesmaval(variavel_v v[],int tam[]){ 
 int me,i,k; 
 float valor=0; 
 for(i=0;i<tam[0];i++){ 
 if(v[i].valv>valor){ 
 valor=v[i].valv; 
 k=i; 
 } 
 } 
 printf("\n-------------------------------------------\n"); 
 printf("O mes com maior venda foi o %i\n",v[k].mes); 
 printf("Sendo %s, o vendedor com maior venda de %f 
reais.\n",v[k].nven,v[k].valv); 
} 
void armav(variavel_v v[],int tam[]){ 
 char str[100]; 
 int i=1,k=0,ta; 
 FILE *p; 
 p=fopen("Vendas.dat","r"); 
 if(p==NULL){ 
 printf("Erro\n"); 
 }else{ 
 while(!feof(p)){ 
 fgets(str,100,p); 
 if(i<=4*tam[0]){ 
 if(i%4==1){ 
 v[k].cven=atoi(str); 
 } 
 if(i%4==2){ 
 ta=strlen(str); 
 for(int j=0;j<ta-1;j++){ 
 v[k].nven[j]=str[j]; 
 } 
 } 
 if(i%4==3){ 
 v[k].valv=atof(str); 
 } 
 if(i%4==0){ 
 v[k].mes=atoi(str); 
 k++; 
 } 
 i++; 
 } 
 } 
 } 
} 
 
 
 
 
 
 
 
3) 
#include<stdio.h> 
#include<math.h> 
#include<string.h> 
struct product{ 
 int codigo; 
 char descricao[100]; 
 float preco; 
}; 
struct product prods[100]; 
int i=0; 
FILE *produt; 
 
void a(); 
void b(); 
void c(); 
void d(); 
void e(); 
void f(); 
void g(); 
void h(); 
void I(); 
void J(); 
 
int main(){ 
int op; 
inicio: 
printf("\nDigite: \n[1] Para incluir produtos \n[2] Para consultar descricao de produtos 
que possuem o preço superior a 500 reais \n[3] Para aumentar o preco de todos os 
produtos em 15 por cento\n[4] Para aumentar o preco dos produtos em 10 reais, mas 
apenas para aqules que custam mais de 100 reais\n[5] consultar todos os produtos 
com a inicial M\n[6] Para excluir produtos do arquivo criado\n[7] Para consultar 
produtos com preço inferior a 15 reais\n[8] Para consultar produtos com a incial 
digitada pelo usuario \n[9] Para excluir todos os produtos com preço superior a 200 
reais\n[10] Para conceder um percentual de desconto aos produtos\n[11] Para 
encerrar o programa\n"); 
scanf("%d",&op); 
if(op==1){ 
 cadastro: 
 a(); 
 goto inicio; 
} 
if(op==2){ 
 if(i==0){ 
 printf("\nVoce precisa cadastrar os produtos\n"); 
 goto cadastro; 
 } 
 b(); 
 goto inicio; 
} 
 
if(op==3){if(i==0){ 
 printf("\nVoce precisa cadastrar os produtos\n"); 
 goto cadastro; 
 } 
 c(); 
 goto inicio; 
} 
 
if(op==4){ 
 if(i==0){ 
 printf("\nVoce precisa cadastrar os produtos\n"); 
 goto cadastro; 
 } 
 d(); 
 goto inicio; 
} 
 
if(op==5){ 
 if(i==0){ 
 printf("\nVoce precisa cadastrar os produtos\n"); 
 goto cadastro; 
 } 
 e(); 
 goto inicio; 
} 
 
if(op==6){ 
 if(i==0){ 
 printf("\nVoce precisa cadastrar os produtos\n"); 
 goto cadastro; 
 } 
 f(); 
 goto inicio; 
} 
 
if(op==7){ 
 if(i==0){ 
 printf("\nVoce precisa cadastrar os produtos\n"); 
 goto cadastro; 
 } 
 g(); 
 goto inicio; 
} 
 
 
if(op==8){ 
 if(i==0){ 
 printf("\nVoce precisa cadastrar os produtos\n"); 
 goto cadastro; 
 } 
 h(); 
 goto inicio; 
} 
 
if(op==9){ 
 if(i==0){ 
 printf("\nVoce precisa cadastrar os produtos\n"); 
 goto cadastro; 
 } 
 I(); 
 goto inicio; 
} 
 
if(op==10){ 
 if(i==0){ 
 printf("\nVoce precisa cadastrar os produtos\n"); 
 goto cadastro; 
 } 
 J(); 
 goto inicio; 
} 
 
if(op==11){ 
 printf("\nvoce realmente deseja encerrar o programa, caso sim digite [11], caso nao 
digite qualquer outro numero:\n"); 
 scanf("%d",&op); 
 if(op!=11){ 
 printf("\nVoce estara retornando ao menu\n"); 
 goto inicio; 
 } 
 if(i==0){ 
 printf("\nVoce nao cadastrou nenhum produto, caso deseje encerrar digite [11], 
caso nao digite qualquer outro numero:\n"); 
 scanf("%d",&op); 
 if(op!=11){ 
 printf("\nVoce estara retornando ao menu\n"); 
 goto inicio; 
 } 
 if(op==11){ 
 produt=fopen("PRODUTOS.DATA","w"); 
 if(produt==NULL) 
 printf("\nerro na abertura do arquivo\n"); 
 else{ 
 printf("\nSucesso na criacao do arquivo\n"); 
 } 
 printf("\nPrograma encerrado com sucesso!\n"); 
 } 
 } 
 else 
 printf("\nPrograma encerrado com sucesso!\n"); 
 
 
} 
 
return 0; 
} 
 
void a(){ 
int p=1,au=0,au2; 
 
produt=fopen("PRODUTOS.DATA","w"); 
if(produt==NULL) 
 printf("\nerro na abertura do arquivo\n"); 
else{ 
 printf("\nSucesso na criacao do arquivo\n"); 
} 
while(p!=0){ 
 cadastrar: 
 printf("digite o codigo do produto a ser cadastrado:\n"); 
 scanf("%d",&au2); 
 if(i==0) 
 prods[i].codigo=au2; 
 if(i!=0){ 
 
 for(int ii=0;ii<i;ii++){ 
 if(au2==prods[ii].codigo) 
 au++; 
 } 
 if(au!=0){ 
 printf("\nCodigo ja cadastrado\n"); 
 au=0; 
 goto cadastrar; 
 } 
 else 
 prods[i].codigo=au2; 
 } 
 setbuf(stdin,NULL); 
 printf("\ndigite a descricao do produto a ser cadastrado:\n"); 
 gets(prods[i].descricao); 
 printf("\ndigite o preco do produto a ser cadastrado:\n"); 
 scanf("%f",&prods[i].preco); 
 i++; 
 printf("se deseja parar de cadastrar digite [0], senao digite [1]\n"); 
 scanf("%d",&p); 
 
 
} 
for(int ii=0;ii<i;ii++){ 
 fprintf(produt,"\nCodigo:%d",prods[ii].codigo); 
 fprintf(produt,"\nDescricao:%s",prods[ii].descricao); 
 fprintf(produt,"\nPreco:%f\n",prods[ii].preco); 
} 
if(ferror(produt)==0) 
 printf("arquivo salvo com sucesso"); 
else 
 printf("problemas ao salvar o arquivo"); 
 
fclose(produt); 
} 
 
void b(){ 
int j=0; 
for(int ii=0;ii<i;ii++){ 
 if(prods[ii].preco>500){ 
 printf("\nProduto %d\nDescricao: %s\n",j+1,prods[ii].descricao); 
 j++; 
 } 
} 
if(j==0) 
 printf("\nNao temos nenhum produto mais caro que 500 reais\n"); 
} 
 
void c(){ 
produt=fopen("PRODUTOS.DATA","w"); 
if(produt==NULL) 
 printf("\nerro na abertura do arquivo\n"); 
else{ 
 printf("\nSucesso na criacao do arquivo\n"); 
printf("Produtos com os precos atualizados:\n"); 
for(int ii=0;ii<i;ii++){ 
 prods[ii].preco=prods[ii].preco*1.15; 
 printf("\nProduto 
%d\nCodigo:%d\nDescricao:%s\nPreco:%.2f\n",ii+1,prods[ii].codigo,prods[ii].descricao,
prods[ii].preco); 
} 
 
for(int ii=0;ii<i;ii++){ 
 fprintf(produt,"\nCodigo:%d",prods[ii].codigo); 
 fprintf(produt,"\nDescricao:%s",prods[ii].descricao); 
 fprintf(produt,"\nPreco:%.2f\n",prods[ii].preco); 
} 
if(ferror(produt)==0) 
 printf("arquivo salvo com sucesso"); 
else 
 printf("problemas ao salvar o arquivo"); 
} 
fclose(produt); 
 
} 
 
void d(){ 
 
produt=fopen("PRODUTOS.DATA","w"); 
if(produt==NULL) 
 printf("\nerro na abertura do arquivo\n"); 
else{ 
 printf("\nSucesso na criacao do arquivo\n"); 
printf("Produtos com os precos atualizados:\n"); 
for(int ii=0;ii<i;ii++){ 
 prods[ii].preco=prods[ii].preco+10; 
 printf("\nProduto 
%d\nCodigo:%d\nDescricao:%s\nPreco:%.2f\n",ii+1,prods[ii].codigo,prods[ii].descricao,
prods[ii].preco); 
} 
 
for(int ii=0;ii<i;ii++){ 
 fprintf(produt,"\nCodigo:%d",prods[ii].codigo); 
 fprintf(produt,"\nDescricao:%s",prods[ii].descricao); 
 fprintf(produt,"\nPreco:%.2f\n",prods[ii].preco); 
} 
if(ferror(produt)==0) 
 printf("\narquivo salvo com sucesso"); 
else 
 printf("\nproblemas ao salvar o arquivo"); 
} 
fclose(produt); 
 
 
} 
 
void e(){ 
char stra[100]; 
int j=0; 
for(int ii=0;ii<i;ii++){ 
 
 strcpy(stra,prods[ii].descricao); 
 
 if(stra[0]=='M'||stra[0]=='m'){ 
 printf("%s",prods[ii].descricao); 
 j++; 
 } 
 
} 
if(j==0) 
 printf("\nnenhum produto se incia com a letra M\n"); 
} 
 
void f(){ 
int p=1,au,pos=-1,j=0; 
produt=fopen("PRODUTOS.DATA","w"); 
if(produt==NULL) 
 printf("\nerro na abertura do arquivo\n"); 
else{ 
 printf("\nSucesso na criacao do arquivo\n"); 
} 
 
while(p!=0){ 
 
 printf("\nDigite o codigo do produto que voce deseja excluir:\n"); 
 scanf("%d",&au); 
 for(int ii=0;ii<i;ii++){ 
 if(prods[ii].codigo==au){ 
 pos=ii; 
 i=i-1; 
 j++; 
 } 
 } 
 if(j==0) 
 printf("\nCodigo nao cadastrado\n"); 
 if(pos!=-1){ 
 for(int ii=pos;ii<i;ii++){ 
 prods[ii].codigo=prods[ii+1].codigo; 
 strcpy(prods[ii].descricao,prods[ii+1].descricao); 
 prods[ii].preco=prods[ii+1].preco; 
 
 } 
 } 
 if(j!=0) 
 printf("\n%do produto excluido.\n",pos+1); 
 j=0; 
 pos=-1; 
 printf("se deseja parar de excluir digite [0], senao digite [1]\n"); 
 scanf("%d",&p); 
} 
 
for(int ii=0;ii<i;ii++){ 
 fprintf(produt,"\nCodigo:%d",prods[ii].codigo); 
 fprintf(produt,"\nDescricao:%s",prods[ii].descricao); 
 fprintf(produt,"\nPreco:%f\n",prods[ii].preco); 
} 
if(ferror(produt)==0) 
 printf("arquivo salvo com sucesso"); 
else 
 printf("problemas ao salvar o arquivo"); 
 
fclose(produt); 
 
} 
 
void g(){ 
int j=0; 
for(int ii=0;ii<i;ii++){ 
 if(prods[ii].preco<15){ 
 printf("\nProduto %d\nDescricao: %s\n",j+1,prods[ii].descricao); 
 j++; 
 } 
} 
if(j==0) 
 printf("\nNao temos nenhum produto mais barato que 15.00 reais\n"); 
 
} 
 
void h(){ 
char c,stra[100]; 
int j=0; 
for(int ii=0;ii<i;ii++){ 
 setbuf(stdin,NULL); 
 printf("\nDigite a letra inicial do produto:\n"); 
 scanf("%c",&c); 
 strcpy(stra,prods[ii].descricao); 
 
 if(stra[0]==c){ 
 printf("%s",prods[ii].descricao); 
 j++; 
 } 
 
} 
if(j==0) 
 printf("\nnenhum produto se incia com a letra %c\n",c); 
 
} 
 
void I(){ 
 
int pos=-1,j=0; 
produt=fopen("PRODUTOS.DATA","w"); 
if(produt==NULL) 
 printf("\nerro na abertura do arquivo\n"); 
else{ 
 printf("\nSucesso na criacao do arquivo\n"); 
} 
 
 
 for(int ii=0;ii<i;ii++){if(prods[ii].preco>200){ 
 pos=ii; 
 i=i-1; 
 printf("\n O produto: %s sera excluido\n",prods[pos].descricao); 
 for(int iii=pos;iii<i;iii++){ 
 prods[iii].codigo=prods[iii+1].codigo; 
 strcpy(prods[iii].descricao,prods[iii+1].descricao); 
 prods[iii].preco=prods[iii+1].preco; 
 
 } 
 j++; 
 } 
 } 
 if(j==0) 
 printf("\nNenhum produto mais caro que 200 reais\n"); 
 
 if(j!=0) 
 printf("\n%d produtos excluidos.\n",j); 
 j=0; 
 
 
for(int ii=0;ii<i;ii++){ 
 fprintf(produt,"\nCodigo:%d",prods[ii].codigo); 
 fprintf(produt,"\nDescricao:%s",prods[ii].descricao); 
 fprintf(produt,"\nPreco:%g\n",prods[ii].preco); 
} 
if(ferror(produt)==0) 
 printf("arquivo salvo com sucesso"); 
else 
 printf("problemas ao salvar o arquivo"); 
 
fclose(produt); 
 
 
 
} 
 
void J(){ 
float percent; 
printf("\ndigite o percentual de desconto que voce quer dar\n"); 
scanf("%f",&percent); 
percent=percent/100; 
produt=fopen("PRODUTOS.DATA","w"); 
if(produt==NULL) 
 printf("\nerro na abertura do arquivo\n"); 
else{ 
 printf("\nSucesso na criacao do arquivo\n"); 
printf("Produtos com os precos atualizados:\n"); 
for(int ii=0;ii<i;ii++){ 
 prods[ii].preco=prods[ii].preco-(prods[ii].preco*percent); 
 printf("\nProduto 
%d\nCodigo:%d\nDescricao:%s\nPreco:%.2f\n",ii+1,prods[ii].codigo,prods[ii].descricao,
prods[ii].preco); 
} 
 
for(int ii=0;ii<i;ii++){ 
 fprintf(produt,"\nCodigo:%d",prods[ii].codigo); 
 fprintf(produt,"\nDescricao:%s",prods[ii].descricao); 
 fprintf(produt,"\nPreco:%.2f\n",prods[ii].preco); 
} 
if(ferror(produt)==0) 
 printf("arquivo salvo com sucesso"); 
else 
 printf("problemas ao salvar o arquivo"); 
} 
fclose(produt); 
 
 
}

Continue navegando