Program em c de livraria

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1157 palavras )
  • Download(s) : 0
  • Publicado : 18 de março de 2013
Ler documento completo
Amostra do texto
// Sistema de Controle de Livraria
// Desenvolvido usando arquivos Binarios em C
#include
#include
#include
#include


struct reg_livro{//struct do livro
int codigo,existe;
char titulo[30];
float preco;

};

void cadastrarLivro(){//cadastro do livro
struct reg_livro livro;
FILE *fplivros;

fplivros = fopen("livros.dat","ab+");

printf("\n Digite ocodigo ou 0 p/ Finalizar: ");
fflush(stdin);
scanf("%i", &livro.codigo);
if (livro.codigo!=0){
printf(" Digite o Titulo: ");
fflush(stdin); gets(livro.titulo);
printf(" Digite o Preco: ");
fflush(stdin); scanf("%f", &livro.preco);

fwrite(&livro,sizeof(livro),1,fplivros);
printf("\n Livro cadastrado com sucesso.");
}
fclose(fplivros);

}//FimcadastrarLivro()

void listarTodosLivros(){//listar os livros cadastrados
struct reg_livro livro;
FILE *fplivros;

fplivros = fopen("livros.dat","rb");

printf("\n === Livraria do Poder das 7 Almas ===");
printf("\n\nCodigo\tTitulo\t\t\tPreco");

while (fread(&livro,sizeof(livro),1,fplivros) ==1){
printf("\n%i\t%s\t%5.2f",livro.codigo,livro.titulo,livro.preco);

}fclose(fplivros);

}//Fim listarTodosLivros()

void consultarLivros(){//consultar os livros pelo titulo
struct reg_livro livro;

FILE *fplivros;

char consulta[30];
int achou=0;

fplivros = fopen("livros.dat","rb");

printf("Digite um titulo p/ busca: ");fflush(stdin);
gets(consulta);

while ((!achou)&&(fread(&livro,sizeof(livro),1,fplivros) ==1)) {

if(strcmp(livro.titulo,consulta)==0){
achou=1;
printf("\n%i\t%s\t%5.2f",livro.codigo,livro.titulo,livro.preco);
}

}
if (!achou)
printf("Titulo nao localizado!");

fclose(fplivros);
}


voidlistagemTodosLivrosTxt(){//Listar os livros em um arquivo TXT
struct reg_livro livro;
FILE *fplivros, *fplivrostxt;
char string[50];

fplivros = fopen("livros.dat","rb");
fplivrostxt = fopen("listagemLivros.txt","w");

fputs(" === Livraria do Poder das 7 Almas ===",fplivrostxt);
fputs("\n Listagem de Livros",fplivrostxt);
fputs("\n\nCODIGO\tTITULO\t\t\tPRECO",fplivrostxt);while (fread(&livro,sizeof(livro),1,fplivros)==1){
sprintf(string,"\n %i\t%s \t %5.2f",livro.codigo,livro.titulo,livro.preco);
fputs(string,fplivrostxt);
}

printf("\nListagem gerada com sucesso! Verifique o arquivo>");
fclose(fplivros);
fclose(fplivrostxt);
}//Fim listagemTodosLivrosTxt()






void alterarLivros(){//alterar os livrosstruct reg_livro livro;
FILE *fplivros;
int cod, achou=0;
char op;

fplivros = fopen("livros.dat","rb+");

printf("\n Digite o Codigo do Livro a ser Alterado: ");
fflush(stdin); scanf("%i",&cod);

while ((!achou)&&(fread(&livro,sizeof(livro),1,fplivros) ==1)){
if (livro.codigo==cod){
achou=1;
printf("\n Codigo: %i",livro.codigo);
printf("\nTitulo: %s",livro.titulo);
printf("\n Preco: %4.2f",livro.preco);

printf("\n\n Alterar Titulo?(S/N): ");
fflush(stdin); scanf("%c",&op);
if ((op=='s')||(op=='S')){
printf("\n Digite o novo Titulo: ");
fflush(stdin); gets(livro.titulo);
}
printf("\n\n Alterar Preco?(S/N): ");
fflush(stdin); scanf("%c",&op);if ((op=='s')||(op=='S')){
printf("\n Digite o novo Preco: ");
fflush(stdin); scanf("%f",&livro.preco);
}
printf("\n Gravar Alteracao?(S/N): ");
fflush(stdin); scanf("%c",&op);
if ((op=='s')||(op=='S')){
fseek(fplivros,-1*sizeof(livro),1);
fwrite(&livro,sizeof(livro),1,fplivros);
printf("\n...
tracking img