TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O SISTEMA PARA BIBLIOTECA

Por:   •  3/12/2018  •  Trabalho acadêmico  •  1.947 Palavras (8 Páginas)  •  242 Visualizações

Página 1 de 8

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <dirent.h>

// criacao de struct. Estrutura para receber os dados do usuario.

struct usuarios{

char nome[25], endereco[30];

int idade;

};

usuarios usuario; //declaracão de identificador do tipo usuarios (variavel global)...

// criacao da funcao abrir_arquivo. A funcao tem retorno do tipo boolean, pois a funcao vai verificar

// se o arquivo existe ou nao, ou se o sistema conseguiu cria-lo, em caso positivo, a funcao retorna true

// caso contrario, retorna false, isso servira para as demais funcoes verificarem se os usuarios ja estao ou nao no sistema.

// 1. É definida a funcao abrir_arquivo, do tipo e retorno boolean, nela espera-se dois argumentos

// 1.1 O argumento char diretorio[], é porque a funcao que soliticar o arquivo deverá informar onde ele esta, ou seja seu diretorio/endereco

// os colchetes vazios significa que nao se sabe o tamanho da string passada para a funcao

// 1.2 o argumento - modo - do tipo char espera somente um caractere que definira se o arquivo eh para leitura, gravação ou gravação no fim,

// o usuario nao tera acesso a esse argumento, entao nao eh necessario fazer testes e controles...

// 2 É criado um ponteiro que ira apontar para o endereco de um arquivo, (os arquivos sao necessarios, pois representarao os registros existentes ou nao)

// 3 A variavel char c, sera usada somente para receber os dados do arquivo, quando o modo for leitura

// 4. o comando de seleção ira selecionar a instrução, a depender do modo

// 4.1 caso o modo seja igual a 'l', significa leitura.

// 4.1.1 Se entrar no modo l, o arquivo sera aberto, nesse caso o arquivo devera existir

// 4.1.2 É feito um teste para saber se o arquivo foi encontrado - comando if(arquivo)

// 4.1.2.1 Existindo o arquivo, imediatamente sera feito um loop que percorrerar o arquivo todo ate o seu fim e salvara caractere por caractere na variavel c

// 4.1.2.1.1 Logo na sequencia sera impresso na tela o valor de c, ao final do loop sera impresso todo o conteudo do arquivo

// 4.1.2.2 entao o arquivo sera fechado

// 4.1.2.3 e sera retornado o valor true, isso significa que o arquivo foi lido

// 4.2 nao existindo o arquivo, sera retornado false, ou seja, nao ha o registro consultado.

// 5. caso o modo seja 'g', o arquivo sera aberto para gravação

// 5.1 o identificador arquivo recebera a abertura do arquivo no modo w, que é o modo de escrita, o arquivo sera criado. Se o arquivo ja existir, o sistema ira informar

// que ja tem um usuario cadastrado com esse nome, esta instrução esta definida no - case 'a' : - desta funcao.

// logo apos sera escrito nome, endereço e idade, no arquivo (ja tabulações definidas). As tabulações sao feitas para organizar as strings, porem ira depender do tamanho

// da string digitada pelo usuario. É necessario um tratamento mais bem elaborado para exiber as tabelas com perfeição, isso deixaria o codigo fonte bem mais complexo,

// portanto, foi descartada a hipotese desse tratamento.

// 5.2 Logo abaixo da linha do titulo das colunas, é escrito os respectivos dados do usuario, no arquivo. (função - fprintf)

// 5.3 eh retornado o valor true pela funcao, nesse caso nao eh necessario fazer desvios por seleção, visto que o diretorio sempre existira. Logo sempre sera criado o arquivo,

// entao nao ha necessidade de retornar false.

// 6. o caso 'a', eh para verificar se o arquivo ja existe, nesse caso o 'a' nada tem a ver com o parametro "a" da funcao fopen (escrita no final do arquivo).

// 6.1 o arquivo sera aberto para leitura, nesse caso, devera existir. Caso nao exista, o retorno para o identificador arquivo sera igual a NULL, logo isso pode ser usado

// para verificar se o arquivo existe ou nao.

// 6.2 O if testa se o arquivo vai retornar um valor diferente de NULL, se isso acontecer, é porque o arquivo existe.

// 6.2.1 existindo o arquivo que foi aberto, ele sera fechado.

// 6.2.2 Se o arquivo foi fechado, entao ele existe. Se ele existe, entao o retorno deve ser true.

//6.3 Se o arquivo nao foi lido, ele nao existe, logo retorna-se false.

bool abrir_arquivo(char diretorio[], char modo){

FILE* arquivo;

char c;

switch (modo){

case 'l' : // esta instrução ler e mostra os dados na tela.

arquivo = fopen (diretorio, "r");

if (arquivo){

while ((c = getc(arquivo))!=EOF)

printf ("%c",c);

fclose (arquivo);

return true;

}

else return false;

case 'g' :

arquivo = fopen (diretorio, "w");

fprintf (arquivo, "Nome\t\t\t\tEndereco\t\tIdade\n\n");

fprintf (arquivo, "%s\t\t%s\t%d\n", usuario.nome, usuario.endereco, usuario.idade);

fclose (arquivo);

return true;

...

Baixar como (para membros premium)  txt (14.8 Kb)   pdf (62.4 Kb)   docx (20.8 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com