Jump to content
Fórum Script Brasil
  • 0

ajuda


bakasam

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...