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()