Ir para conteúdo
Fórum Script Brasil
  • 0

ajuda


bakasam

Pergunta

Fazer um programa em C para controlar os empréstimos de livros de uma Biblioteca. O programa

deverá conter:

2 arquivos: um para cadastro de Livros e outro para Alunos. Os dados do Livro que devem ser

guardados são: código(tombo), título, autor, assunto, editora, edição, Ano de publicação e

situação. O campo situação deverá armazenar o código do aluno que retirou o livro ou a

palavra LIVRE se o livro estiver disponível). Os dados do Aluno são: código, nome,

endereço(rua e número da casa), telefone, e-mail.

· O programa deverá implementar as seguintes tarefas básicas:

Cadastro de Livros;

Cadastro de Alunos;

Exclusão de Livros e Alunos (Remoção Física do registro);

Retirada;

Devolução;

Consulta de Livro pelo código;

Consulta de Aluno pela parte inicial do nome

Consulta de Livro pela parte inicial do Título;

Relatório de Livros (todos);

Relatório de Livros por assunto;

Relatório de Livros por autor (listar todos os livros de um autor);

Relatório de Alunos (todos).

· Na consulta de Livro pelo código, devem ser mostrados os dados do Livro e, caso o Livro já

esteja emprestado, exibir o código, nome e telefone do Aluno;

· Na consulta de Aluno pela parte inicial do nome, deve-se entrar com a parte inicial do nome

do Aluno e o sistema mostrará os dados do Aluno e os Livros por ele retirados;

· No relatório de Livros(todos) deverão ser listados todos os Livros;

· No relatório de Livros por assunto, deverão ser listados somente os Livros de um

determinado Assunto.

· Exclusão de Livros/Alunos: nesta opção, o sistema deve solicitar o código do Livro/Aluno

a ser excluído; procurar o Livro/Aluno no arquivo de Livros/Alunos; exibir os dados do

Livro/Aluno; se o aluno possui Livros retirados, avisar ao usuário e pedir confirmação para

exclusão.

alguém pode me ajudar ai porfavor ate agora eu fiz isso.

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

struct reg_livro {

int codigo,edicao,ano_publi;

char titulo[30],autor[30],assunto[30],editora[30];

float preço;

};

void cadastrarLivro(){

struct reg_livro livro;

FILE *fplivro;

char op;

printf("\n Cadastro de Livro:");

printf("\n Digite o Codigo: ");

fflush(stdin); scanf("%i", &livro.codigo);

printf("\n Digite o Ediçao: ");

fflush(stdin); scanf("%i", &livro.edicao);

printf("\n Digite o ano da publicação: ");

fflush(stdin); scanf("%i", &livro.ano_publi);

printf(" Digite o Titulo: ");

fflush(stdin); gets(livro.titulo);

printf(" Digite o Autor: ");

fflush(stdin); gets(livro.autor);

printf(" Digite o Assunto: ");

fflush(stdin); gets(livro.assunto);

printf(" Digite o Editora: ");

fflush(stdin); gets(livro.editora);

printf(" Digite o preço: ");

fflush(stdin); scanf("%f", &livro.preço);

printf("\n Gravar Dados(S/N)?");

fflush(stdin); scanf("%c", &op);

if ((op=='S') || (op=='s')){

if ((fplivro=fopen("D:\\livros.dat","ab+"))==NULL){

printf("\n Erro na Abertura do arquivo livros.dat");

getch();

}

fwrite(&livro,sizeof(livro),1,fplivro);

fclose(fplivro);

printf("\n Gravacao Realizada com Sucesso!");

}

else

printf("\n Operacao Cancelada!");

printf("\n Pressione uma Tecla.");

getch();

}//Fim cadastrarLivro()

void listarLivros(){

struct reg_livro livro;

FILE *fplivro;

fplivro = fopen("D:\\livros.dat","rb");

printf("\n\t\t = = = Listagem de Livros = = = ");

printf("\nCodigo\t Titulo\t\t\t preço");

while (fread(&livro,sizeof(livro),1,fplivro)==1)

printf("\n %i\t%s\t\t%5.2f",livro.codigo,livro.edicao,livro.ano_publi, livro.titulo, livro.autor, clivro.assunto, lcivro.editora, livro.preço);

fclose(fplivro);

printf("\n Pressione uma Tecla.");

getch();

}//Fim listarLivros()

void consultarCodigo(){

struct reg_livro livro;

FILE *fplivro;

int cod, achou;

printf("\n Consulta Livro pelo Codigo:");

printf("\n Digite o Codigo: ");

fflush(stdin); scanf("%i", &cod);

fplivro = fopen("D:\\livros.dat","rb");

achou=0;

while ((achou==0) && (fread(&livro,sizeof(livro),1,fplivro)==1))

if (livro.codigo==cod){

printf("\n Codigo: %i", livro.codigo);

printf("\n Edicao: %i", livro.edicao);

printf("\n Ano_publi: %i", livro.ano_publi);

printf("\n Titulo: %s", livro.titulo);

printf("\n Autor: %s", livro.autor);

printf("\n Assunto: %s", livro.assunto);

printf("\n Editora: %s", livro.editora);

printf("\n preço.: %5.2f", livro.preço);

achou=1;

}

fclose(fplivro);

if (achou==0)

printf("\n Livro não Encontrado!");

printf("\n Pressione uma tecla.");

getch();

}//consultarCodigo

void acessarAleatorio(){

struct reg_livro livro;

FILE *fplivro;

int nroreg, ret;

printf("\n Digite o nro. do registro: ");

fflush(stdin); scanf("%i", &nroreg);

fplivro = fopen("D:\\livros.dat","rb");

ret = fseek(fplivro,(nroreg-1)*sizeof(livro),0);

printf("\n Valor retornado pela fseek: %i", ret);

if (fread(&livro,sizeof(livro),1,fplivro)==1){

printf("\n Codigo: %i", livro.codigo);

printf("\n Edicao: %i", livro.edicao);

printf("\n Ano_publi: %i", livro.ano_publi);

printf("\n Titulo: %s", livro.titulo);

printf("\n Autor: %s", livro.autor);

printf("\n Assunto: %s", livro.assunto);

printf("\n Editora: %s", livro.editora);

printf("\n preço.: %5.2f", livro.preço);

}else

printf("\n Registro não Encontrado!");

printf("\n Pressione uma tecla.");

getch();

}//Fim acessarAleatorio()

void alterarLivro(){

struct reg_livro livro;

FILE *fplivro;

int cod, achou;

char op;

printf("\n Digite o codigo: ");

fflush(stdin); scanf("%i", &cod);

fplivro = fopen("D:\\livros.dat","rb+");

achou=0;

while ((achou==0) && (fread(&livro,sizeof(livro),1,fplivro)==1))

if (livro.codigo==cod){

printf("\n Codigo: %i", livro.codigo);

printf("\n Titulo: %s", livro.titulo);

printf("\n preço.: %5.2f", livro.preço);

achou=1;

}

if (achou==0)

printf("\n Livro não Encontrado");

else {

printf(" Digite o novo Titulo: ");

fflush(stdin); gets(livro.titulo);

printf(" Digite o novo preço: ");

fflush(stdin); scanf("%f", &livro.preço);

printf("\n Gravar Dados(S/N)?");

fflush(stdin); scanf("%c", &op);

if ((op=='S') || (op=='s')){

fseek(fplivro,-sizeof(livro),1);

fwrite(&livro,sizeof(livro),1,fplivro);

printf("\n Dados Alterados com Sucesso.");

}else

printf("\n Operacao Cancelada!");

}

fclose(fplivro);

printf("\n Pressione uma tecla.");

getch();

}//Fim alterarLivro()

void removerLivro(){

struct reg_livro livro;

FILE *fplivro, *fplivro2;

char op;

int cod, achou;

printf("\n Digite o codigo do Livro a ser removido: ");

fflush(stdin); scanf("%i", &cod);

fplivro = fopen("D:\\livros.dat","rb");

achou=0;

while ((achou==0) && (fread(&livro,sizeof(livro),1,fplivro)==1))

if (livro.codigo==cod){

printf("\n Codigo: %i", livro.codigo);

printf("\n Titulo: %s", livro.titulo);

printf("\n preço.: %5.2f", livro.preço);

achou=1;

}

fclose(fplivro);

if (achou==0)

printf("\n Livro não Encontrado");

else {//Achou o Livro

printf("\n Confirma remocao(s/n)?");

fflush(stdin); scanf("%c", &op);

if ((op=='S') || (op=='s')){

fplivro = fopen("D:\\livros.dat","rb");

fplivro2 = fopen("D:\\livros2.dat","wb");

while (fread(&livro, sizeof(livro),1,fplivro)==1)

if(livro.codigo!=cod)

fwrite(&livro,sizeof(livro),1,fplivro2);

fclose(fplivro);

fclose(fplivro2);

system("DEL D:\\livros.dat"); //Remove o arquivo original

system("RENAME D:\\livros2.dat livros.dat"); //Renomeia o arquivo auxiliar

printf("\n Livro removido com sucesso.");

}else

printf("\n Operacao Cancelada!");

}

printf("\n Pressione uma tecla.");

getch();

}//Fim removerLivro()

main(){

int op;

do {

printf("\n *** L i v r a r i a - M e n u ***");

printf("\n 1- Cadastrar Livro");

printf("\n 2- Listagem Livros");

printf("\n 3- Consultar pelo Codigo");

printf("\n 4- Acesso Aletorio");

printf("\n 5- Alterar dados do Livro");

printf("\n 6- Remover um Livro");

printf("\n 0- Sair");

printf("\n Opcao-> ");

fflush(stdin); scanf("%i", &op);

switch (op) {

case 1: cadastrarLivro();

break;

case 2: listarLivros();

break;

case 3: consultarCodigo();

break;

case 4: acessarAleatorio();

break;

case 5: alterarLivro();

break;

case 6: removerLivro();

break;

}//Fim switch

}while (op!=0);

}//Fim main()

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...