Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**********************************
- * UNIVERSIDADE DE SANTA CRUZ DO SUL
- * DEPARTAMENTO DE COMPUTA??O
- *
- * Programa??o Estruturada
- * Turno......: Noite
- * Data.......: 03/06/2018
- * Respons?vel: Profa. Daniela Bagatini e Prof. Ivan S?ptitz
- * Exerc?cio arquivo sequencial
- ***********************************/
- /*-----------------------
- | Definicao das bibliotecas
- +----------------------*/
- #include <stdio.h >
- #include <stdlib.h>
- #include <conio.h >
- /*-----------------------
- | Defini??o do registro
- +----------------------*/
- typedef struct INFORMACAO
- { int cod;
- char nome[20];
- char mail[30];
- int excluido; // controle de exclus?o l?gica
- }INFORMACAO;
- /*-----------------------
- | Cabecalhos de funcoes/procedimentos
- +----------------------*/
- void inserir (FILE *arq);
- int consultar (FILE *arq, char nomearq[25]);
- void listar (FILE *arq, char nomearq[25]);
- void alterar (FILE *arq, char nomearq[25]);
- void excluir (FILE *arq, char nomearq[25]);
- /*-----------------------
- | Programa principal
- +----------------------*/
- int main(void)
- {
- FILE *arq;
- char nomeArquivo[25], op; // op??o do menu
- //int posicao; // posi??o de um registro no arquivo
- printf( "\n Informe o nome do arquivo: " );
- scanf( "%s", nomeArquivo );
- arq= fopen( nomeArquivo, "rb+" ); // abre para leitura ou grava??o
- if( arq == NULL)
- {
- arq= fopen( nomeArquivo, "wb+" ); // cria para leitura ou grava??o
- if( arq == NULL)
- {
- printf( "\n O arquivo nao pode ser aberto! " );
- exit( 1 );
- }
- else
- printf( "\n Arquivo aberto com sucesso! " );
- }
- do{
- printf("\n\n ---------------------------");
- printf("\n [ 1 ] inserir dados ");
- printf("\n [ 2 ] consultar dados ");
- printf("\n [ 3 ] excluir dados ");
- printf("\n [ 4 ] alterar dados ");
- printf("\n [ 5 ] listar todos os dados");
- printf("\n [ 6 ] encerrar ");
- printf("\n ---------------------------");
- op= getch( );
- switch( op ){
- case '1': inserir( arq );
- break;
- case '2': consultar( arq, nomeArquivo );
- break;
- case '3': excluir( arq, nomeArquivo );
- break;
- case '4': alterar( arq, nomeArquivo );
- break;
- case '5': listar( arq, nomeArquivo );
- break;
- case '6': fclose( arq );
- break;
- default: printf("\n Opcao invalida, digite novamente! ");
- }
- }while( op != '6' );
- return 0;
- }
- /*-----------------------
- | Funcao inserir
- | Entrada: arquivo
- | Saidas : arquivo
- +----------------------*/
- void inserir( FILE *arq )
- {
- INFORMACAO reg;
- printf("\n Informe o codigo:");
- fflush(stdin);
- scanf("%i", ®.cod);
- printf("\n Informe o nome:");
- fflush(stdin);
- gets(reg.nome);
- printf("\n Informe o email:");
- fflush(stdin);
- gets(reg.mail);
- reg.excluido=0;
- fseek(arq, sizeof(reg), SEEK_END); //posicionando no final do arquivo (sequencial)
- fwrite(®, sizeof(struct INFORMACAO), 1, arq); // escrevendo no último slot
- }
- /*-----------------------
- | Funcao consultar
- | Entrada: arquivo
- | Saidas : arquivo
- +----------------------*/
- int consultar( FILE *arq, char nomearq[25] )
- {
- INFORMACAO reg;
- printf("\n Informe o codigo:");
- fflush(stdin);
- scanf("%i", ®.cod);
- rewind(arq);
- fread(®, sizeof(struct INFORMACAO), 1, arq);
- printf( "\n Nome: %s", reg.nome);
- printf( "\n Email: %s", reg.mail);
- }
- /*-----------------------
- | Funcao listar
- | Entrada: arquivo
- | Saidas : arquivo
- +----------------------*/
- void listar( FILE *arq, char nomearq[25] )
- {
- INFORMACAO reg;
- rewind(arq);
- fread(®, sizeof(struct INFORMACAO), 1 ,arq);
- printf("\n Codigo: %s", reg.cod);
- printf("\n Nome: %s", reg.nome);
- printf("\n Email: %s", reg.mail);
- }
- /*-----------------------
- | Funcao alterar
- | Entrada: arquivo
- | Saidas : arquivo
- +----------------------*/
- void alterar( FILE *arq, char nomearq[25] )
- {
- INFORMACAO reg;
- int posicao=0;
- printf("\n Nome:");
- fflush(stdin);
- gets(reg.nome);
- printf("\n Email:");
- fflush(stdin);
- gets(reg.mail);
- fseek(arq, (posicao - 1)* sizeof(struct INFORMACAO), SEEK_SET);
- fwrite (®, sizeof(reg),1 ,arq);
- }
- /*-----------------------
- | Funcao excluir
- | Entrada: arquivo
- | Saidas : arquivo
- +----------------------*/
- void excluir( FILE *arq, char nomearq[25] )
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement